
cameradar v6.2.1
يخترق Cameradar كاميرات المراقبة بالفيديو عبر RTSP
كاميرادار
أداة الوصول إلى تدفق RTSP
يقوم Cameradar بمسح نقاط نهاية RTSP على الأهداف المصرح بها، ويستخدم هجمات القاموس لاختراق بيانات اعتمادهم ومساراتهم.
ما يفعله Cameradar
- يكتشف مضيفي RTSP المفتوحين على الأهداف القابلة للوصول.
- يكتشف طراز الجهاز الذي يبث دفق RTSP.
- يحاول اكتشاف مسارات التدفق بناءً على القاموس (على سبيل المثال،
/live.sdp). - يحاول اكتشاف بيانات اعتماد الكاميرا بناءً على القاموس.
- ينتج تقريرًا بالنتائج.

جدول المحتويات
- البدء السريع مع Docker
- تثبيت الملف الثنائي
- التثبيت على Android (Termux)
- التكوين
- الأمان والاستخدام المسؤول
- المخرجات
- التحقق من الوصول إلى الكاميرا
- خيارات سطر الأوامر ومتغيرات البيئة
- تنسيق ملف الإدخال
- البناء والمساهمة
- الأسئلة الشائعة
- أمثلة
- الترخيص

البدء السريع مع Docker
قم بتثبيت Docker وقم بتشغيل:
docker run --rm -t --net=host ullaakut/cameradar --targets <target>
مثال:
docker run --rm -t --net=host ullaakut/cameradar --targets 192.168.100.0/24
يقوم هذا بمسح المنافذ 554 و 5554 و 8554 على الشبكة الفرعية الهدف. يحاول تعداد تدفقات RTSP. لمعرفة جميع الخيارات، راجع مرجع التكوين.
-
يمكن أن تكون الأهداف عبارة عن CIDRs أو عناوين IP أو نطاقات IP أو اسم مضيف.
- شبكة فرعية:
172.16.100.0/24 - عنوان IP:
172.16.100.10 - مضيف:
localhost - نطاق:
172.16.100.10-20
- شبكة فرعية:
-
لاستخدام قواميس مخصصة، قم بتركيبها وتمرير كلا العلامتين:
docker run --rm -t --net=host \ -v /path/to/dictionaries:/tmp/dictionaries \ ullaakut/cameradar \ --custom-routes /tmp/dictionaries/my_routes \ --custom-credentials /tmp/dictionaries/my_credentials.json \ --targets 192.168.100.0/24
تثبيت الملف الثنائي
استخدم هذا الخيار إذا لم يكن Docker متاحًا أو إذا كنت تريد بناء محلي.
التبعيات
- Go 1.25 أو أحدث
الخطوات
go install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latest
الملف الثنائي cameradar موجود الآن في $GOPATH/bin.
للاطلاع على العلامات المتاحة، راجع مرجع التكوين.
التثبيت على Android (Termux)
تلخص هذه الخطوات إعداد Termux عمليًا على Android. استخدم Termux 117 من F-Droid أو الموقع الرسمي لـ Termux، وليس Google Play.
1) إعداد Termux و Alpine
قم بتثبيت الحزم المطلوبة في Termux:
pkg update
pkg install mc wget git nmap proot-distro
قم بتثبيت Alpine وتسجيل الدخول:
proot-distro install alpine
proot-distro login alpine
2) تثبيت أدوات البناء في Alpine
apk add wget git go gcc clang musl-dev make
3) بناء Cameradar
أنشئ مسار وحدة وقم باستنساخ المستودع:
mkdir -p go/pkg/mod/github.com/Ullaakut
cd go/pkg/mod/github.com/Ullaakut
git clone https://github.com/Ullaakut/cameradar.git
cd cameradar/cmd/cameradar
go install
4) تشغيل Cameradar
انسخ القواميس وقم بتشغيل الملف الثنائي:
mkdir -p /tmp
cp -r ../../dictionaries /tmp/dictionaries
/go/bin/cameradar --targets=<target> --custom-credentials=/tmp/dictionaries/credentials.json --custom-routes=/tmp/dictionaries/routes --ui=plain --debug
استبدل <target> بعنوان IP أو نطاق أو مضيف أو شبكة فرعية لديك الإذن باختبارها.
التكوين
المنافذ الافتراضية هي 554 و 5554 و 8554 و http و 322 و 8322.
إذا لم تحدد منافذ، سيستخدم Cameradar هذه المنافذ.
مثال على مسح منافذ مخصصة:
docker run --rm -t --net=host \
ullaakut/cameradar \
--ports "18554,19000-19010" \
--targets localhost
يمكنك استبدال القواميس الافتراضية بملفات المسارات وبيانات الاعتماد الخاصة بك.
يوفر المستودع قواميس أساسية في مجلد dictionaries.
docker run --rm -t --net=host \
-v /my/folder/with/dictionaries:/tmp/dictionaries \
ullaakut/cameradar \
--custom-routes /tmp/dictionaries/my_routes \
--custom-credentials /tmp/dictionaries/my_credentials.json \
--targets 172.19.124.0/24
RTSPS وشهادات TLS
استخدم عناوين URL rtsps:// للوصول إلى تدفقات RTSPS.
- إذا كانت شهادة التدفق صادرة عن مرجع تصديق عام موثوق، فلا حاجة لإعداد إضافي.
- إذا كانت شهادة التدفق موقعة ذاتيًا أو صادرة عن مرجع تصديق خاص، فقد يرفضها مخزن الثقة لنظام التشغيل.
- في هذه الحالة، وجّه
SSL_CERT_FILEإلى شهادة المرجع المصدق (أو شهادة الخادم للإعداد الذاتي) عند تشغيل Cameradar.
مثال مع الملف الثنائي المحلي:
SSL_CERT_FILE=/path/to/ca-or-server.crt \
cameradar \
--targets localhost \
--ports 8322 \
--skip-scan \
--custom-routes routes.txt \
--custom-credentials credentials.json
مثال مع Docker:
docker run --rm -t --net=host \
-e SSL_CERT_FILE=/tmp/certs/server.crt \
-v /path/to/certs:/tmp/certs:ro \
ullaakut/cameradar \
--targets localhost \
--ports 8322
إذا كنت تفضل عدم استخدام SSL_CERT_FILE، أضف شهادة CA الخاصة بك إلى مخزن الثقة للنظام الذي يستخدمه بيئة وقت التشغيل الخاصة بك.
تخطي الاكتشاف باستخدام --skip-scan
إذا كنت تعرف بالفعل نقاط نهاية RTSP، يمكنك تخطي الاكتشاف ومعاملة كل هدف ومنفذ كمرشح للتدفق. هذا الوضع لا يشغل الاكتشاف ويمكن أن يكون مفيدًا في الشبكات المقيدة أو عندما تريد مهاجمة مخزون معروف.
تخطي الاكتشاف يعني:
- لا يقوم Cameradar بتشغيل الاكتشاف ولا يكتشف نماذج الأجهزة.
- يتم تحليل الأهداف إلى عناوين IP. يتم حل أسماء المضيفين عبر DNS.
- يتم توسيع كتل CIDR ونطاقات IPv4 لتشمل كل عنوان في النطاق.
- النطاقات الكبيرة تخلق العديد من الأهداف، لذا استخدمها بحذر.
مثال:
docker run --rm -t --net=host \
ullaakut/cameradar \
--skip-scan \
--ports "554,8554" \
--targets 192.168.1.10
في هذا المثال، يحاول Cameradar هجمات القاموس ضد المنفذين 554 و8554 من 192.168.1.10.
اختيار ماسح الاكتشاف باستخدام --scanner
يدعم Cameradar مُحركي اكتشاف خلفي:
nmap(افتراضي)masscan
استخدم nmap عندما تريد اكتشاف RTSP أكثر موثوقية: فهو يقوم بتحديد الخدمة ويمكنه التمييز بشكل أفضل بين RTSP والمنافذ المفتوحة الأخرى.
استخدم masscan عند مسح الشبكات الكبيرة جدًا: فهو بشكل عام أسرع وأكثر كفاءة على نطاق واسع، لكنه لا يوفر اكتشاف الخدمة.
docker run --rm -t --net=host \
ullaakut/cameradar \
--scanner masscan \
--ports "554,8554" \
--targets 192.168.1.0/24
[!تحذير]
--scan-speedينطبق فقط على ماسحnmap.
تقليل الإيجابيات الخاطئة باستخدام --framecheck
بعض الكاميرات لا تتبع سلوك RTSP بشكل كامل ويمكن أن ترجع 200 OK حتى عندما يكون المسار أو بيانات الاعتماد خاطئة.
عند تمكين --framecheck، يتحقق Cameradar من كل 200 OK عن طريق محاولة التشغيل وانتظار حزمة RTP.
يعني فحص الإطار:
- يقبل Cameradar فقط
200 OKعندما يمكنه تأكيد توليد الإطار. - إذا لم تصل حزمة RTP، يتعامل Cameradar مع النتيجة كإيجابية خاطئة ويواصل الهجوم.
- تظل فحوصات المسار متوافقة مع تحديات المصادقة التي تظهر أثناء التحري.
--framecheck معطل افتراضيًا لأنه يضيف طلبات RTSP ويمكن أن يزيد بشكل كبير من مدة الهجوم.
مثال مع Docker:
docker run --rm -t --net=host \
ullaakut/cameradar \
--targets 192.168.1.0/24 \
--ports "554,8554" \
--framecheck
مثال مع الملف الثنائي المحلي ومتغير البيئة:
FRAMECHECK=true \
cameradar \
--targets 192.168.1.0/24 \
--ports "554,8554"
الأمان والاستخدام المسؤول
Cameradar هي أداة اختبار اختراق. قم بمسح الشبكات والأجهزة التي تملكها فقط أو لديك إذن صريح لاختبارها. لا تستخدم هذه الأداة للوصول إلى الأنظمة أو التدفقات غير المصرح بها. إذا كنت غير متأكد، توقف واحصل على موافقة كتابية قبل المسح.
المخرجات
يعرض Cameradar النتائج في واجهة طرفية قابلة للقراءة.
يقوم بتسجيل النتائج في وحدة التحكم.
يتضمن التقرير المضيفين المكتشفين، ونماذج الأجهزة المحددة، والمسارات أو بيانات الاعتماد الصالحة.
إذا قمت بتحديد مسار لعلامة --output، يكتب Cameradar أيضًا قائمة تشغيل M3U بالتدفقات المكتشفة.
التحقق من الوصول إلى الكاميرا
استخدم VLC Media Player للاتصال بتدفق:
rtsp://username:password@address:port/route
لنقاط نهاية RTSP الآمنة، استخدم:
rtsps://username:password@address:port/route
تنسيق ملف الإدخال
يمكن أن يحتوي الملف على عناوين IP وأسماء مضيفين ونطاقات IP وشبكات فرعية. افصل الإدخالات بأسطر جديدة. مثال:
0.0.0.0
localhost
192.17.0.0/16
192.168.1.140-255
192.168.2-3.0-255
عند استخدام --skip-scan، يقوم Cameradar بتوسيع كل إدخال إلى عناوين IP صريحة قبل بناء قائمة الأهداف.
خيارات سطر الأوامر ومتغيرات البيئة
المرجع الكامل لواجهة سطر الأوامر ومتغيرات البيئة موجود في مرجع التكوين.
يشمل ذلك جميع العلامات المدعومة، والقيم الافتراضية، والقيم المقبولة، وتعيين متغيرات البيئة.
البناء والمساهمة
بناء Docker
قم بتشغيل الأمر التالي في جذر المستودع:
docker build . -t cameradar
الصورة الناتجة تسمى cameradar.
بناء Go
go install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latest
الملف الثنائي cameradar موجود الآن في $GOPATH/bin/cameradar.
الأسئلة الشائعة
راجع استكشاف الأخطاء وإصلاحها والأسئلة الشائعة
أمثلة
تشغيل camerdar على جهازك الخاص لمسح المنافذ الافتراضية
docker run --rm -t --net=host ullaakut/cameradar --targets localhost
تشغيل camerdar مع ملف إدخال، مع تمكين السجلات على المنفذ 8554
docker run --rm -t --net=host -v /tmp:/tmp ullaakut/cameradar --targets /tmp/test.txt --ports 8554
تشغيل camerdar على شبكة فرعية مع قواميس مخصصة، على المنافذ 554, 5554, 8554, 322, و 8322
docker run --rm -t --net=host -v /tmp:/tmp ullaakut/cameradar --targets 192.168.0.0/24 --custom-credentials "/tmp/dictionaries/credentials.json" --custom-routes "/tmp/dictionaries/routes" --ports 554,5554,8554
تشغيل camerdar مع اكتشاف masscan
docker run --rm -t --net=host ullaakut/cameradar --scanner masscan --targets 192.168.0.0/24 --ports 554,8554
الترخيص
حقوق الطبع والنشر 2026 Ullaakut
يُمنح الإذن، مجانًا، لأي شخص يحصل على نسخة من هذا البرنامج وملفات التوثيق المرتبطة به (الـ "برنامج")، للتعامل في البرنامج دون قيود، بما في ذلك دون حصر حقوق الاستخدام والنسخ والتعديل والدمج والنشر والتوزيع والترخيص و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين تم تزويدهم بالبرنامج بذلك، وفقًا للشروط التالية:
يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الجوهرية من البرنامج.
يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريحًا أو ضمنيًا، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. في أي حال من الأحوال لا يكون المؤلفون أو حاملو حقوق الطبع والنشر مسؤولين عن أي دعوى أو أضرار أو مسؤولية أخرى، سواء في إطار عقد أو تقصير أو غير ذلك، تنشأ عن أو فيما يتعلق بالبرنامج أو استخدامه أو تعاملات أخرى في البرنامج.