
Automatisiertes Bug-Bounty- und Recon-Framework — kapselt Subfinder, Naabu, Httpx, Nuclei, Nmap, CVEMap, Gowitness, Katana und mehr hinter einer einheitlichen Weboberfläche.
Eine quelloffene, KI-gestützte offensive Sicherheitsplattform, die bekannte Sicherheitstools hinter einer einheitlichen Weboberfläche vereint – mit verteiltem Scannen, KI-generierten Berichten, einem intelligenten Scanplaner, einem interaktiven Angriffsgraphen und einem Community Plugin SDK.
Schauen Sie sich auch ObsidianBox Modern im Google Play Store an.
| Abschnitt | Beschreibung |
|---|---|
| Warum | Motivation und Philosophie |
| Eingebundene Tools | Die 10 quelloffenen Tools, die von XPFarm orchestriert werden |
| Architekturübersicht | Vollständige Systemarchitektur, Scan-Pipeline, Datenfluss |
| Overlord – KI-Analyse | KI-Agent für Binär-/Malware-/Webanalyse |
| Bug-Bounty-Berichte | KI-generierte professionelle Offenlegungsberichte |
| KI-Scanplaner | KI-optimierter Planer für Recon & Exploitation-Schritte |
| Verteilte Worker | Paralleles Scannen auf mehreren Maschinen |
| Scan-Graph | Interaktiver Graph von Assets, Diensten, Schwachstellen, Exploits |
| Plugin-SDK | Community-erweiterbares Tool-, Agenten- und Pipeline-System |
| Finding-Normalisierungs-Engine | Vereinheitlichte, angereicherte, deduplizierte Sicherheitsergebnisse |
| Neuerungen | Aktuelle Verbesserungen bei Sicherheit, Zuverlässigkeit und UX |
| Setup | Build- und Bereitstellungsanweisungen |
| TODO | Geplante Funktionen und Roadmap |

Tools wie Assetnote sind großartig – gut gewartet, aktuell und transparent bei der Schwachstellenidentifikation. Aber sie sind nicht quelloffen. Es besteht auch kein Grund, das Rad neu zu erfinden, da bereits viele solide Open-Source-Tools existieren. XPFarm bündelt sie, sodass Sie einen Schwachstellenscanner haben, der quelloffen und weniger unternehmensorientiert ist.
Der Fokus lag auf der Entwicklung eines Schwachstellenscanners, bei dem Sie sehen können, was im Hintergrund fehlschlägt oder entfernt wird, anstatt sich über das Geheimnis zu wundern. Alles, was die Scan-Pipeline tut, wird dem Benutzer angezeigt.

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
Overlord ist ein eingebauter KI-Agent, der von OpenCode betrieben wird und Binärdateien, Archive, APKs und Webziele analysieren kann. Laden Sie eine Datei hoch und chatten Sie mit ihm – der Agent verwendet radare2, strings, Datei-Triage, Frida und mehr, um Ihr Ziel zu untersuchen.




Generieren Sie mit einem Klick professionelle Offenlegungsberichte aus Ihren Scan-Ergebnissen. Overlord KI synthetisiert Ihr Asset-Inventar, Schwachstellenergebnisse, Graph-Kontext und CVE-Daten zu einem ausgefeilten Bericht.
Formate:
| Format | Ausgabe |
|---|
So funktioniert es:
.md, .html oder .pdf – oder das rohe Markdown kopieren
Overlord wählt die optimalen Recon- und Exploitation-Schritte für Ihre Ziele basierend auf dem, was bereits entdeckt wurde – Asset-Inventar, vorhandene Ergebnisse, Graphenstruktur und verfügbare Tool-Fähigkeiten.
Modi:
So funktioniert es:
Fähigkeitsregister: 10 eingebaute Module + 16 Overlord-Agenten, jeweils mit Risikostufe (safe / active / destructive) und Kategorie für Modusfilterung.

Führen Sie Scans parallel auf mehreren Maschinen durch. Stellen Sie Worker-Knoten auf entfernten Hosts bereit; sie registrieren sich automatisch beim Controller, fragen Jobs ab, führen Tools lokal aus und senden Ergebnisse zurück.
Einen Worker bereitstellen:
./xpfarm-worker -controller http://xpfarm-host:8888 -id worker-1 -labels high-bandwidth,internal
So funktioniert es:
Job-Warteschlange: Erstellen Sie Jobs über die Workers-Oberfläche oder per POST /api/jobs/create. Die Warteschlange zeigt Live-Status, zugewiesenen Worker und Ergebnisausgabe.

