العودة إلى التحديثات
New releaseJul 26, 2026

cameradar v6.2.1

يخترق Cameradar كاميرات المراقبة بالفيديو عبر RTSP

مشاركة

كاميرادار

Coverage Status

أداة الوصول إلى تدفق RTSP

يقوم Cameradar بمسح نقاط نهاية RTSP على الأهداف المصرح بها، ويستخدم هجمات القاموس لاختراق بيانات اعتمادهم ومساراتهم.

ما يفعله Cameradar

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

جدول المحتويات


البدء السريع مع 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 أو أحدث

الخطوات

  1. 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

  1. 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

يُمنح الإذن، مجانًا، لأي شخص يحصل على نسخة من هذا البرنامج وملفات التوثيق المرتبطة به (الـ "برنامج")، للتعامل في البرنامج دون قيود، بما في ذلك دون حصر حقوق الاستخدام والنسخ والتعديل والدمج والنشر والتوزيع والترخيص و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين تم تزويدهم بالبرنامج بذلك، وفقًا للشروط التالية:

يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الجوهرية من البرنامج.

يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريحًا أو ضمنيًا، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. في أي حال من الأحوال لا يكون المؤلفون أو حاملو حقوق الطبع والنشر مسؤولين عن أي دعوى أو أضرار أو مسؤولية أخرى، سواء في إطار عقد أو تقصير أو غير ذلك، تنشأ عن أو فيما يتعلق بالبرنامج أو استخدامه أو تعاملات أخرى في البرنامج.

الفئات