
Framework automatizado de bug bounty & recon — envolve Subfinder, Naabu, Httpx, Nuclei, Nmap, CVEMap, Gowitness, Katana & mais por trás de uma interface web unificada
Uma plataforma de segurança ofensiva de código aberto aumentada por IA que agrupa ferramentas de segurança conhecidas por trás de uma interface web unificada — com varredura distribuída, relatórios gerados por IA, um planejador inteligente de varredura, um grafo de ataque interativo e um SDK de plugins comunitário.
Confira também o ObsidianBox Modern no Google Play.
| Seção | Descrição |
|---|---|
| Porquê | Motivação e filosofia |
| Ferramentas Incluídas | As 10 ferramentas de código aberto orquestradas pelo XPFarm |
| Mapa da Arquitetura | Arquitetura completa do sistema, pipeline de varredura, fluxo de dados |
| Overlord — Análise com IA | Agente de IA para análise de binários/malware/web |
| Relatórios de Bug Bounty | Relatórios profissionais de divulgação gerados por IA |
| Planeador de Varredura com IA | Planejador de etapas de recon & exploração otimizado por IA |
| Trabalhadores Distribuídos | Execute varreduras em várias máquinas em paralelo |
| Grafo de Varredura | Grafo interativo de ativos, serviços, vulnerabilidades, explorações |
| SDK de Plugins | Sistema de Ferramentas, Agentes e Pipelines extensível pela comunidade |
| Motor de Normalização de Achados | Achados de segurança unificados, enriquecidos e deduplicados |
| Novidades | Melhorias recentes em segurança, confiabilidade e UX |
| Configuração | Instruções de build e implantação |
| TODO | Funcionalidades planejadas e roteiro |

Ferramentas como Assetnote são ótimas — bem mantidas, atualizadas e transparentes sobre a identificação de vulnerabilidades. Mas não são de código aberto. Também não há necessidade de reinventar a roda, já que existem muitas ferramentas de código aberto sólidas. O XPFarm as agrupa para que você tenha um scanner de vulnerabilidades que é código aberto e menos corporativo.
O foco foi construir um scanner de vulnerabilidades onde você possa ver o que falha ou é removido em segundo plano, em vez de se perguntar sobre o mistério. Tudo o que o pipeline de varredura faz é exibido para o usuário.

