
Strumento di ricognizione definitivo per Internet delle Cose/Sistemi di Controllo Industriale.
Kamerka GUI è un dashboard di ricognizione basato su Django per scoprire, esaminare e classificare i sistemi di controllo industriale, i dispositivi dell'Internet delle Cose (IoT) e i dispositivi medici esposti su Internet. Combina dati di ricerca Shodan, visualizzazione Google Maps, screenshot dei dispositivi, arricchimento di intelligence passiva e helper di scansione/exploit selezionati in un'unica interfaccia web.
L'app aiuta a ridurre il rumore durante la revisione con un interruttore Filter Honeypots nelle tabelle dei dispositivi. Questo esclude i dispositivi che espongono indicatori stile honeypot, così gli analisti possono concentrarsi prima su risorse probabilmente reali. Kamerka mostra anche un campo Indicator del dispositivo, costruito da banner analizzati, risposte di protocollo, etichette di screenshot e altri metadati del dispositivo, per spiegare perché un dispositivo è stato segnalato o come può essere localizzato o classificato.
Utilizzalo solo per ricerche autorizzate, inventario delle risorse, gestione difensiva dell'esposizione e segnalazione ai proprietari appropriati o ai team CERT/CSIRT.






Dashboard: conteggi di alto livello, crediti Shodan, ricerche recenti, grafici, copertura mondiale e preferiti.Database: tabella ricercabile di tutti i dispositivi scoperti con filtro per probabili honeypot.History: ricerche precedenti con nomi di paesi, categorie di dispositivi selezionate e collegamenti ai risultati.Map: mappa Google Maps globale con cluster dei dispositivi scoperti.Gallery: tutti gli screenshot dei dispositivi raccolti, con filtro per paese.Results: tabella dei dispositivi per ricerca, mappa, statistiche e navigazione in stile esportazione.Device: schede Locate, Intel e Exploit per un singolo dispositivo.GeoLite2-City.mmdb nella radice del repository se si desidera la geolocalizzazione dell'importazione Nmap XML.Le dipendenze Python sono elencate in requirements.txt. Il progetto ora punta alla linea Django 5.2 LTS, Celery 5.6 e pacchetti Python vincolati in modo che le installazioni rimangano aggiornate senza saltare a versioni maggiori incompatibili.
Clona il repository e crea un ambiente virtuale:
git clone https://github.com/woj-ciech/Kamerka-GUI.git
cd Kamerka-GUI
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
Se python3.12 non è disponibile, usa un altro interprete Python 3.10-3.13. Evita di riutilizzare un vecchio ambiente virtuale Python 3.8/3.9 perché il set di dipendenze attuale richiede Python 3.10+.
Crea lo schema del database:
python manage.py migrate
Crea keys.json nella radice del repository:
{
"keys": {
"shodan": "YOUR_SHODAN_API_KEY",
"google_maps": "YOUR_GOOGLE_MAPS_API_KEY",
"whoisxmlapi": "YOUR_WHOIS_XML_API_KEY"
}
}
Avvia Redis in un terminale separato:
redis-server
Avvia un worker Celery in un altro terminale:
source .venv/bin/activate
celery --app kamerka worker --loglevel=info
Avvia il server di sviluppo Django:
source .venv/bin/activate
python manage.py runserver
Apri l'app:
http://localhost:8000/
keys.json è richiesto in fase di esecuzione perché l'app legge le chiavi API da keys['keys'].keys.json fuori dal controllo versione. Contiene credenziali private.L'elenco completo delle query Shodan supportate è mantenuto in queries.md.
Le categorie generali includono: