ReconForge é um framework de pentesting automatizado desenvolvido para operações Red Team. Ele orquestra de forma inteligente plugins nativos e ferramentas externas, combinando varredura de rede, enumeração, detecção de vulnerabilidades e análise de exploits em um único workflow.
- Modular: Sistema de plugins extensível
- Flexível: Funciona com ou sem IA
- Completo: Do reconhecimento à exploração
- Interativo: Menu intuitivo para seleção de plugins
- Automatizado: Execute scans completos com um comando
| Categoria | Descrição |
|---|---|
| Reconnaissance | DNS, subdomínios, tecnologias web, mapeamento de rede |
| Network Attack Surface | Port scanning, Nmap NSE, protocolos, SSL/TLS |
| Web Attack Vectors | Crawling, directory brute-force (estilo GoBuster/FFUF), vulnerabilidades web |
| Vulnerability Assessment | Nuclei templates, análise de misconfigurations |
| Exploit Intelligence | Busca automática de exploits (Exploit-DB/CVE) |
| Firewall/WAF Detection | Identificação de proteções ativas |
Plugins Nativos (24+):
- Port Scanner, Network Mapper, Protocol Analyzer
- DNS Resolver, Subdomain Enumerator
- Directory Scanner (estilo GoBuster/FFUF)
- Web Crawler, Technology Detector, Header Analyzer
- SSL Analyzer, Firewall Detector
- Exploit Searcher, Exploit Suggester
- Nuclei Scanner, Misconfiguration Analyzer
- Web Scanners Avançados: XSS, LFI, SSRF, SSTI, IDOR, Open Redirect, Header Injection
- SSH Policy Check, Port Exposure Audit
Integrações Externas:
nmap- Scanner de rede avançadonuclei- Scanner de vulnerabilidadessubfinder- Enumeração de subdomínioswhatweb- Detecção de tecnologias
# Debian/Ubuntu/Kali - Instalar dependências
./scripts/system_update.shpip install -r requirements.txt# Kali Linux já possui a maioria
sudo apt install nmap nuclei subfinder whatweb# Iniciar menu interativo
./run.sh
# Ou diretamente
python scripts/main.pyFluxo:
- Digite o alvo (IP, domínio, URL ou CIDR)
- Selecione os plugins no menu interativo
- Execute e acompanhe os resultados em tempo real
- Visualize o relatório final
# Executar todos os plugins em um alvo
./run.sh example.com
# Executar plugins específicos por número
./run.sh example.com --plugins 1,2,4,5
# Excluir plugins específicos (ex: pular brute-force demorado)
./run.sh example.com --exclude-plugins DirectoryScanner,20
# Listar todos os plugins disponíveis
./run.sh --list-plugins
# Ignorar cache (forçar re-scan)
./run.sh example.com --no-cacheO modo com IA seleciona automaticamente os plugins baseado no objetivo informado.
| Argumento | Descrição |
|---|---|
--ai |
Habilita o modo com IA |
-o, --orientacao |
Define o objetivo/orientação para a IA selecionar plugins |
--model |
Especifica o modelo de IA (padrão: gemini-2.0-flash) |
--config |
Arquivo YAML de configuração customizado |
# Modo IA básico (executa plugins recomendados)
./run.sh example.com --ai
# IA com orientação específica
./run.sh example.com --ai -o "encontrar vulnerabilidades web"
./run.sh example.com --ai -o "scan de portas e serviços"
./run.sh example.com --ai -o "reconhecimento completo"
# Especificar modelo de IA
./run.sh example.com --ai -o "análise ssl" --model gemini-2.0-flash
# Usar configuração customizada
./run.sh example.com --ai --config minha_config.yamlA IA interpreta estas palavras para selecionar plugins:
| Palavra-chave | Plugins Selecionados |
|---|---|
web, diretório, crawl |
DirectoryScanner, WebCrawler, WebVuln |
vuln, vulnerabilidade, cve |
Nuclei, WebVuln, Exploits |
rede, porta, scan, nmap |
PortScanner, Nmap, NetworkMapper |
ssl, https, certificado |
SSLAnalyzer |
dns, subdomínio |
DNSResolver, SubdomainEnumerator |
firewall, waf |
FirewallDetector |
completo, tudo, full |
Todos os plugins |
Edite config/default.yaml:
ai:
gemini:
api_key: SUA_API_KEY_GEMINI
enabled: true
model: gemini-2.0-flash
temperature: 0.3Você pode rotear requests via Tor (proxy SOCKS5) quando estiver usando plugins com bruteforce/fuzzing (ex: DirectoryScannerPlugin) para reduzir risco de bloqueio do seu IP.
Config global em config/default.yaml:
network:
tor:
enabled: false
proxy_url: socks5h://127.0.0.1:9050Ou habilitar por-plugin (recomendado para aplicar só onde faz sentido):
plugins:
config:
DirectoryScannerPlugin:
use_tor: trueNotas:
- O Tor precisa estar rodando localmente (porta SOCKS padrão
9050). - Para SOCKS funcionar com
requests, a dependênciapysocksprecisa estar instalada (já incluída emrequirements.txt). - Você pode manter alguns plugins fora do Tor mesmo com
network.tor.enabled: truedefinindouse_tor: falseno plugin (ex:ExploitSearcherPlugin,ReconnaissancePlugin). - Plugins baseados em ferramentas externas (ex:
nuclei,whatweb,subfinder) tentam usar proxy via variáveis de ambiente (ALL_PROXY/HTTP(S)_PROXY) quandouse_torestiver habilitado, mas isso depende do suporte da ferramenta.
Ativar o serviço Tor (Debian/Kali):
sudo apt update
sudo apt install -y tor
# subir e iniciar no boot
sudo systemctl enable --now tor
# verificar se o SOCKS está ouvindo (padrão 9050)
ss -lntp | rg ':9050\\b' || netstat -lntp | rg ':9050\\b'Nota (systemd): no Debian/Kali, o processo que fica rodando normalmente aparece como tor@default.service.
Você não precisa (e geralmente não consegue) dar enable diretamente nele; habilitar tor.service puxa o tor@default.service no boot.
Se a porta 9050 não estiver aberta, confira /etc/tor/torrc e garanta:
SocksPort 9050
Opcional (Tor): tentar trocar circuito aproximadamente a cada 1 minuto.
Isso pode ajudar em alguns cenários, mas não garante IP novo a cada request e pode degradar performance/estabilidade.
Edite /etc/tor/torrc:
MaxCircuitDirtiness 60
E reinicie o serviço:
sudo systemctl restart torAlguns plugins usam ferramentas externas (se instaladas) para aumentar a cobertura sem brute force pesado:
KatanaCrawlerPlugin(katana): crawler rapido para coletar endpointsGauCollectorPlugin(gau): coleta URLs historicas (Wayback/CommonCrawl)
Atalho recomendado: rode scripts/system_update.sh (agora ele instala katana e gau automaticamente, além das dependências de sistema).
Instalacao (via Go):
# katana
go install -v github.com/projectdiscovery/katana/cmd/katana@latest
# gau
go install -v github.com/lc/gau/v2/cmd/gau@latest
# garanta que o binario esta no PATH (geralmente ~/go/bin)
export PATH=\"$HOME/go/bin:$PATH\"Nota sobre httpx:
- No Kali/Debian pode existir um binario
httpxque e o CLI do Python HTTPX (cliente HTTP), nao o toolkit do ProjectDiscovery. - Se voce instalar o
httpxdo ProjectDiscovery via Go, garanta que ele fique antes noPATH(ex:~/go/binantes de/usr/bin), senao vai chamar o binario errado.
| Comando | Descrição |
|---|---|
1-N |
Selecionar plugin por número |
nome |
Selecionar plugin por nome (busca parcial) |
r |
Ver resultados detalhados |
d |
Ver descobertas atuais |
s |
Ver serviços encontrados |
v |
Ver vulnerabilidades |
q |
Encerrar varredura |
Os relatórios são salvos em dados/scan_YYYYMMDD_HHMMSS.json contendo:
- Metadados: Alvo, duração, plugins executados
- Descobertas: Hosts, portas, serviços, tecnologias
- Vulnerabilidades: CVEs, severidade, descrições
- Erros: Falhas de execução
{
"metadata": {
"target": "example.com",
"duration_seconds": 45.2,
"plugins_executed": ["PortScannerPlugin", "DirectoryScannerPlugin"]
},
"discoveries": {
"hosts": ["192.168.1.1"],
"open_ports": [22, 80, 443],
"services": [{"port": 80, "service": "HTTP"}]
},
"vulnerabilities": [
{"severity": "HIGH", "title": "SSL Certificate Expired"}
]
}ReconForge/
├── scripts/
│ └── main.py # Ponto de entrada
├── core/
│ ├── minimal_orchestrator.py # Orquestrador principal
│ ├── plugin_manager.py # Gerenciador de plugins
│ ├── plugin_base.py # Classes base
│ └── config.py # Configurações
├── plugins/ # Plugins disponíveis
├── wordlists/ # Wordlists para fuzzing
├── utils/ # Utilitários
└── dados/ # Relatórios gerados
# Listar plugins disponíveis
python scripts/manage_plugins.py list
# Habilitar plugin
python scripts/manage_plugins.py enable NomePlugin
# Desabilitar plugin
python scripts/manage_plugins.py disable NomePluginContribuições são bem-vindas! Para adicionar um novo plugin:
- Crie um arquivo em
plugins/ - Herde de
BasePlugin,WebPluginouNetworkPlugin - Implemente o método
execute() - O plugin será detectado automaticamente
MIT License - Veja o arquivo LICENSE para detalhes.
ReconForge - Framework de Pentest Automatizado
Desenvolvido para operações Red Team