
Автоматизированный фреймворк для баг-баунти и разведки — объединяет Subfinder, Naabu, Httpx, Nuclei, Nmap, CVEMap, Gowitness, Katana и другие в единый веб-интерфейс
Платформа для наступательной безопасности с открытым исходным кодом, дополненная ИИ, которая объединяет известные инструменты безопасности под единым веб-интерфейсом — с распределенным сканированием, отчетами, сгенерированными ИИ, интеллектуальным планировщиком сканирования, интерактивным графом атак и общедоступным SDK для плагинов.
Также посмотрите ObsidianBox Modern в Google Play.
| Раздел | Описание |
|---|---|
| Почему | Мотивация и философия |
| Обёрнутые инструменты | 10 инструментов с открытым исходным кодом, оркестрируемых XPFarm |
| Карта архитектуры | Полная архитектура системы, конвейер сканирования, поток данных |
| Overlord — Анализ ИИ | ИИ-агент для анализа бинарных файлов/вредоносного ПО/веба |
| Отчёты Bug Bounty | Профессиональные отчёты о раскрытии, сгенерированные ИИ |
| Планировщик сканирования ИИ | Оптимизированный ИИ планировщик этапов разведки и эксплуатации |
| Распределённые рабочие | Запуск сканирования на нескольких машинах параллельно |
| Граф сканирования | Интерактивный граф активов, сервисов, уязвимостей, эксплойтов |
| Plugin SDK | Расширяемая сообществом система инструментов, агентов и конвейеров |
| Движок нормализации находок | Унифицированные, обогащённые, дедуплицированные находки безопасности |
| Что нового | Последние улучшения безопасности, надёжности и UX |
| Настройка | Инструкции по сборке и развёртыванию |
| TODO | Планируемые функции и дорожная карта |

Инструменты вроде Assetnote отличны — хорошо поддерживаются, актуальны и прозрачны в выявлении уязвимостей. Но они не являются открытым исходным кодом. И нет необходимости изобретать велосипед, поскольку уже существует множество надёжных инструментов с открытым исходным кодом. XPFarm объединяет их, чтобы вы могли использовать сканер уязвимостей с открытым исходным кодом и менее корпоративный.
Основное внимание было уделено созданию сканера уязвимостей, в котором вы можете видеть, что выходит из строя или удаляется в фоновом режиме, вместо того чтобы гадать. Всё, что делает конвейер сканирования, отображается для пользователя.

![]() Asjidkalam |
![]() jamoski3112 Исследование |
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/"]