flowchart TB
subgraph ENTRY["Entrypoint — main.go"]
M1["Parse Flags (-debug)"]
M2["InitDB — SQLite + WAL + GORM"]
M3["InitModules — 10 tool wrappers"]
M4["Load Plugins — normalization/all + plugins/all"]
M5["Health Check — auto-install missing tools"]
M6["CheckAndIndexTemplates — Nuclei versioning"]
M7["StartServer — Gin on :8888"]
M1 --> M2 --> M3 --> M4 --> M5 --> M6 --> M7
end
subgraph UI_LAYER["Web UI — internal/ui/server.go"]
direction TB
GIN["Gin HTTP Server\nEmbedded templates + static\nCSRF origin-check middleware"]
subgraph Pages["HTML Pages"]
P1["Dashboard — SSE live stage progress"]
P2["Assets & Targets"]
P3["Global Search — paginated + truncation"]
P4["Scan Graph — Cytoscape.js"]
P5["Bug Bounty Reports"]
P6["AI Scan Planner"]
P7["Workers & Jobs"]
P8["Overlord Chat + Binary Upload"]
P9["Modules"]
P10["Settings — AES-256-GCM encrypted"]
end
GIN --> Pages
end
subgraph SCAN_ENGINE["Scan Engine — internal/core/"]
direction TB
SM["ScanManager\nSingleton, mutex-guarded\nPanic recovery + SSE broadcast"]
subgraph PIPELINE["8-Stage Scanning Pipeline"]
direction TB
S1["1. Subfinder — Subdomain Discovery"]
S2["2. Filter & Save — Cloudflare / Localhost / Alive"]
S3["3. Naabu — Port Scanning (5-worker pool)"]
S4["4. Nmap — Service + Version Detection"]
S5["5. Httpx — HTTP Probing + Metadata"]
S6["6. Parallel Web — Screenshots, Crawl, URLs, Tech"]
S7["7. CVEMap — CVE lookup by product/tech"]
S8["8. Nuclei — Vulnerability Scanning"]
S1 --> S2 --> S3 --> S4 --> S5 --> S6 --> S7 --> S8
end
SM --> PIPELINE
end
subgraph REPORTS["Bug Bounty Reports — internal/reports/"]
RG["GenerateReport()\nCollects DB context + graph\nOverlord AI generation\nFallback built-in templates"]
RF["Formats: Markdown · PDF · HackerOne · Bugcrowd"]
RS["Storage: internal/storage/reports/"]
RG --> RF --> RS
end
subgraph PLANNER["AI Scan Planner — internal/planner/"]
PL["GenerateScanPlan()\nGathers asset/finding/graph context\nPolls Overlord for JSON plan\nFallback heuristic plan"]
PC["Capability Registry — 26 capabilities\n10 built-in modules + 16 Overlord agents\nRisk levels: safe / active / destructive"]
PS["ExecutePlanWithLogs()\nSSE log streaming per step\nRoutes builtin vs Overlord agent steps"]
PL --> PC --> PS
end
subgraph DISTRIBUTED["Distributed Workers — internal/distributed/"]
DW["Worker Binary — cmd/worker/main.go\n./xpfarm-worker -controller http://host:8888"]
DC["Controller — token auth, heartbeat monitor\nAtomically claims jobs from queue"]
DS["Scheduler — BestWorkerForTool()\nRoutes by capability + active job count"]
DJ["Job Queue — internal/storage/jobs/\nClaim via DB transaction, 30min timeout"]
DW --> DC --> DS --> DJ
end
subgraph OVERLORD["Overlord — AI Agent Subsystem"]
OV_PROXY["Overlord Proxy — internal/overlord/"]
subgraph OV_AGENTS["22 Specialized Agents"]
OA1["Binary RE — re-explorer, re-debugger, re-decompiler, re-scanner"]
OA2["APK — apk-recon, apk-dynamic, apk-decompiler"]
OA3["Web + Exploit — web-tester, re-exploiter, secrets-hunter, recon"]
end
subgraph OV_TOOLS["70+ TypeScript Tools"]
OT1["radare2, ghidra, binwalk, frida, angr, strings"]
OT2["semgrep, gitleaks, gau, corscanner, whatweb"]
OT3["git_dumper, js_scraper, crypto_solver, ropper"]
end
subgraph PROVIDERS["21 AI Providers"]
PR1["Anthropic · OpenAI · Groq · DeepSeek"]
PR2["Ollama (local) · xAI · OpenRouter · Cerebras"]
end
OV_PROXY --> OV_AGENTS
OV_PROXY --> OV_TOOLS
OV_PROXY --> PROVIDERS
end
subgraph SCAN_GRAPH["Scan Graph — internal/graph/"]
GB["BuildGraph() — queries 5 tables\nDeduplicates nodes + edges"]
subgraph GNODES["Node Types"]
GN1["asset #8b5cf6"]
GN2["target #0ea5e9"]
GN3["service #10b981"]
GN4["tech #f59e0b"]
GN5["vuln #ef4444"]
GN6["exploit #dc2626"]
end
GB --> GNODES
end
subgraph DATABASE["Database — internal/database/ + internal/storage/"]
DB["SQLite + WAL Mode\nGORM ORM\n10 open / 5 idle conns, 64MB WAL cap"]
subgraph MODELS["Data Models"]
DM1["Asset · Target · Port · WebAsset"]
DM2["Vulnerability · CVE · ScanResult"]
DM3["ScanProfile · NucleiTemplate · SavedSearch"]
DM4["Setting (AES-256-GCM encrypted)"]
DM5["Report · Plan · WorkerRecord · JobRecord"]
end
DB --> MODELS
end
subgraph DOCKER["Docker — docker-compose.yml"]
DC1["xpfarm — Go app :8888"]
DC2["overlord — OpenCode :3000"]
DC3["mobsf — Mobile scan :8000 (optional)"]
DC1 <-->|xpfarm-network| DC2
DC1 <-->|xpfarm-network| DC3
end
M7 --> GIN
GIN --> SCAN_ENGINE
GIN --> REPORTS
GIN --> PLANNER
GIN --> DISTRIBUTED
GIN --> OVERLORD
GIN --> SCAN_GRAPH
GIN --> DATABASE
O Overlord é um agente de IA integrado, alimentado pelo OpenCode, que pode analisar binários, arquivos, APKs e alvos web. Carregue um arquivo e converse com ele — o agente usa radare2, strings, triagem de arquivos, Frida e mais para investigar seu alvo.




Gere relatórios profissionais de divulgação a partir dos achados da sua varredura com um único clique. O Overlord com IA sintetiza seu inventário de ativos, achados de vulnerabilidades, contexto do grafo e dados de CVE em um relatório refinado.
Formatos:
| Formato | Saída |
|---|---|
Como funciona:
.md, .html ou .pdf — ou copie o Markdown bruto
O Overlord seleciona as melhores etapas de reconhecimento e exploração para seus alvos com base no que já foi descoberto — inventário de ativos, achados existentes, estrutura do grafo e capacidades disponíveis das ferramentas.
Modos:
Como funciona:
Registro de capacidades: 10 módulos integrados + 16 agentes Overlord, cada um etiquetado com nível de risco (seguro / ativo / destrutivo) e categoria para filtragem por modo.

