
Herramienta de reconocimiento definitiva para Internet de las Cosas/Sistemas de Control Industrial.
Kamerka GUI es un panel de reconocimiento basado en Django para descubrir, revisar y clasificar dispositivos de Sistemas de Control Industrial, Internet de las Cosas y dispositivos médicos expuestos en Internet. Combina datos de búsqueda de Shodan, visualización de Google Maps, capturas de pantalla de dispositivos, enriquecimiento pasivo de inteligencia y ayudas seleccionadas de escaneo/exploit en una única interfaz web.
La aplicación ayuda a reducir el ruido durante la revisión con un filtro Filter Honeypots en las tablas de dispositivos. Esto excluye los dispositivos que muestran indicadores de honeypot, para que los analistas puedan centrarse primero en los activos probablemente reales. Kamerka también muestra un campo Indicator del dispositivo, construido a partir de banners analizados, respuestas de protocolos, etiquetas de capturas de pantalla y otros metadatos del dispositivo, para explicar por qué se marcó un dispositivo o cómo se puede localizar o clasificar.
Úselo solo para investigaciones autorizadas, inventario de activos, gestión defensiva de exposiciones y notificación a los propietarios adecuados o equipos CERT/CSIRT.






Dashboard: conteos de alto nivel, créditos de Shodan, búsquedas recientes, gráficos, cobertura mundial y favoritos.Database: tabla de todos los dispositivos descubiertos con filtro para posibles honeypots.History: búsquedas anteriores con nombres de país, categorías de dispositivos seleccionadas y enlaces a los resultados.Map: mapa global agrupado (Google Maps) de los dispositivos descubiertos.Gallery: todas las capturas de pantalla de dispositivos recopiladas, con filtro por país.Results: tabla de dispositivos por búsqueda, mapa, estadísticas y navegación tipo exportación.Device: pestañas de Localización, Intel y Exploit para un único dispositivo.GeoLite2-City.mmdb en la raíz del repositorio si desea geolocalización en la importación XML de Nmap.Las dependencias de Python se enumeran en requirements.txt. El proyecto ahora apunta a la línea LTS Django 5.2, Celery 5.6 y paquetes Python con versiones acotadas para que las instalaciones se mantengan actualizadas sin saltar a versiones mayores incompatibles.
Clone el repositorio y cree un entorno virtual:
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
Si python3.12 no está disponible, use otro intérprete Python 3.10-3.13. Evite reutilizar un entorno virtual antiguo de Python 3.8/3.9 porque el conjunto de dependencias actual requiere Python 3.10+.
Cree el esquema de la base de datos:
python manage.py migrate
Cree keys.json en la raíz del repositorio:
{
"keys": {
"shodan": "YOUR_SHODAN_API_KEY",
"google_maps": "YOUR_GOOGLE_MAPS_API_KEY",
"whoisxmlapi": "YOUR_WHOIS_XML_API_KEY"
}
}
Inicie Redis en una terminal aparte:
redis-server
Inicie un trabajador de Celery en otra terminal:
source .venv/bin/activate
celery --app kamerka worker --loglevel=info
Inicie el servidor de desarrollo de Django:
source .venv/bin/activate
python manage.py runserver
Abra la aplicación:
http://localhost:8000/
keys.json es necesario en tiempo de ejecución porque la aplicación lee las claves API de keys['keys'].keys.json fuera del control de versiones. Contiene credenciales privadas.La lista completa de consultas de Shodan admitidas se mantiene en queries.md.
Las categorías generales incluyen: