Kamerka GUI
Kamerka GUI é um painel de reconhecimento baseado em Django para descobrir, revisar e triar dispositivos de Sistemas de Controle Industrial, Internet das Coisas (IoT) e dispositivos médicos expostos na Internet. Ele combina dados de pesquisa do Shodan, visualização do Google Maps, capturas de tela de dispositivos, enriquecimento passivo de inteligência e auxiliares selecionados de varredura/exploit em uma única interface web.
O aplicativo ajuda a reduzir ruído durante a revisão com um botão Filter Honeypots nas tabelas de dispositivos. Isso exclui dispositivos que exibem indicadores do tipo honeypot, permitindo que os analistas foquem primeiro em ativos reais prováveis. O Kamerka também apresenta um campo Indicator do dispositivo, construído a partir de banners analisados, respostas de protocolo, rótulos de capturas de tela e outros metadados do dispositivo, para explicar por que um dispositivo foi sinalizado ou como ele pode ser localizado ou classificado.
Use-o apenas para pesquisa autorizada, inventário de ativos, gerenciamento defensivo de exposição e relato aos proprietários apropriados ou equipes CERT/CSIRT.
O que Faz
- Pesquisa no Shodan por categorias de dispositivos ICS, IoT, saúde e infraestrutura de atacantes.
- Oferece suporte a pesquisas baseadas em país e coordenadas.
- Armazena pesquisas e dispositivos descobertos em um banco de dados Django local.
- Mostra histórico de pesquisas, painéis, estatísticas, favoritos e uma galeria de capturas de tela.
- Exibe dispositivos em visualizações do Google Maps globais e por dispositivo.
- Analisa indicadores de dispositivos a partir de banners e respostas de protocolo para ajudar na geolocalização.
- Mostra inteligência em nível de dispositivo, dados de banner, capturas de tela, nomes de host, organização, localização, portas, produtos e vulnerabilidades.
- Executa varreduras de host Shodan e enriquecimento via API Whois XML a partir da guia Intel.
- Oferece suporte à importação de saída XML do Nmap e à execução de varreduras NSE selecionadas do Nmap.
- Inclui auxiliares de exploit de prova de conceito selecionados para famílias específicas de dispositivos.
Capturas de Tela
Mapa

Inteligência do Dispositivo



Galeria de Capturas de Tela

Painel