Execute varreduras em várias máquinas em paralelo. Implante nós trabalhadores em hosts remotos e eles se registram automaticamente no controlador, consultam por tarefas, executam ferramentas localmente e enviam os resultados de volta.
Implantar um trabalhador:
./xpfarm-worker -controller http://xpfarm-host:8888 -id worker-1 -labels high-bandwidth,internal
Como funciona:
Fila de tarefas: Crie tarefas a partir da interface de Trabalhadores ou via POST /api/jobs/create. A fila mostra status ao vivo, trabalhador atribuído e resultado da saída.

O XPFarm constrói um grafo direcionado unificado de cada entidade descoberta durante a varredura, tornando trivial responder a perguntas como "quais serviços estão executando tecnologia com uma CVE com exploit ativo?" ou "mostre tudo que é alcançável a partir deste ativo".
Tipos de nó:
Caminho de exemplo:
example.com (asset)
└─owns──► www.example.com (target)
├─exposes──► 443/tcp https (service)
│ └─runs──► nginx 1.24 (tech)
├─affected-by──► CVE-2023-44487 (vuln)
│ └─exploits──► Exploit: CVE-2023-44487
└─affected-by──► http-missing-security-headers (vuln)
O XPFarm é extensível através de um SDK de Plugins comunitário. Qualquer pessoa pode adicionar novas Ferramentas, Agentes e Pipelines sem tocar no código principal.
plugins/
├── all/all.go ← adicione aqui o import do seu plugin
├── example-echo/ ← modelo inicial mínimo
├── example-repo-scanner/ ← exemplo de scanner de repositório mock
├── repo-semgrep/ ← plugin Semgrep SAST (pronto para produção)
└── repo-secrets/ ← plugin Gitleaks + SecretFinder (pronto para produção)
Escrevendo um plugin — três passos:
plugins/meu-plugin/plugin.go — implemente Tool e/ou Agent, chame plugin.RegisterTool() / plugin.RegisterAgent() em init()plugins/meu-plugin/plugin.yaml — metadados_ "xpfarm/plugins/meu-plugin" em plugins/all/all.goGET /api/plugins lista todas as ferramentas, agentes, pipelines e manifestos registrados.
Saídas brutas dos scanners Nuclei, Nmap, Semgrep e Gitleaks são normalizadas em um modelo unificado Finding, enriquecidas com inteligência de ameaças ao vivo, deduplicadas e agrupadas.
POST /api/normalize {"source": "nuclei", "raw": {...}}
│
▼ Adapter (nuclei / nmap / semgrep / gitleaks)
│ → canonical Finding (CVE, CWE, severity, evidence, tags)
│
▼ Enrichers (applied in order)
│ 1. CWE — 40-rule keyword trie + 35-tag map (local, instant)
│ 2. CVSS — NVD REST API v2, CVSS 3.1→3.0→2.0, in-process cache
│ 3. EPSS — FIRST.org exploitation probability API, in-process cache
│ 4. KEV — CISA Known Exploited Vulnerabilities catalog (sync.Once)
│
▼ SHA-256 fingerprint → deduplicate → group by CWE/CVE/Severity/Target
│
▼ SQLite storage (FindingRecord + GroupRecord)
./xpfarm-workerdata/.xpfarm.key./xpfarm.sh update para upgrades opcionais# Recommended
./xpfarm.sh build # Build all containers
./xpfarm.sh up # Start everything (xpfarm :8888 + overlord :3000)
./xpfarm.sh update # Rebuild with latest tool versions (opt-in upgrade)
# Windows
.\xpfarm.ps1 build
.\xpfarm.ps1 up
# Standard Docker
docker compose up --build
# Build from source (no Overlord)
go build -o xpfarm
./xpfarm
./xpfarm -debug







![]() Asjidkalam |
![]() jamoski3112 Pesquisa |
Markdown.md limpo com resumo executivo, tabela de achados, remediação |
PDF | Renderizado via wkhtmltopdf, com fallback para HTML |
HackerOne | Estrutura otimizada para a plataforma com CVSS, passos de reprodução |
Bugcrowd | Título, gravidade, categoria VRT, impacto, PoC |
| Modo | O que planeja |
|---|
Completo | Todas as 26 capacidades — avaliação completa |
Recon | Apenas descoberta de subdomínio, porta, HTTP, tecnologia |
Web | Sondagem HTTP, crawling, verificações de vulnerabilidade web |
Binário | Agentes de análise de binários/APK/malware do Overlord |
Seguro | Apenas ferramentas de leitura sem risco |
| Nó | Cor | Preenchido a partir de |
|---|
asset | roxo #8b5cf6 | Tabela Asset |
target | azul #0ea5e9 | Tabela Target |
service | verde #10b981 | Tabela Port (portas abertas) |
tech | âmbar #f59e0b | WebAsset.TechStack + Port.Product |
vuln | vermelho #ef4444 | Tabelas Vulnerability + CVE |
exploit | vermelho-escuro #dc2626 | CVEs com IsKEV=true E HasPOC=true |