RakRecon Logo
RakRecon
Pipeline de reconhecimento automatizado para Bug Bounty e Pentest
Docker-only Bug Bounty
O que é

RakRecon é um orquestrador de reconhecimento automatizado para Bug Bounty e pentest. Você executa um único script Python, responde um wizard interativo, e o RakRecon monta e dispara um container Docker com todo o pipeline de forma isolada — o host fica limpo, nenhuma ferramenta de segurança é instalada fora do container.

Tudo roda exclusivamente dentro do Docker. Sem Docker instalado e rodando, o script encerra com mensagem de erro antes do wizard.
Como funciona

Você executa o script, responde o wizard, e o RakRecon monta e dispara o container Docker automaticamente:

python3 rakrecon.py -d alvo.com
        │
        ├─ verifica se Docker está disponível
        │
        ├─ wizard interativo
        │     [Fase 3] Port Scan? S
        │     [Fase 5] Crawling? S
        │     [Fase 6] Screenshots? N
        │     [Fase 7] Nuclei? S → severidades: critical,high
        │
        ├─ build automático da imagem (se necessário)
        │
        └─ docker run rakrecon:latest ...
                │
                ├─ Fase 1: verifica ferramentas
                ├─ Fase 2: subfinder + dnsx    → subdomínios
                ├─ Fase 3: naabu               → portas abertas
                ├─ Fase 4: httpx               → hosts vivos
                ├─ Fase 5: gau + katana        → URLs
                ├─ Fase 6: gowitness           → screenshots
                ├─ Fase 7: nuclei              → vulnerabilidades
                └─ Fase 8: reporter            → relatório HTML
                        │
                        └─ reports/alvo.com/   (salvo no host via volume)

O container é removido automaticamente ao final. Os relatórios ficam em reports/<domínio>/.

Requisitos
RequisitoDescrição
DockerPara buildar e executar o container com todas as ferramentas
Python 3.11+Para rodar o wizard no host (pip install -r requirements.txt)
Nenhuma ferramenta de segurança (subfinder, nuclei, naabu, etc.) é instalada no host. Tudo roda dentro do container Docker.
Instalação
git clone <repo-url> rakrecon
cd rakrecon
pip install -r requirements.txt
docker build -t rakrecon:latest .
O docker build consulta a GitHub Releases API e instala automaticamente a versão mais recente de cada ferramenta. Os templates do Nuclei também são baixados durante o build.
Uso

Escolha o modo de acordo com o escopo do contrato:

FlagModoDescrição
-d, --domain Domínio Recon completo — enumera subdomínios, portas, URLs e vulnerabilidades
-u, --url URL Escopo específico — uma única aplicação web; subdomínios pulados automaticamente
-o, --output Diretório de saída (padrão: reports/)
-d e -u são mutuamente exclusivos. Se nenhum for passado, o wizard pergunta o tipo de alvo e o valor.

Exemplos

# Sem parâmetros — wizard pergunta tudo
python3 rakrecon.py

# Modo domínio — recon completo
python3 rakrecon.py -d exemplo.com

# Modo URL — escopo específico
python3 rakrecon.py -u https://app.exemplo.com
Fases do Pipeline
Fase 1Deps
Fase 2Subdnssubfinder
Fase 3Portsnaabu
Fase 4Alivehttpx
Fase 5Crawlkatana
Fase 6Shotsgowitness
Fase 7Vulnsnuclei
Fase 8ReportHTML
#FaseMóduloFerramentaOpcional
1Verificação de dependênciasutils/dependency_checker.pyNão
2Enumeração de subdomíniosmodules/subdomains.pysubfinder + dnsxNão (pulada em modo URL)
3Port scanmodules/portscan.pynaabuSim
4Hosts ativosmodules/alive.pyhttpxNão
5Crawling de URLsmodules/crawler.pygau + katanaSim
6Screenshotsmodules/screenshots.pygowitnessSim
7Varredura de vulnmodules/vuln_scan.pynuclei + takeoverSim
8Relatório HTMLmodules/reporter.pyNão
Ferramentas 8 instaladas na imagem
subfinder
projectdiscovery/subfinder
Enumeração passiva de subdomínios via CT logs, DNS passivo, Shodan, VirusTotal. Não faz requisições diretas ao alvo.
dnsx
projectdiscovery/dnsx
Resolução DNS em massa e brute-force de subdomínios — testa ~300 nomes comuns e retorna apenas os que resolvem.
naabu
projectdiscovery/naabu
Port scanner de alta performance. Varre top 1000 portas TCP. Gera lista host:porta para o httpx.
httpx
projectdiscovery/httpx
Verifica em massa quais hosts respondem HTTP/S. Coleta status, título, tecnologias, CDN e servidor web.
gau
lc/gau
Busca URLs históricas em Wayback Machine, Common Crawl, OTX e URLScan. Não toca no alvo.
katana
projectdiscovery/katana
Web crawler ativo com suporte a JavaScript. Navega pelos hosts vivos em profundidade 3 e extrai URLs de links, formulários e JS.
gowitness
sensepost/gowitness
Captura screenshots dos hosts vivos usando Chrome headless. Permite triagem visual de centenas de hosts.
nuclei
projectdiscovery/nuclei
Scanner de vulnerabilidades por templates. Executa milhares de checks (CVEs, misconfigs, takeovers). Templates atualizados no build.
Módulos
DependencyManager utils/dependency_checker.py

