Home / Documentação / ReconHound Community Edition

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.

Python 3.11+ Asyncio / HTTPX SQLite EASM Cytoscape.js MIT License

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.

Filosofia BloodHound-like

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:

Hierarquia de Relacionamentos
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
Modelagem de Grafo & Arquitetura

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.

Diagrama do Fluxo de Expansão Recursiva de Superfície
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
Arquitetura de Persistência: Fusão Não-Destrutiva (Smart Upsert & Source Merging)

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:

Pré-requisitos de Sistema

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.

Bash
# 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:

Bash
# 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
Requisito do Binário Masscan & Permissões:

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:

Bash
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:

Bash
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:

.env
# ==============================================================================
# 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:

Bash
# 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
SECTION 5: Engine OPERATION

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.

reconx --help
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                  │
╰──────────────────────────────────────────────────────────────────────────────╯
Motor Inteligente

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:

Bash
# 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

Exemplos de Exportação
# 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.

reconx hound start
⠀⠀⠀⠀⡀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣷⠀⠀⢰⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣿⣧⠀⣼⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢸⣿⣿⡆⠘⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣸⣿⣿⣿⡄⠙⠛⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣿⣿⣿⣿⣷⡀⣿⣿⣿⣿⠿⠿⢿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀   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.
Ciclo de Vida Não-Destrutivo do Daemon:

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_root se 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_root e 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 apertando ESC).
  • 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.
SIMULAÇÃO INTERATIVA DA TOPOLOGIA (CYTOSCAPE.JS)

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 endpoints https://<fqdn> e http://<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_TO diretamente 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_TO direta entre o FQDN e o IP.
    • Reconciliação de Portas: Portas passivas preexistentes naquele IP são promovidas para Confirmed Active (adicionando Masscan como 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).
  • 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 (ou Remove 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 (SIGTERM seguido de SIGKILL de 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 Active sã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 Active ocorrem 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.
  • Presets de Portas & Rate Control: Perfis rápidos pré-configurados (Top 100 Ports, Web Ports: 80,443,8080,8443..., All Ports: 0-65535 e Custom), 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 (#27ae60 com 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 (rate em 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 sinal SIGINT pré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_logs da 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êntrico e Grade: 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.
  • 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.
Documentação Técnica Oficial Mantida por lucassouza.io.
Código aberto sob licença MIT • GitHub

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.
Equação Lógica da Matriz Tridimensional

Uma vulnerabilidade só é exibida na rota prioritária se satisfizer a conjunção estrita das 3 dimensões:

Visibilidade 3D = Dimensão 1 (Ativo Confirmado)
∧ Dimensão 2 (Impacto Técnico)
∧ [ CISA KEV ∨ EPSS ≥ 20% ∨ PoC Pública ]

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.

Operação do Filtro 3D no ReconHoundHound

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.