XPFarm erstellt einen einheitlichen gerichteten Graphen aller während des Scans entdeckten Entitäten, sodass Fragen wie „Welche Dienste laufen mit Technologie, für die ein aktives CVE-Exploit existiert?“ oder „Zeige mir alles, was von diesem Asset aus erreichbar ist“ trivial zu beantworten sind.
Knotentypen:
Beispielpfad:
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)
XPFarm ist über ein Community Plugin SDK erweiterbar. Jeder kann neue Tools, Agenten und Pipelines hinzufügen, ohne den Kerncode zu berühren.
plugins/
├── all/all.go ← hier Ihren Plugin-Import hinzufügen
├── example-echo/ ← minimale Startvorlage
├── example-repo-scanner/ ← Beispiel eines Repository-Scanners
├── repo-semgrep/ ← Semgrep SAST-Plugin (produktionsreif)
└── repo-secrets/ ← Gitleaks + SecretFinder-Plugin (produktionsreif)
Ein Plugin schreiben – drei Schritte:
plugins/my-plugin/plugin.go – implementieren Sie Tool und/oder Agent, rufen Sie plugin.RegisterTool() / plugin.RegisterAgent() in init() aufplugins/my-plugin/plugin.yaml – Metadaten_ "xpfarm/plugins/my-plugin" zu plugins/all/all.go hinzuGET /api/plugins listet alle registrierten Tools, Agenten, Pipelines und Manifeste auf.
Rohe Scanner-Ausgaben von Nuclei, Nmap, Semgrep und Gitleaks werden in ein einheitliches Finding-Modell normalisiert, mit Live-Bedrohungsinformationen angereichert, dedupliziert und gruppiert.
POST /api/normalize {"source": "nuclei", "raw": {...}}
│
▼ Adapter (nuclei / nmap / semgrep / gitleaks)
│ → kanonisches Finding (CVE, CWE, Schweregrad, Nachweis, Tags)
│
▼ Anreicherungen (in Reihenfolge angewendet)
│ 1. CWE — 40-Regel-Keyword-Trie + 35-Tag-Karte (lokal, sofort)
│ 2. CVSS — NVD REST API v2, CVSS 3.1→3.0→2.0, In-Prozess-Cache
│ 3. EPSS — FIRST.org Exploitation-Wahrscheinlichkeits-API, In-Prozess-Cache
│ 4. KEV — CISA-Katalog bekannter ausgenutzter Schwachstellen (sync.Once)
│
▼ SHA-256-Fingerabdruck → deduplizieren → gruppieren nach CWE/CVE/Schweregrad/Ziel
│
▼ SQLite-Speicherung (FindingRecord + GroupRecord)
./xpfarm-worker-Binärdateidata/.xpfarm.key generiert./xpfarm.sh update für optionale Upgrades# Empfohlen
./xpfarm.sh build # Alle Container bauen
./xpfarm.sh up # Alles starten (xpfarm :8888 + overlord :3000)
./xpfarm.sh update # Mit neuesten Tool-Versionen neu bauen (optionales Upgrade)
# Windows
.\xpfarm.ps1 build
.\xpfarm.ps1 up
# Standard Docker
docker compose up --build
# Aus Quellcode bauen (ohne Overlord)
go build -o xpfarm
./xpfarm
./xpfarm -debug







![]() Asjidkalam |
![]() jamoski3112 Forschung |
Markdown | Saubere .md mit Zusammenfassung, Ergebnistabelle, Behebung |
PDF | Gerendert über wkhtmltopdf, Fallback auf HTML |
HackerOne | Plattformoptimierte Struktur mit CVSS, Reproduktionsschritten |
Bugcrowd | Titel, Schweregrad, VRT-Kategorie, Auswirkung, PoC |
| Modus | Was wird geplant |
|---|
Full | Alle 26 Fähigkeiten – vollständige Bewertung |
Recon | Nur Subdomain-, Port-, HTTP- und Technologie-Erkennung |
Web | HTTP-Sonden, Crawling, Web-Schwachstellenprüfungen |
Binary | Overlord Binary-/APK-/Malware-Analyse-Agenten |
Safe | Nur risikofreie, schreibgeschützte Tools |
| Knoten | Farbe | Befüllt von |
|---|
asset | lila #8b5cf6 | Asset-Tabelle |
target | blau #0ea5e9 | Target-Tabelle |
service | grün #10b981 | Port-Tabelle (offene Ports) |
tech | amber #f59e0b | WebAsset.TechStack + Port.Product |
vuln | rot #ef4444 | Vulnerability- + CVE-Tabellen |
exploit | dunkelrot #dc2626 | CVEs mit IsKEV=true UND HasPOC=true |