Dentro do container, verifica apenas se cada binário está no PATH via shutil.which(). Não tenta baixar nada — as ferramentas já estão na imagem.

SubdomainEnumerator modules/subdomains.py

Combina enumeração passiva via subfinder com DNS brute-force via dnsx (~300 subdomínios embutidos). Resultado deduplicado em _subdomains.txt. Pulada em modo URL.

Arquivos gerados: _subfinder.txt, _dnsx_brute.txt, _subdomains.txt  |  Timeouts: 300s cada

PortScanner modules/portscan.py

Executa naabu nas top 1000 portas com connect scan. Por padrão filtra IPs e escaneia apenas hostnames (proteção contra blacklist de CDNs). Gera _http_targets.txt no formato host:porta para o httpx.

Arquivos gerados: _hostnames_only.txt, _ports.json, _http_targets.txt  |  Timeout: 300s

AliveChecker modules/alive.py

Recebe o merge de subdomínios + http_targets e executa httpx com detecção de status, título, tecnologias, CDN e seguimento de redirecionamentos.

Flags: -json -status-code -title -tech-detect -follow-redirects  |  Timeout: 300s

WebCrawler modules/crawler.py

Combina gau (URLs históricas via Wayback, Common Crawl, OTX) com katana (crawl ativo com JS, profundidade 3). Resultado deduplicado em _crawled_urls.txt.

Timeouts: gau 120s / katana 300s

ScreenshotCapture modules/screenshots.py

Executa gowitness v3 (scan file) com fallback automático para a sintaxe v2. Screenshots salvos em screenshots/ como PNG/JPEG.

Timeout: 600s

VulnScanner modules/vuln_scan.py

Dois modos: varredura geral via nuclei com severidades configuráveis contra URLs vivas e crawleadas; e detecção de subdomain takeover via -tags takeover. Findings exibidos em tempo real com cores por severidade. Timeout via NUCLEI_TIMEOUT (padrão: 1800s).

ReportGenerator modules/reporter.py

Gera relatório HTML autocontido — screenshots e logo embedados em base64, sem dependências externas. Inclui cards de sumário, tabelas de vulnerabilidades, hosts vivos, portas abertas, grid de screenshots e listas de URLs e subdomínios.

Saída: reports/<domain>/<domain>_report.html

Saída e Relatórios

Todos os artefatos são salvos em reports/<domínio>/ (mapeado de /data no container via volume Docker):

reports/
  └── exemplo.com/
      ├── exemplo.com_subfinder.txt
      ├── exemplo.com_dnsx_brute.txt
      ├── exemplo.com_subdomains.txt
      ├── exemplo.com_hostnames_only.txt
      ├── exemplo.com_ports.json
      ├── exemplo.com_http_targets.txt
      ├── exemplo.com_all_targets.txt
      ├── exemplo.com_alive.json
      ├── exemplo.com_alive.txt
      ├── exemplo.com_gau_urls.txt
      ├── exemplo.com_katana_urls.txt
      ├── exemplo.com_crawled_urls.txt
      ├── exemplo.com_nuclei_targets.txt
      ├── exemplo.com_nuclei_results.json
      ├── exemplo.com_takeover_results.json
      ├── exemplo.com_report.html     ← relatório final
      └── screenshots/
          └── https_exemplo.com.png
Estrutura do Projeto
rakrecon/
  ├── rakrecon.py                   # único script — wizard (host) + pipeline (container)
  ├── Dockerfile                    # imagem Python 3.11-slim + 8 ferramentas Go
  ├── .dockerignore
  ├── requirements.txt              # rich
  ├── assets/
      └── img/
          └── logo.png               # logo oficial (embedado em base64 nos relatórios)
  ├── modules/
      ├── subdomains.py              # Fase 2: subfinder + dnsx
      ├── portscan.py                # Fase 3: naabu
      ├── alive.py                   # Fase 4: httpx
      ├── crawler.py                 # Fase 5: gau + katana
      ├── screenshots.py             # Fase 6: gowitness
      ├── vuln_scan.py               # Fase 7: nuclei
      └── reporter.py                # Fase 8: relatório HTML autocontido
  ├── utils/
      └── dependency_checker.py      # verifica ferramentas no container
  ├── docs/
      ├── index.html                 # documentação completa (HTML)
      └── rakrecon.txt               # documentação em texto plano
  └── reports/                      # artefatos gerados (não incluído na imagem)