ReconHound
Engine moderna de Alta Performance, Assíncrona e Modular para External Attack Surface Management (EASM), Reconhecimento de Ativos, Validação Ativa e Inteligência de Armamento de Vulnerabilidades.
1. Introdução
O ReconHound é uma engine de External Attack Surface Management (EASM) e Threat Intelligence construída para analistas, Red Teams e pesquisadores. Ele automatiza o reconhecimento e unifica os resultados em uma interface gráfica em tempo real.
O que é "EASM & Threat Intelligence Engine"?
Gerenciamento da Superfície de Ataque Externa (EASM) é o processo de descobrir, monitorar e avaliar ativos expostos na internet, identificando vetores de ataque antes que os adversários o façam. O ReconHound atua como uma engine que enriquece esses dados com inteligência de ameaças, valida ativamente os achados e qualifica o risco real de exploração. Ele transforma terabytes de telemetria de internet bruta e ruidosa em inteligência priorizada e acionável, permitindo que as equipes de segurança se concentrem no que realmente importa.
Inspirado fortemente no BloodHound, o ReconHound modela a superfície de ataque externa como um grafo de relacionamentos orientados (Target Root → Domains → IPs → Services → CVEs → PoCs). A ferramenta unifica inteligência passiva, validação ativa em portas abertas e rastreabilidade de evidências em uma experiência visual contínua, desenhada para expor vetores de ataque.
Mapeamento EASM Concorrente
Execução ultra rápida assíncrona para IP único, blocos CIDR (/24), domínios, emails, CVEs e buscas complexas do Shodan e Censys Platform v3.
Validação Ativa (Masscan + Nuclei)
Verificação de portas em alta velocidade com captura de banners e validação automatizada de vulnerabilidades restrita a portas comprovadamente ativas.
Priorização por Risco & Source
Elimine a fadiga de alertas: priorize ativos através do cruzamento entre CVSS Base, FIRST EPSS, CISA KEV e rastreabilidade explícita da fonte do finding.
Dashboard Gráfico Interativo
ReconHound WebGUI embarcado em FastAPI + Cytoscape.js com menus de contexto, controle de estado de scan (Start/Stop) e filtros instantâneos.
2. Arquitetura & Pipeline de Correlação
A arquitetura do ReconHound opera através de um pipeline assíncrono modular de 5 estágios encadeados, projetado para transformar dados brutos de OSINT e varreduras ativas em um modelo relacional correlacionado de alta fidelidade:
1. Descoberta, Recon Primário & CDN Bypass
Enumeração de certificados TLS (crt.sh), inteligência reversa de WHOIS (WhoisFreaks), profiling de hosts via Shodan/Censys, Bypass de Proxies de CDN Compartilhada (Cloudflare/Fastly/Akamai) para evitar ruído de outros tenants, e Fallback Automático BGP/RDAP (IP-API / RIPE Stat).
2. Governança de Escopo & Resolução DNS
Resolução DNS concorrente (A/AAAA) restrita estritamente à árvore de subdomínios do alvo (*.alvo.com) e Governança de Escopo para Org/ASN (org:/asn:), blindando a base e o grafo contra poluição de provedores ou domínios alheios.
3. Validação Ativa & Verificação
Varredura ativa ultrarrápida de portas e banners via Masscan (com evasão de WAF) e auditoria de vulnerabilidades direcionada com Nuclei (Regra Verified Active).
4. Threat Intel, Scoring & PoCs
Enriquecimento de CVEs via NVD 2.0 (CVSS/CWE), probabilidade real de exploração (FIRST EPSS), CISA KEV, exploits do ExploitDB e repositórios de PoCs no GitHub.
5. Síntese em Grafo & Apresentação Multi-Canal
Topologia hierárquica DAG multi-nível (6 camadas com matrizes), Isolamento de Caminho de Ataque Estrito nos filtros de risco, navegação bidirecional no Inspector e exportação em SQLite, CSV, JSON, Markdown e HTML.
Entendendo a Topologia Relacional (Host-Centric & Target-Driven)
A estrutura de dados sintetizada no Grafo orienta os nós através de uma arquitetura Host-Centric ágil e focada diretamente na cadeia de ataque técnico:
Target Query Root (Âncora com Inventário Completo: all_domains & all_subdomains)
├── CONTAINS_TARGET ──► Hosts / IPs do Alvo (com badge de metadados 🌐 N FQDNs)
│ └── EXPOSES ──► Serviços / Portas (Instâncias Locais 1:N por Host)
│ └── HAS_VULN ──► CVEs (Entidades Globais Deduplicadas N:M)
│ ├── ENRICHED_WITH ──► FIRST EPSS + CISA KEV
│ └── WEAPONIZED_BY ──► ExploitDB + GitHub PoCs
└── CONTAINS_TARGET ──► FQDN Targets Explícitos (Alvos de Varredura Marcados sob Demanda)
└── RESOLVES_TO ──► Hosts / IPs Resolvidos
O ReconHound renderiza um grafo em Sandbox Limpo focado na interação fluida e na topologia Top-Down (Raiz → Ativos → Serviços → CVEs), consolidando de forma inteligente grandes volumes de dados:
- Foco Direto e Limpo: O canvas inicia de forma limpa. Subdomínios não poluem a tela; ficam organizados no Asset Inspector e se materializam apenas quando configurados como alvos ativos.
- Layout Dinâmico: Gráficos densos renderizam portas e serviços sob um Grid Proporcional vertical e organizado.
- Deduplicação de Inteligência: IPs expõem serviços independentes, enquanto vulnerabilidades (CVEs) se comportam como entidades centralizadas, permitindo visão transversal do impacto.
Motor de Descoberta Recursiva Retroativa & Fusão Incremental (Smart Upsert)
O grande diferencial do ReconHound em relação a ferramentas tradicionais de varredura estática reside no seu Ciclo de Expansão Recursiva de Superfície. Em vez de se limitar estritamente aos blocos de rede iniciais de uma consulta (como ASN, Org ou CIDR), o motor dispara uma cadeia heurística em múltiplos níveis que correlaciona certificados, identidades DNS e infraestruturas satélites em tempo real:
1. Extração Heurística de Identidade
Varre certificados TLS (SNI), cabeçalhos HTTP e banners retornados no Recon Primário para identificar domínios raiz e FQDNs ocultos sob a propriedade do alvo.
2. Enumeração Cascata de Subdomínios
Alimenta dinamicamente os motores de Certificate Transparency (crt.sh) e Reverse WHOIS para desdobrar toda a árvore de subdomínios e domínios irmãos do alvo.
3. Resolução DNS Concorrente (A/AAAA)
Processa centenas de subdomínios em paralelo via asyncio com controle de semáforo, descobrindo novos blocos de IPs e nuvens satélites fora da query inicial.
4. Enriquecimento Retroativo Contínuo
Submete os novos IPs descobertos via DNS a um novo ciclo de profiling passivo, enriquecendo portas, serviços, ASN e geolocalização automaticamente.
Target Query (ex: org:'ACME Corp')
│
├─► [1. Recon Primário] ──────► Host Profiling + TLS / HTTP Banners
│ │
│ ▼ Extração Heurística de Domínios
├─► [2. Enumeração Cascata] ──► crt.sh + Reverse WHOIS (Domínios & Subdomínios)
│ │
│ ▼ Resolução DNS Concorrente (A/AAAA)
├─► [3. Expansão de Rede] ────► Descoberta de Novos Blocos de IPs Satélites
│ │
│ ▼ Profiling Passivo Retroativo
└─► [4. Fusão Incremental] ───► SQLite Upsert: Preservação de Histórico + Fontes Mescladas
Ao reexecutar varreduras sobre bases SQLite já existentes em ./data/dbs/, o motor aplica regras estritas de integridade relacional sem perda de contexto:
- Unicidade Estrita de Ativos: Garante unicidade absoluta para
(ip_id, port, protocol)e registros de IP, impedindo duplicação de nós no grafo. - Merge de Proveniência (
sources): Se uma porta foi identificada anteriormente via Shodan e confirmada ativamente via Masscan, o motor unifica a lista:["Masscan", "Passive", "Shodan"]. - Enriquecimento Cumulativo (
COALESCE): Metadados de ASN, Organização, País, Cidade e Coordenadas Geográficas são enriquecidos sem sobrescrever dados pré-existentes. - Rastreabilidade de Scans (
scan_results): Cada execução registra uma nova entrada no histórico, mantendo a evolução cronológica da superfície de ataque auditada.
3. Guia de Instalação (Quickstart)
O ReconHound suporta execução nativa em Linux, macOS e Windows (via WSL2). Siga os passos abaixo para preparar o ambiente:
Requer Python 3.11 ou superior e o gerenciador de pacotes pip ou ambiente virtual venv.
Passo 1: Instalação Automática via PyPI
A ferramenta é empacotada e distribuída oficialmente via PyPI, permitindo que você a instale em qualquer máquina Linux, Windows ou macOS com um simples comando pip.
# 1. Baixar e instalar o pacote globalmente
pip install reconhound
# 2. Executar a autoconfiguração automatizada
# (Setup de banco de dados, credenciais seguras da Dashboard e dependências).
reconx config setup
Passo 2: Binários de Varredura Ativa (Masscan & Nuclei)
A rotina reconx config setup verifica e configura automaticamente permissões de rede (setcap) e templates. Caso prefira instalar os binários do sistema manualmente:
# Instalação do Masscan (Ubuntu / Debian / Kali)
sudo apt update && sudo apt install -y masscan
# Conceder Linux capabilities para execução do Masscan sem root na WebUI:
sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip $(which masscan)
# Instalação do Nuclei (via Go ou Release Binary)
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
A varredura ativa utiliza envio assíncrono de pacotes brutos via Masscan. Certifique-se de que o pacote masscan esteja instalado no host e que as permissões de sockets brutos foram concedidas via Linux Capabilities:
sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip $(which masscan)
Passo 3: Banco Local de Exploits (ExploitDB)
O catálogo local de exploits é inicializado automaticamente pelo setup. Para atualizá-lo sob demanda:
reconx config update
4. Configuração de Chaves & APIs
O ReconHound foi construído com design tolerante a falhas. Caso nenhuma chave seja fornecida, a ferramenta utiliza automaticamente fontes e fallbacks públicos gratuitos (crt.sh, HackerTarget, FIRST EPSS API, CISA KEV Catalog e GitHub PoC API). No entanto, para capacidade de varredura profunda de infraestrutura e bypass de rate-limits, recomendamos a configuração de variáveis de ambiente.
O arquivo .env é criado automaticamente a partir de .env.example durante o setup. Configure as chaves desejadas:
# ==============================================================================
# ReconHound - External Attack Surface Management & Threat Intelligence Engine
# Copy this file to .env and insert your API keys as needed.
# ==============================================================================
# [Required for Shodan Queries, Subnets, DNS & Banner Reconnaissance]
SHODAN_API_KEY=
# [Required for V3: AlienVault OTX Threat Actors & Malware extraction]
ALIENVAULT_API_KEY=
# [Required for V3: SecurityTrails Subdomain & Passive IP Enumeration]
SECURITYTRAILS_API_KEY=
# [Optional: Censys Platform API v3 Personal Access Token & Org ID]
CENSYS_PAT_TOKEN=
CENSYS_ORG_ID=
# [Optional: Censys Legacy API ID & Secret]
CENSYS_API_ID=
CENSYS_API_SECRET=
# [Optional: NVD API Key for Accelerated CVSS & CWE Enrichment]
NVD_API_KEY=
# [Optional: WhoisFreaks API Key for Structured Reverse WHOIS Domain Mapping]
WHOISFREAKS_API_KEY=
# [Optional: GitHub Personal Access Token for Public Exploit & PoC Hunting]
GITHUB_TOKEN=
Diagnóstico e Autoconfiguração de Pré-requisitos
Verifique a integridade do ambiente, pacotes Python, diretórios operacionais, permissões e status das APIs ao vivo:
# Exibir tabela completa de diagnóstico do sistema e APIs
reconx config check
# Diagnosticar e aplicar correções/configurações ausentes automaticamente
reconx config setup
5. ReconExec
A interface de linha de comando é gerenciada via Typer e estilizada com Rich, fornecendo formatação limpa,
indicadores de progresso assíncronos e tabelas de risco coloridas.
Usage: reconexec [OPTIONS] COMMAND [ARGS]...
╭─ Global Recon Scans ─────────────────────────────────────────────────────────╮
│ all Execute passive attack surface mapping using ALL modules. │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Targeted Recon Modules ─────────────────────────────────────────────────────╮
│ shodan Execute passive scan using the 'Shodan' module. │
│ censys Execute passive scan using the 'Censys' module. │
│ crtsh Execute passive scan using the 'crt.sh' module. │
│ whois Execute passive scan using the 'Reverse WHOIS' module. │
│ sectrails Execute passive scan using the 'SecurityTrails' module. │
│ axfr Execute passive scan using the 'Zone Transfer' module. │
│ otx Execute passive scan using the 'AlienVault OTX' module. │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Utility & Intelligence ─────────────────────────────────────────────────────╮
│ intel Execute advanced threat intelligence lookups. │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ System & Configuration ─────────────────────────────────────────────────────╮
│ version Show ReconExec version and maintainer information. │
│ config Manage configuration, setup, and system updates │
╰──────────────────────────────────────────────────────────────────────────────╯
O reconx lida nativamente com rate-limits de APIs (Anti-HTTP 429) e garante a criação de nós no grafo para alvos sem histórico prévio, deixando-os prontos para varreduras ativas na WebUI.
Modos de Varredura por Alvo
| Tipo de Alvo | Exemplo de Comando | Ações Executadas no Pipeline |
|---|---|---|
| Domínio Raiz | reconx all spacex.com |
Enumeração crt.sh + Reverse WHOIS + Resolução DNS + Shodan/Censys + CVE Scoring |
| Endereço IP Único | reconx all 142.250.191.68 |
Perfil Shodan + Censys v3 Dossier + Portas + Serviços + Banner Analysis + CVEs |
| Sub-rede CIDR | reconx all 142.250.191.0/24 |
Varredura de bloco de rede + Enumeração de hosts ativos + Correlação de portas |
| CVE Identifier | reconhound intel CVE-2021-44228 |
NVD CVSS v3.1 + CWE + Probabilidade FIRST EPSS + Flag CISA KEV + ExploitDB + PoCs |
| Shodan Dork / Query | reconx all "org:'Acme Corp' port:443" |
Busca de infraestrutura customizada, extração de certificados e correlação de vulnerabilidades |
| Lista de Alvos em Arquivo | reconx all targets.txt |
Carregamento em lote + Validação centralizada de APIs + Ancoragem de nós de IP/Domínio para Recon Ativo |
Flags Principais & Módulos
| Flag | Valores Permitidos | Descrição Técnica |
|---|---|---|
-t, --target |
STRING |
Alvo da análise (IP, Domínio, CIDR, CVE, Shodan Dork ou arquivo targets.txt). |
-m, --modules |
all, shodan, censys, crtsh, reverse_whois, nvd, exploitdb |
Lista separada por vírgulas dos coletores específicos a habilitar. |
--create-db |
NOME_DO_BANCO |
Salva os dados automaticamente em ./data/dbs/{nome}.sqlite para o WebGUI. |
-o, --format |
table, json, markdown, html, csv, all |
Formato de saída do relatório de segurança. |
-f, --output-file |
PATH |
Caminho customizado de destino do arquivo exportado. |
-d, --output-dir |
DIRECTORY |
Diretório de destino para exportação de múltiplos formatos (quando -o all). |
Persistência Centralizada SQLite (EASM)
Para persistir os dados para consulta histórica ou carregar no ReconHound Web Dashboard, utilize a flag --create-db:
# Mapeia empresa e salva em ./data/dbs/alvo_empresa.sqlite
reconx all empresa.com.br --create-db alvo_empresa
# Mapeia sub-rede e salva em ./data/dbs/datacenter_sp.sqlite
reconx all 198.51.100.0/24 --create-db datacenter_sp
Exportação de Relatórios Oficiais
# 1. Relatório Executivo em Markdown
reconx all empresa.com.br -o markdown -f relatorio_executivo.md
# 2. Relatório HTML Standalone (Formatado e Pronto para Print/PDF)
reconx all empresa.com.br -o html -f relatorio_easm.html
# 3. Dados Estruturados em JSON para SIEM/SOAR/Data Lake
reconx all empresa.com.br -o json -f surface_data.json
# 4. Tabela Estruturada em CSV para Análise em Planilhas
reconx all empresa.com.br -o csv -f vulnerabilidades.csv
# 5. Exportação simultânea de todos os formatos para pasta
reconx all empresa.com.br -o all -d ./exports/empresa/
6. ReconHound Dashboard
O ReconHound é a interface gráfica web interativa inspirada na experiência analítica de grafos do SpecterOps BloodHound. Ele opera através de um servidor FastAPI de alta performance que lê os bancos de dados SQLite gerados e renderiza o grafo interativo utilizando Cytoscape.js.
⠀⠀⠀⠀⡀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣷⠀⠀⢰⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣿⣧⠀⣼⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢸⣿⣿⡆⠘⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣸⣿⣿⣿⡄⠙⠛⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣿⣿⣿⣿⣷⡀⣿⣿⣿⣿⠿⠿⢿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ RECONHOUND DAEMON
⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣄⡀⢻⣿⣿⣿⠟⢿⣿⠛⣦⡀⢻⣿⡇⠀ ==================================
⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠛⣶⡞⠻⣶⠛⢻⡄⠹⠀⠀ [✓] Attack Surface Dashboard UI
⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣷⣾⣿⣶⣿⣿⠆⠀⠀ [✓] Threat Tracking Engine
⠀⢠⣿⣿⣿⡄⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣏⣉⣉⣉⣉⣉⣉⣉⣉⣉⡉⠀⠀⠀ Usage: reconexec hound start
⠀⢸⣿⣿⣿⣷⡀⠻⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠃⠀⠀⠀
⠀⣿⣿⣿⣿⣿⣷⣶⣶⣶⣶⣶⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
Autenticação Segura (JWT)
O Dashboard é totalmente protegido por JWT (JSON Web Tokens) e cookies seguros HttpOnly. O comando reconx config setup deriva de forma segura uma chave de criptografia única (JWT_SECRET_KEY) a partir da senha do seu Admin e a salva no seu arquivo local .env. As sessões expiram automaticamente após 30 minutos, e você pode destruí-las explicitamente usando o botão Terminate Session localizado no rodapé do menu lateral.
Configuração de Rede (.webserver.json)
O arquivo de estado local ~/.detecti/run/.webserver.json armazena as configurações do daemon. Se você precisar alterar os endereços de socket (como host e port) para liberar acesso externo ou alterar a porta, basta editar este arquivo com o servidor desligado. Ao usar hound start novamente, o servidor assumirá automaticamente as novas configurações de rede definidas no JSON.
Gerenciamento do Servidor ReconHound (Daemon)
O gerenciamento do ciclo de vida do servidor web é realizado através do subcomando hound:
| Comando | Função Técnica |
|---|---|
reconx hound start |
Inicia o servidor FastAPI em segundo plano na porta 8000 (http://127.0.0.1:8000). |
reconx hound list-dbs |
Lista todos os bancos de dados de superfícies de ataque salvos em ./data/dbs/. |
reconx hound status |
Verifica o status do processo daemon (PID, porta, consumo e tempo de atividade). |
reconx hound stop |
Finaliza com segurança o processo daemon em execução. |
Ao executar varreduras primárias pela Engine (reconx all ...), o motor detecta automaticamente se o ReconHound já está ativo. Caso o servidor já esteja rodando, ele preserva a instância em execução sem reiniciá-la, evitando interrupções em varreduras ativas (Masscan/Nuclei) ou desconexões no navegador. A nova base SQLite é salva em data/dbs/ e fica imediatamente disponível para seleção no menu superior do dashboard.
UX Graph-First e Gestão Flutuante de Leads
O ReconHound adota um modelo de interação Graph-First. Em vez de depender de barras laterais poluídas, você gerencia sua superfície de ataque passiva diretamente no próprio canvas.
- Persistência do Target Root: O nó central (
target_root) atua como a âncora do seu escopo. Mesmo se você desmarcar todos os leads ou clicar em "Collapse All", este nó nunca desaparecerá do canvas. - Auto-Centralização Cinemática: Caso o
target_rootse torne o único nó visível na tela, a câmera fará um deslizamento e zoom automático focado nele. - Modal Flutuante de Leads (Context Menu): Clique com o botão direito no nó
target_roote selecione "Explore Leads..." para abrir um modal interativo e translúcido bem no centro do grafo, que conta com uma barra de pesquisa em tempo real. A partir dele, você seleciona, pesquisa e filtra quais IPs, Domínios e Subdomínios passivos deseja projetar visualmente. (Pode ser fechado rapidamente clicando em qualquer lugar vazio do canvas ou apertandoESC). - Auto-Select Inteligente & Hidratação: Se a varredura inicial encontrar um escopo pequeno (50 leads ou menos), a ferramenta fará o auto-selecionamento preventivo. Além disso, alvos informados explicitamente via Engine são sanitizados em FQDNs puros (removendo http/https) para prevenir duplicações, sendo persistentemente auto-renderizados através das sessões do dashboard.
- Busca via HUD: A barra de pesquisa de nós agora é um HUD fixado no canto superior esquerdo do próprio canvas, ampliando sua área de visão tática.
- Canvas Clean (BloodHound-style): O grafo inicia totalmente limpo, exibindo apenas o nó raiz. Expandir ativos não força atualizações de alvos no banco de dados, promovendo uma exploração passiva e fluída.
- Comando CLI
reconx hound restart: Permite o reinício instantâneo e contínuo do backend WebGUI sem precisar derrubar dependências durante o desenvolvimento.
Semântica de Cores e Formas do Grafo
Cada entidade do ecossistema EASM possui uma representação visual clara para facilitar a rápida identificação durante triagens de Red/Blue Team:
| Tipo de Nó | Forma no Grafo | Cor / Identificador | Significado Operacional |
|---|---|---|---|
| Target Root | Void (#111116) • Borda Roxa | Raiz do grafo e âncora da query. | |
| Domínio | Azul Profundo (#00b4d8) | Domínio principal raiz/organizacional descoberto no reconhecimento. | |
| Subdomínio | Turquesa (#4ecdc4) | Host/FQDN filho derivado de um domínio alvo. | |
| Endereço IP | Ametista (#9b59b6) | Endereço IP passivo ou resolvido ativamente. | |
| Alvo Marcado (Target) | Borda Ciano Neon (#00f0ff) | IP ou FQDN explicitamente marcado como alvo de interesse. | |
| WAF Bypass (Origin) | Laranja Pontilhada (#f97316) | IP de origem descoberto ignorando proteções WAF/CDN. | |
| Serviço (Passivo) | Slate Escuro (#1e293b) | Porta descoberta via OSINT aguardando validação ativa. | |
| Serviço (Ativo) | Verde Esmeralda (#27ae60) | Serviço ativamente confirmado como aberto pelo Masscan. | |
| Vulnerabilidade (CVE) | Gradiente de Risco | Avaliado via score CVSS (Vermelho Crítico ao Azul Info). | |
| CISA KEV (Exploited) | Vermelho Sangue (#ff1744) • Glow | Vulnerabilidade KEV sendo explorada ativamente in-the-wild. |
Semântica de Arestas e Conexões Relacionais
As arestas direcionadas representam o fluxo de resolução e exposição de ativos no grafo:
| Rótulo da Aresta | Estilo Visual | Cor / Espessura | Origem ➔ Destino | Significado Operacional |
|---|---|---|---|---|
CONTAINS_TARGET |
Roxo (#8c52ff) | Root ➔ Domínios / IPs | Vínculo hierárquico principal do escopo. | |
RESOLVES_TO |
Teal (#4ecdc4) | Domínio ➔ IP | Resolução DNS ativa/atual. | |
IPS_HISTORY |
Laranja (#f59e0b) | Domínio ➔ IP | IP Histórico descoberto passivamente. | |
EXPOSES (Passivo) |
Verde (#2ecc71) | IP ➔ Porta | Descoberto via OSINT (aguardando teste). | |
EXPOSES (Ativo) |
Verde (#2ecc71) | IP ➔ Porta | Ativamente aberto / validado no Masscan. | |
HAS_VULN |
Gradiente (Ex: Vermelho #ef4444) | Serviço ➔ Vulnerabilidade | Aresta condicional pontilhada que herda dinamicamente a cor baseada no CVSS Score. |
Física de Grafo (Engine V3)
- Layout dinâmico baseado em Square Root bounding box, organizando nós com alta densidade (centenas de portas) em grids proporcionais sem quebrar a tela horizontalmente.
- Eliminação total de clusters artificiais: a renderização reflete 1:1 o SQLite.
- Limites de segurança (window.confirm) aplicados automaticamente antes da renderização de mais de 500 nós.
Target Management, Varredura Ativa (Masscan) & Nuclei (IPs e FQDNs)
O ReconHound integra módulos nativos de Target Management, Varredura Ativa de Portas (Masscan) e Varredura Ativa de Vulnerabilidades (Nuclei) com suporte híbrido a Endereços IP e FQDNs (Domínios / Subdomínios):
- Alvos FQDN & Bypass de Reverse Proxy / CDNs / Virtual Hosts: Em arquiteturas modernas com WAFs, Cloudflare, AWS CloudFront, Akamai ou Nginx/Apache Virtual Hosts, a varredura direta no IP pode falhar devido à exigência do Server Name Indication (SNI) no handshake TLS e do cabeçalho HTTP
Host:da aplicação. O ReconHound permite marcar Domínios e Subdomínios diretamente como alvos (Set as Target (FQDN)). Ao disparar o Nuclei, a engine ataca diretamente os endpointshttps://<fqdn>ehttp://<fqdn>preservando o contexto de aplicação e roteamento web. Quando disparado com o Masscan, a engine resolve o IP do FQDN via DNS para a varredura SYN de portas. - Resolução Dinâmica FQDN ➔ IP & Vinculação de Arestas (
RESOLVES_TO): Ao escanear um FQDN (Domínio ou Subdomínio), a engine executa resolução DNS autoritativa em tempo real:- IP Novo / Não Listado: Cria dinamicamente um novo nó de IP no banco de dados e no grafo, estabelecendo a aresta
RESOLVES_TOdiretamente a partir do FQDN. - IP Já Existente no Grafo: Caso o FQDN resolva para um IP já catalogado (mesmo que estivesse desconectado ou herdado de outro bloco), a vinculação é automaticamente estabelecida com a adição da aresta
RESOLVES_TOdireta entre o FQDN e o IP. - Reconciliação de Portas: Portas passivas preexistentes naquele IP são promovidas para
Confirmed Active(adicionandoMasscancomo fonte e atualizando banners/versões), enquanto novas portas descobertas ativamente são criadas e atreladas ao nó do IP com deduplicação atômica por(IP, Porta, Protocolo).
- IP Novo / Não Listado: Cria dinamicamente um novo nó de IP no banco de dados e no grafo, estabelecendo a aresta
- Marcação de Alvos via Menu de Contexto & Seleção em Massa: Clique com o botão direito em qualquer nó de IP, Domínio ou Subdomínio e selecione
Set as Target(ouRemove Target) para adicioná-lo à fila de varredura. Em nós raiz como Target Root ou Domínios / Subdomínios (FQDN Targets), é possível marcar ou desmarcar todos os IPs resolvidos associados de uma só vez (Set all N resolved IPs as Targets/Remove all N IPs from Targets). - Destaque Visual no Grafo (.is-target): Qualquer nó marcado como alvo (seja IP, Domínio ou Subdomínio) recebe a sinalização por contorno sólido Ciano Neon (
#00f0ff) de 3px no Cytoscape.js. - Asset Inspector Focado & Limpo: O Asset Inspector lateral é 100% dedicado à inteligência técnica profunda, detalhes do host, geolocalização e métricas de risco, mantendo a interface limpa e deixando as ações operacionais no menu de contexto.
- Regra Obrigatória "Confirmed Active" para o Nuclei em IPs: Por regra de segurança e eficiência, o Nuclei em IPs brutos só executa varreduras contra portas e serviços confirmados como "Confirmed Active". Caso um IP alvo possua portas mapeadas passivamente mas ainda não verificadas, o Nuclei solicita ao Masscan a verificação estrita dessas portas passivas. Se confirmadas ativas, o Nuclei prossegue com o scan; caso nenhuma porta responda ou o IP não possua portas mapeadas no banco, a varredura do Nuclei é ignorada (skip) com o motivo registrado em log detalhado no console.
- Atualização Inteligente de Templates do Nuclei: Antes do disparo de qualquer varredura de vulnerabilidades, a engine do ReconHound executa a verificação e atualização dos community templates oficiais do Nuclei (
nuclei -update-templates). O processo conta com Mutex Lock assíncrono e TTL de Cooldown (1 hora), garantindo que execuções em massa para múltiplos IPs em lote não sofram concorrência de arquivos ou percam tempo repetindo downloads desnecessários. - Watchdog Dinâmico de Streaming & Persistência Parcial do Nuclei: A engine do Nuclei emprega um Idle Watchdog com leitura assíncrona contínua de stdout/stderr (com detecção de heartbeat) e teto máximo de execução (
max_timeout). Scans ativos e produtivos nunca são encerrados prematuramente, enquanto targets sem resposta são abortados rapidamente após inatividade. Caso ocorra um timeout, cancelamento manual pelo usuário ou erro no processo, o motor realiza um encerramento gracioso (SIGTERMseguido deSIGKILLde segurança) e garante a persistência de 100% das vulnerabilidades e findings já acumulados no banco SQLite e no grafo Cytoscape.js. - Otimização Inteligente de Carga (Smart Port Exclusion): Em qualquer perfil de varredura (Top 100, Web Ports, Custom ou All Ports), todas as portas que já possuem status
Confirmed Activesão automaticamente excluídas da lista enviada ao Masscan. Isso reduz drasticamente a carga na infraestrutura de destino, evita pacotes redundantes e ignora varreduras em portas 100% validadas. - Pipeline em 2 Fases para All Ports (0-65535): Ao executar varreduras completas em 65.535 portas, o motor executa uma estratégia em dois estágios:
- Fase 1 (Prioridade Imediata): Varredura ultra-rápida direcionada apenas às portas passivas não verificadas do alvo (ex: portas descobertas via Shodan/Censys). O feedback visual e a persistência como
Confirmed Activeocorrem nos primeiros 1-2 segundos. - Fase 2 (Sweep Residual das 65.535 portas): Varredura em lote das portas restantes excluindo as já validadas e testadas, garantindo que mesmo diante de timeouts ou cancelamentos parciais os serviços principais já estejam persistidos.
- Fase 1 (Prioridade Imediata): Varredura ultra-rápida direcionada apenas às portas passivas não verificadas do alvo (ex: portas descobertas via Shodan/Censys). O feedback visual e a persistência como
- Presets de Portas & Rate Control: Perfis rápidos pré-configurados (
Top 100 Ports,Web Ports: 80,443,8080,8443...,All Ports: 0-65535eCustom), slider interativo de taxa (100 a 10.000 pps), e flags para-Pn(disable ping) e--banners. - Diferenciação Visual, Rastreabilidade de Source & Persistência: Portas validadas ativamente pelo Masscan são renderizadas em Verde Esmeralda sólido (
#27ae60com borda#2ecc71) com arestas sólidas verdes (#2ecc71), diferenciando-se de serviços passivos pendentes de validação (Dark Slate com borda tracejada âmbar#f59e0b). Vulnerabilidades descobertas pelo Nuclei recebem badge e identificador explícito de Source: Nuclei em todos os grafos, inspetor e acordeões de Risk Metrics. - Timeout Dinâmico Adaptativo & Encerramento Gracioso (SIGINT): O tempo limite de execução do Masscan é calculado dinamicamente com base na quantidade real de portas a serem testadas, taxa de envio (
rateem pps) e número total de alvos no lote ($N$). Essa formulação adaptativa elimina interrupções prematuras em varreduras de 65.535 portas a taxas conservadoras (ex: 100 ou 250 pps). Caso o tempo limite seja atingido ou a varredura seja cancelada pelo usuário, o motor emite um sinalSIGINTprévio, permitindo que o Masscan descarregue os buffers de sockets e salve o arquivo JSON com 100% dos banners e portas descobertos preservados no banco de dados. - Persistência de Logs de Scan em SQLite & Auto-Reconexão no Frontend: Todos os eventos operacionais de varredura ativa (Masscan e Nuclei) são persistidos atômica e relationalmente na tabela
scan_logsda base SQLite ativa. Caso o navegador seja recarregado, sofra crash ou o usuário abra a plataforma posteriormente, o console em tempo real (#scan-live-console) restaura automaticamente todo o histórico prévio com seus timestamps e cores originais. Caso ainda existam varreduras ativas em execução em background no servidor, o frontend reconecta o streaming (polling) instantaneamente, sincronizando progresso sem interrupções. - Reset de Validação Ativa (Remove Verified Active): Clique com botão direito diretamente em um nó de serviço ativo para remover seu status
Confirmed Active, ou em nós raiz/pais (IP, Domínio) para remover o status ativo de todos os serviços associados em lote. O serviço retorna ao estado passivo no banco de dados e no grafo sem perder banners ou portas cadastradas, permitindo revalidações sob demanda com Masscan ou Nuclei.
Navegação Interativa, Controles e Menu de Contexto
- Clique com Botão Esquerdo (Arrastar): Pan e navegação contínua pelo canvas do grafo.
- Clique com Botão Esquerdo (Nó): Seleção unitária do ativo e abertura do Asset Inspector Lateral.
- Ctrl + Clique Esquerdo (ou Cmd no macOS): Multi-seleção sequencial aditiva para selecionar múltiplos nós sem perder a seleção prévia.
- Clique com Botão Direito (Nó): Abre o Menu de Contexto Customizado com ações rápidas:
- Set as Target / Remove Target: Adiciona ou remove o endereço IP ou FQDN da lista de alvos de varredura ativa.
- Set all N resolved IPs as Targets / Remove all N IPs: Gerenciamento em massa de alvos para nós de Target Root e FQDN Targets (Domínio / Subdomínio).
- Remove Verified Active: Reseta a validação ativa de serviços individuais ou em lote para revalidação sob demanda.
- Collapse / Uncollapse Services: Agrupa ou descolapsa serviços do IP.
- Collapse / Uncollapse Vulnerabilities: Agrupa ou descolapsa vulnerabilidades diretas de IP ou de serviços.
- Inspect Details: Abre a gaveta de detalhes técnicos do ativo.
- Focus Node: Centraliza o zoom diretamente no nó selecionado.
- Copy Domain / Subdomain / IP / CVE: Copia o identificador textual do ativo para a área de transferência.
- Clique com Botão Direito (Arrastar no Canvas): Seleção em área retangular (Box Area Selection) para mover blocos inteiros de nós.
- Algoritmos de Layout:
-
Hierárquico DAG (Padrão): Topologia estruturada em camadas verticais (Target Root ➔ Host IPs / FQDN Targets ➔ Serviços ➔ Vulnerabilidades / CVEs) com matriz balanceada para visualização de alta densidade sem sobreposições. -
Force-Directed: Simulação física baseada em atração e repulsão com animação suave e estabilização de repulsão. -
ConcêntricoeGrade: Hierarquia orbital concêntrica e matriz uniforme de nós.
-
- Isolamento de Caminho de Ataque Estrito (Strict Attack Path):
Ao aplicar qualquer filtro de vulnerabilidade ou risco (ex: Critical, CISA KEV, Matriz 3D), o grafo isola exclusivamente a cadeia direta de ataque (
Target Root ──► Host IP / FQDN Target ──► Porta ──► CVE). Subdomínios irmãos inofensivos e IPs limpos são podados automaticamente, garantindo foco cirúrgico sem ruído de rede. - Filtros Rápidos de Risco & Camada de Superfície:
- Apenas CISA KEV: Exibe exclusivamente ativos com vulnerabilidades exploradas ativamente por agentes de ameaça/ransomware.
- Alto EPSS (> 50%): Destaca falhas com probabilidade matemática iminente de exploração.
- Vulnerabilidades Críticas (CVSS 9.0+): Isola nós com severidade máxima.
- Ocultar Baixas & Informativas: Limpa o ruído do grafo removendo findings informativos.
- Apenas Findings do Scan Nuclei: Filtra vulnerabilidades descobertas via varredura ativa Nuclei.
- Com Exploit/PoC Público: Filtra vulnerabilidades que possuem scripts no ExploitDB ou repositórios no GitHub.
- Ramos de Serviços Expostos: Foca nos caminhos de rede com serviços mapeados.
- Apenas Serviços Verificados Ativos: Filtra exclusivamente serviços ativos confirmados (Masscan/Active Scan).
- Apenas Serviços Vulneráveis: Isola serviços que possuem ao menos uma vulnerabilidade associada.
- Busca Textual com Herança Descendente: Localiza IPs, domínios ou portas preservando seus ancestrais até o alvo e seus serviços/vulnerabilidades filhos.
- Smart Double-Click Collapse: Ao usar clique-duplo para colapsar, a engine localiza todos os caminhos pais do nó filho compartilhado e limpa a visualização perfeitamente.
Asset Inspector Lateral & Navegação Bidirecional
Ao clicar com o botão esquerdo em qualquer nó do grafo, a gaveta do Asset Inspector se abre exibindo metadados técnicos aprofundados e controles de foco cruzado:
- Navegação Bidirecional Domínio ⇄ IP:
- Ao inspecionar um Domínio ou Subdomínio, o Inspector exibe a propriedade Resolved IP com botão
[ ⌖ Focus ]para centralizar a câmera no IP no grafo com 1 clique. - Ao inspecionar um Host IP, o Inspector exibe todos os Resolving Domains / Hosts que apontam para ele, com botões de foco dedicados.
- Ao inspecionar um Domínio ou Subdomínio, o Inspector exibe a propriedade Resolved IP com botão
- Geolocalização & Localização de IPs: Cidade, Estado/Região, País, ASN e Organização detectados via Shodan/Censys e Fallback BGP/RDAP, acompanhados de coordenadas precisas (Latitude/Longitude) e botão interativo direto
[ 📍 Ver no Mapa ]com link para visualização no Google Maps. - Métricas de Risco & Vulnerabilidades: Vetores CVSS v3.1, fraqueza CWE associada, porcentagem e percentil FIRST EPSS, presença no catálogo CISA KEV e links diretos para exploits verificados.
- Design Responsivo Completo: Totalmente adaptado para visualização em desktops, tablets (gaveta retrátil) e smartphones (drawer $100\text{vw}$ com suporte a toque).
- Inteligência de Ameaças: Nós de vulnerabilidade exibem uma aba dedicada para Threat Actors & Malware (integrado via AlienVault OTX), extraídos automaticamente no engine.
- Resiliência de API (CTI): O Engine ignora verificações rígidas de SNI para consultar APIs de threat intelligence sob firewalls (ex: SecurityTrails).
Inventário Global & Exclusão Segura (Cascade Deletion)
Localizado no menu lateral esquerdo (abaixo dos bancos de dados), o botão Inventory abre uma planilha (gaveta inferior ajustável) contendo o inventário completo da base de dados selecionada:
- Visão Global (Ignora Filtros de Tela): Lista todos os Domínios, Subdomínios e IPs carregados no SQLite, mostrando contagens de Serviços, Portas e Vulnerabilidades (CVEs), independentemente dos filtros e de quem são os Alvos do grafo no momento.
- Target Toggle (1-Click): Na coluna Actions, gerencie os alvos clicando no ícone ( alvo cinza para adicionar, ou para remover).
- Exclusão Segura com Impact Analysis: Clicando na lixeira vermelha () na coluna Actions, o sistema calcula previamente no backend e exibe em um Modal todas as dependências que serão deletadas em cascata (Ex: "Apagar este IP destruirá 5 Serviços, 15 CVEs e 2 vínculos DNS"). Caso confirmado, a deleção limpa o SQLite preservando a integridade referencial.
- Busca Inteligente em Tempo Real: Filtragem instantânea via cliente para ativos, tipos e portas diretamente do cabeçalho da gaveta.
7. Threat Intelligence & Matriz Tridimensional de Risco EASM
O modelo tradicional de priorização baseado puramente em notas CVSS estáticas está obsoleto. Em um cenário real de Gestão de Superfície de Ataque Externa (EASM), uma vulnerabilidade CVSS 9.8 puramente teórica em um host inativo ou sem exploit conhecido representa menos risco operacional imediato do que uma falha CVSS 7.5 em porta exposta ativamente explorada por operadores de ransomware.
Para eliminar o ruído de milhares de alertas irrelevantes e orientar o time de segurança diretamente nas ameaças iminentes, o ReconHound e o ReconHoundHound implementam a Matriz Tridimensional de Risco EASM.
As 3 Dimensões Fundamentais
Dimensão 1: Validação Ativa (O Ativo)
Mede: A exposição real e confirmada do serviço na Internet.
O ativo precisa ter porta aberta e serviço ativo confirmado via Masscan ou validação HTTP/S. Falhas em serviços desligados ou sem rastreabilidade de porta ativa são desqualificadas.
Dimensão 2: Gravidade Técnica (O Impacto)
Mede: A severidade intrínseca do estrago potencial caso a falha seja explorada.
Filtra o ruído de notas baixas (Low/Info), exigindo severidade CRITICAL, HIGH ou MEDIUM com pontuação CVSS v3.1 significativa (≥ 5.0 / 6.5).
Dimensão 3: Ameaça Ativa (O Perigo Real)
Mede: A evidência matemática e histórica de armamento e exploração no mundo real.
Funciona por disjunção lógica (OU): basta acender pelo menos 1 dos 3 sinais de fumaça globais (CISA KEV, Alto EPSS ≥ 20% ou PoCs públicas funcionais).
Os 3 Pilares da Dimensão 3 (Ameaça no Mundo Real)
A Dimensão 3 não exige 100% de coincidência de todas as fontes para evitar pontos cegos perigosos. Ela é ativada se a vulnerabilidade atender a qualquer um dos seguintes pilares:
| Pilar de Inteligência | Origem dos Dados | Critério de Disparo (Gatilho) | Significado Operacional |
|---|---|---|---|
| CISA KEV | CISA Catalog (US Homeland Security) | is_cisa_kev = true |
Arma confirmada em ataques ativos e campanhas reais (Prioridade P1 Máxima). |
| FIRST EPSS | FIRST.org Machine Learning Model | epss_score ≥ 0.20 (20%) |
Alta probabilidade preditiva de sofrer exploração em massa nos próximos 30 dias. |
| PoC Weaponization | ExploitDB & GitHub Repositories | exploit_count ≥ 1 ou has_pocs = true |
Código de ataque funcional disponível publicamente, facilitando invasões automatizadas. |
Uma vulnerabilidade só é exibida na rota prioritária se satisfizer a conjunção estrita das 3 dimensões:
Cenário Comparativo Prático
Imagine duas vulnerabilidades identificadas pelo pipeline no perímetro da organização:
Vulnerabilidade A: CVSS 9.8 (Crítica Teórica)
- Dimensão 1: Serviço HTTP ativo (Porta 8080).
- Dimensão 2: CVSS 9.8 (Crítica).
- Dimensão 3: Não está no CISA KEV, EPSS = 0.05% (quase zero) e sem nenhuma PoC pública.
Abordagem Tradicional: O time gastaria dias correndo para corrigir essa falha primeiro apenas pela nota nominal.
Vulnerabilidade B: CVSS 7.5 (Ameaça Real Ativa)
- Dimensão 1: Serviço SSL ativo (Porta 443).
- Dimensão 2: CVSS 7.5 (Alta).
- Dimensão 3: Listada no CISA KEV e com arma pública no ExploitDB.
A Decisão do ReconHound: O ReconHoundHound prioriza a Vulnerabilidade B como Prioridade Máxima (P1), pois ela representa perigo iminente de invasão imediata.
No painel lateral do ReconHoundHound, ao ativar o checkbox [✓] 3D Risk Matrix:
- O grafo isola e exibe exclusivamente as rotas completas (Lead → Domínio → IP → Serviço Ativo → Vulnerabilidade) que satisfazem as 3 dimensões.
- Grupos colapsados (clusters) com 0 vulnerabilidades 3D são automaticamente ocultados, e os contadores exibem com precisão apenas as falhas qualificadas.
- No painel lateral (Inspector), a listagem de CVEs, pontuações e exploits exibe estritamente os achados de risco real.