Kamerka GUI
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.
Qué Hace
- Busca en Shodan categorías de dispositivos ICS, IoT, sanitarios e infraestructura de atacantes.
- Admite búsquedas por país y por coordenadas.
- Almacena búsquedas y dispositivos descubiertos en una base de datos local de Django.
- Muestra historial de búsquedas, paneles, estadísticas, favoritos y una galería de capturas de pantalla.
- Muestra dispositivos en vistas de Google Maps globales y por dispositivo.
- Analiza indicadores de dispositivos a partir de banners y respuestas de protocolos para ayudar con la geolocalización.
- Muestra inteligencia a nivel de dispositivo, datos de banner, capturas de pantalla, nombres de host, organización, ubicación, puertos, productos y vulnerabilidades.
- Ejecuta escaneos de host de Shodan y enriquecimiento de Whois XML API desde la pestaña Intel.
- Admite la importación de salida XML de Nmap y la ejecución de escaneos NSE de Nmap seleccionados.
- Incluye ayudas de exploit de prueba de concepto seleccionadas para familias específicas de dispositivos.
Capturas de Pantalla
Mapa

Inteligencia del Dispositivo

Inteligencia del Dispositivo con Captura


Galería de Capturas

Panel de Control

Vistas Principales
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.
Requisitos
- Python 3.10 a 3.13 recomendado para el stack mantenido de Django 5.2 y Celery.
- Servidor Redis para trabajos en segundo plano de Celery.
- Clave API de Shodan. Se recomienda una cuenta de pago porque las búsquedas amplias consumen créditos/páginas.
- Clave API de Google Maps JavaScript para mapas y funcionalidades de ruta/ubicación.
- Clave API de Whois XML si desea enriquecimiento Whois.
GeoLite2-City.mmdb en la raíz del repositorio si desea geolocalización en la importación XML de Nmap.
- Nmap instalado localmente si desea ejecutar escaneos Nmap activos.
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.
Instalación
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:
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:
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:
Notas de Configuración
keys.json es necesario en tiempo de ejecución porque la aplicación lee las claves API de keys['keys'].
- Mantenga
keys.json fuera del control de versiones. Contiene credenciales privadas.
- La base de datos por defecto es SQLite. Es adecuada para pruebas locales; use una base de datos de producción si implementa la aplicación.
- Las búsquedas en segundo plano, los escaneos de Shodan, los escaneos Whois y las importaciones de Nmap dependen de que los trabajadores de Celery estén activos.
- Las búsquedas por coordenadas utilizan consultas geoespaciales de Shodan alrededor de la latitud/longitud proporcionada.
- Las búsquedas grandes en Shodan pueden consumir créditos rápidamente. Use los límites de páginas intencionalmente.
Flujo de Trabajo Típico
- Abra la página de búsqueda y elija un modo de búsqueda ICS, IoT, sanitario o de infraestructura.
- Seleccione una o más categorías de dispositivos.
- Elija un país o proporcione coordenadas, luego seleccione cuántas páginas de Shodan recopilar.
- Envíe la búsqueda y espere a que finalice la tarea de Celery.
- Revise el panel de control, el historial o la página de resultados por búsqueda.
- Abra dispositivos individuales para inspeccionar la inteligencia, la ubicación en el mapa, las capturas de pantalla, los resultados del escaneo de Shodan y los datos Whois.
- Use escaneos activos o ayudas de exploit solo cuando tenga autorización explícita.
Categorías de Búsqueda Admitidas
La lista completa de consultas de Shodan admitidas se mantiene en queries.md.
Las categorías generales incluyen:
- Sistemas de control industrial y protocolos OT.
- Cámaras y dispositivos IoT con capacidad de captura de pantalla.
- Sistemas sanitarios y médicos.
- Automatización de edificios e infraestructura inteligente.
- Indicadores de infraestructura de atacantes.
- Servicios expuestos genéricos como VNC, RDP, MQTT, impresoras y cámaras web.
Soporte para Nmap
Kamerka puede importar la salida XML de Nmap e incluye scripts auxiliares NSE en nmap_scripts.
Las familias de scripts incluidas son:
- ATG
- BACnet
- Codesys
- DNP3
- EtherNet/IP
- Fox/Niagara
- Modbus
- Omron FINS
- PCWorx
- ProConOS
- Siemens S7
Ayudas de Exploit
El proyecto incluye módulos de exploit/ayuda seleccionados para familias específicas de dispositivos, que incluyen:
- Serie Bosch Security Systems DVR 630/650/670
- Divulgación remota de archivos de VideoIQ
- Flujo de modificación de usuario estilo backdoor de Hikvision
- Comportamiento de restablecimiento de contraseña de Contec Smart Home
- Verificación de información/versión de Grandstream UCM
- Divulgación de estado de cámara Netwave
- Divulgación de información de CirCarLife SCADA
- Ayuda de punto final de audio/video no autenticado de Amcrest
- Divulgación de información de Lutron Quantum
Estas ayudas son solo para validación controlada. No las ejecute contra sistemas que no posea o no tenga permiso para probar.
Solución de Problemas
- Si las búsquedas nunca se completan, confirme que Redis esté en ejecución y que el trabajador de Celery esté conectado.
- Si los mapas no se cargan, confirme que la clave API de Google Maps sea válida y esté autorizada para su host.
- Si las búsquedas de Shodan fallan, confirme que la clave API tenga créditos y que la consulta/límite de páginas esté permitido.
- Si el enriquecimiento Whois está vacío, confirme la clave API de Whois XML y su cuota.
- Si la importación XML de Nmap falla, confirme que el archivo XML sea válido y que
GeoLite2-City.mmdb exista en la raíz del proyecto.
Aviso de Seguridad y Legal
Kamerka puede identificar infraestructura crítica, IoT y activos médicos expuestos. Trate todos los hallazgos de manera responsable:
- Úselo solo en activos que posea o tenga autorización para evaluar.
- No explote, modifique ni interrumpa sistemas de terceros.
- Informe sobre sistemas críticos expuestos a través de canales de divulgación responsable adecuados.
- Los autores y colaboradores no son responsables del uso indebido o daños causados por esta herramienta.
Lecturas Relacionadas
Créditos