Visões Principais
Dashboard: contagens de alto nível, créditos Shodan, pesquisas recentes, gráficos, cobertura mundial e favoritos.
Database: tabela pesquisável de todos os dispositivos descobertos com filtragem para prováveis honeypots.
History: pesquisas anteriores com nomes de países, categorias de dispositivos selecionadas e links para resultados.
Map: mapa global agrupado do Google dos dispositivos descobertos.
Gallery: todas as capturas de tela coletadas de dispositivos, com filtro por país.
Results: tabela de dispositivos por pesquisa, mapa, estatísticas e navegação no estilo de exportação.
Device: guias Localizar, Intel e Exploit para um único dispositivo.
Requisitos
- Python 3.10 a 3.13 recomendado para a stack mantida Django 5.2 e Celery.
- Servidor Redis para tarefas em segundo plano do Celery.
- Chave da API Shodan. Uma conta paga é recomendada porque pesquisas amplas consomem créditos/páginas.
- Chave da API JavaScript do Google Maps para mapas e funcionalidades de rota/localização.
- Chave da API Whois XML se você quiser enriquecimento Whois.
GeoLite2-City.mmdb na raiz do repositório se você quiser geolocalização de importação XML do Nmap.
- Nmap instalado localmente se você quiser executar varreduras ativas do Nmap.
As dependências Python estão listadas em requirements.txt. O projeto agora visa a linha LTS Django 5.2, Celery 5.6 e pacotes Python com versões delimitadas para que as instalações permaneçam atualizadas sem saltar para versões principais incompatíveis.
Instalação
Clone o repositório e crie um ambiente 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
Se python3.12 não estiver disponível, use outro interpretador Python 3.10-3.13. Evite reutilizar um ambiente virtual antigo Python 3.8/3.9 porque o conjunto atual de dependências requer Python 3.10+.
Crie o esquema do banco de dados:
Crie keys.json na raiz do repositório:
{
"keys": {
"shodan": "YOUR_SHODAN_API_KEY",
"google_maps": "YOUR_GOOGLE_MAPS_API_KEY",
"whoisxmlapi": "YOUR_WHOIS_XML_API_KEY"
}
}
Inicie o Redis em um terminal separado:
Inicie um worker Celery em outro terminal:
source .venv/bin/activate
celery --app kamerka worker --loglevel=info
Inicie o servidor de desenvolvimento Django:
source .venv/bin/activate
python manage.py runserver
Abra o aplicativo:
Notas de Configuração
keys.json é necessário em tempo de execução porque o aplicativo lê as chaves de API de keys['keys'].
- Mantenha
keys.json fora do controle de versão. Ele contém credenciais privadas.
- O banco de dados padrão é SQLite. Isso é adequado para testes locais; use um banco de dados de produção se for implantar.
- Pesquisas em segundo plano, varreduras Shodan, varreduras Whois e importações Nmap dependem de workers Celery ativos.
- Pesquisas por coordenadas usam consultas geo Shodan em torno da latitude/longitude fornecida.
- Pesquisas grandes Shodan podem consumir créditos rapidamente. Use limites de página intencionalmente.
Fluxo de Trabalho Típico
- Abra a página de pesquisa e escolha um modo de pesquisa ICS, IoT, saúde ou infraestrutura.
- Selecione uma ou mais categorias de dispositivos.
- Escolha um país ou forneça coordenadas, depois escolha quantas páginas Shodan coletar.
- Envie a pesquisa e aguarde a tarefa Celery terminar.
- Revise o painel, o histórico ou a página de resultados por pesquisa.
- Abra dispositivos individuais para inspecionar Intel, localização no mapa, capturas de tela, resultados de varredura Shodan e dados Whois.
- Use varreduras ativas ou auxiliares de exploit somente quando tiver autorização explícita.
Categorias de Pesquisa Suportadas
A lista completa de consultas Shodan suportadas é mantida em queries.md.
As categorias amplas incluem:
- Sistemas de controle industrial e protocolos OT.
- Câmeras e dispositivos IoT com capacidade de captura de tela.
- Sistemas de saúde e médicos.
- Automação predial e infraestrutura inteligente.
- Indicadores de infraestrutura de atacantes.
- Serviços expostos genéricos como VNC, RDP, MQTT, impressoras e câmeras web.
Suporte Nmap
Kamerka pode importar saída XML do Nmap e inclui scripts auxiliares NSE em nmap_scripts.
As famílias de scripts incluídas incluem:
- ATG
- BACnet
- Codesys
- DNP3
- EtherNet/IP
- Fox/Niagara
- Modbus
- Omron FINS
- PCWorx
- ProConOS
- Siemens S7
Auxiliares de Exploit
O projeto inclui módulos selecionados de exploit/auxiliar para famílias específicas de dispositivos, incluindo:
- Bosch Security Systems DVR 630/650/670 Series
- VideoIQ remote file disclosure
- Hikvision backdoor-style user modification flow
- Contec Smart Home password reset behavior
- Grandstream UCM information/version check
- Netwave camera status disclosure
- CirCarLife SCADA information disclosure
- Amcrest unauthenticated audio/video endpoint helper
- Lutron Quantum information disclosure
Estes auxiliares são apenas para validação controlada. Não os execute contra sistemas que você não possui ou não tem permissão para testar.
Solução de Problemas
- Se as pesquisas nunca forem concluídas, confirme que o Redis está em execução e o worker Celery está conectado.
- Se os mapas não carregarem, confirme que a chave da API do Google Maps é válida e autorizada para seu host.
- Se as pesquisas Shodan falharem, confirme que a chave da API tem créditos e a contagem de consultas/páginas é permitida.
- Se o enriquecimento Whois estiver vazio, confirme a chave e a cota da API Whois XML.
- Se a importação XML do Nmap falhar, confirme que o arquivo XML é válido e que
GeoLite2-City.mmdb existe na raiz do projeto.
Aviso de Segurança e Legal
Kamerka pode identificar infraestrutura crítica exposta, ativos de IoT e médicos. Trate todas as descobertas com responsabilidade:
- Use apenas em ativos que você possui ou está autorizado a avaliar.
- Não explore, altere ou interrompa sistemas de terceiros.
- Reporte sistemas críticos expostos por meio de canais apropriados de divulgação responsável.
- Os autores e contribuidores não são responsáveis pelo uso indevido ou danos causados por esta ferramenta.
Leitura Relacionada
Créditos