Vigolium 拆解:Go 原生 324 个扫描模块,外挂一个会自己写攻击插件的 AI swarm
一、速览:值不值得你花时间
推荐指数:★★★☆☆(3.5 / 5)
先说为什么值得看:它是这批工具里唯一一个「传统扫描器底子 + AI 上层」两层都做实了的。很多 AI 安全工具是从零搭 agent,底层能力薄;Vigolium 反过来 —— 先用 Go 写了一套完整的 DAST 引擎(324 个模块、OAST 带外检测、语义感知参数变异、多阶段流水线、多会话认证),再在上面接 AI。这让它的 AI 层有真东西可调,而不是只能聊天。
几个我觉得做得到位的技术点:
- Value-aware mutation:不是无脑塞 payload,而是先把参数按语义类型分类(integer / UUID / JWT / email),再按意图变异。这直接提高命中率。
- OAST 自动化关联:盲 XSS / SSRF / 命令注入走 interactsh callback,payload 自动关联。
- Swarm 模式会自己写 JS 攻击扩展:master agent 分析输入 → 选模块 → 生成自定义 JS 攻击扩展 → 跑代码审计和 SAST → 执行扫描 → 分诊。这个闭环在开源里不多见。
- agent 运行时是自研的 Go 版
pkg/olium,进程内跑,不靠 subprocess SDK 池。
但分数被压到 3.5,是因为几件事都很硬:agent 模式明确无沙箱(LLM 对宿主机有完整 shell / 文件 / 网络权限,官方自己写的);扩展能执行任意命令;许可证状态不一致(README 写 MIT,GitHub API 识别为 NOASSERTION);以及作者是 @j3ssie、项目只有 7 个月,成熟度需要时间验证。
关键数据(截至 2026-10-02)
| 语言 | Go |
| Star / Fork | 1,085 / 157 |
| 提交 / Open Issues | 118 / 4 |
| 许可证 | README 声明 MIT,但 GitHub API 识别为 NOASSERTION(见第七章) |
| 首次提交 | 2026-03-08(约 7 个月) |
| 最近提交 | 2026-09-24(8 天前) |
| 扫描模块 | 324(208 主动 fuzzing + 117 被动匹配) |
| 安装方式 | 快速脚本 / npm(@vigolium/vigolium)/ Windows / Docker / 源码 |
| 作者 | @j3ssie,@theblackturtle 为早期核心贡献者 |
| 官方站点 | https://www.vigolium.com/ |
适合谁
| 人群 | 分 | 理由 |
|---|---|---|
| 红队 / 渗透测试工程师 | 4 / 5 | 324 模块 + OAST + 多会话 IDOR,底子很实用;有 Burp / Caido 桥接 |
| Bug Bounty 猎人 | 4 / 5 | 输入源丰富(URL / OpenAPI / Postman / Burp / cURL / Nuclei JSONL),适合批量 |
| 企业安全运营 | 2 / 5 | agent 无沙箱这条,短期内进不了生产流程 |
| DevSecOps 工程师 | 3 / 5 | 有 server mode 和 REST API,但 CI 门禁不是它的主场景 |
| 个人 / 学习者 | 2 / 5 | 功能强但风险面大,且文档站是商业化导向 |
二次开发
| 难度 | 说明 |
|---|---|
| 改配置 | 低 —— CLI flag 覆盖很全(-m 选模块、--strategy 预设、--auth-file 登录流) |
| 改集成 | 低 —— server mode 有 REST API + SSE + OpenAI-compatible chat endpoint;Burp / Caido 官方插件 |
| 改内核 | 中 —— 嵌入式 JS 引擎可写自定义模块和 hook,不用重新编译;有 make 全套开发命令和 HACKING.md |
二、它是什么,不是什么
- 不是一个纯 AI agent。它的底座是一套完整的 Go DAST 引擎,AI 是可选项(Agentic Scan)。
- 不是 Nuclei 的替代品。Nuclei 是模板驱动的 PoC 匹配;Vigolium 有主动 fuzzing 和变异引擎。
- 不是 SAST。它有
agent audit做源码审计,但那是 agentic 层的附加能力,主业是 DAST。 - 不是云端 SaaS(开源部分)。Cloud Console 是另外的付费升级版。
提炼三个关键词:dual-engine(原生 + agentic 双引擎)、value-aware mutation(语义感知变异)、in-process agent runtime(进程内 agent 运行时)。
三、Native Scan:324 个模块打底
这是它的价值基座。
| 能力 | 说明 |
|---|---|
| 324 个扫描模块 | 208 active(fuzzing)+ 117 passive(pattern matching),覆盖 OWASP Top 10 及更广 |
| OAST 带外检测 | 盲 XSS / SSRF / 命令注入走 interactsh callback,payload 自动关联 |
| Value-aware mutation | 按语义类型分类参数(integer / UUID / JWT / email),再按意图变异 |
| 多阶段流水线 | 外部 harvesting → 内容发现(Deparos)→ 浏览器 / SPA 爬取(Spitolas)→ audit |
| 输入源 | URL、OpenAPI/Swagger、Postman、Burp Suite、cURL、Nuclei JSONL |
| 多会话认证 | inline session / session 文件 / 完整 auth 配置(登录流 + token 提取),用于 IDOR/BOLA 与越权检测 |
| JS 扩展 | 嵌入式 JS 引擎写自定义模块和 hook,带 session-aware HTTP API |
| 并发与报告 | worker pool + per-host 限流、内存/磁盘/Redis 混合队列、自包含 HTML 报告 |
流水线分层
| 层 | 作用 |
|---|---|
| Content Discovery(Deparos) | 自适应目录 / 文件枚举,带基于指纹的 soft-404 检测 |
| Browser Spider(Spitolas) | Chromium 驱动的状态机爬虫,CDP 抓流量 |
| Audit | 主动 / 被动漏洞扫描,插入点提取 + DiffScan 框架 |
| Scanner Modules | 208 主动 + 117 被动模块 |
soft-404 检测这条值得单独说 —— 目录爆破最大的噪声源就是「什么都返回 200」的应用,用指纹识别 soft-404 能显著降低误报。
上手命令
1 | # 单目标(默认 balanced 策略) |
认证扫描(IDOR/BOLA 的关键)
1 | # 内联多会话(name:Header:value) |
多会话是做 IDOR/BOLA 和越权检查的前提 —— 拿两个不同权限的会话去请求同一个资源,才能判断是否存在越权。这个能力在很多扫描器里是缺失的。
注意:
--auth/--auth-file之前叫--session/--session-file,旧名字作为 deprecated alias 仍可用。
四、Agentic Scan:两种模式,一个自研运行时
所有 agent 模式都跑在原生 Go 的 pkg/olium 引擎上:turn-based loop、内置 tool registry、skills 支持、可插拔 provider driver,不用 subprocess SDK 池。这个选择让性能和可控性都好于「调外部 CLI」。
Autopilot vs Swarm
| 模式 | 干什么 |
|---|---|
| Autopilot | agent 自主发现端点、跑扫描、分诊 finding;可选多专家流水线 + 会话续跑 |
| Swarm | master agent 分析输入 → 选模块 → 生成自定义 JS 攻击扩展 → 跑代码审计 + SAST → 执行扫描 → 分诊结果 |
| Audit | 源码审计,统一 dispatcher,跑内嵌的 vigolium-audit(claude/codex)和 / 或 piolium(Pi 原生) |
| Query | 单次 prompt,做 code review / 端点发现 / 敏感信息检测 |
1 | # Autopilot |
Swarm 会生成自定义 JS 攻击扩展这一点是它最特别的地方 —— 不是从固定模块库里选,而是让 agent 针对当前目标现写攻击代码。这既是亮点也是风险(见第七章)。
Provider 支持(10 种)
openai-compatible(默认)、openai-codex-oauth、openai-api-key、openai-responses、anthropic-api-key、anthropic-oauth、anthropic-cli、anthropic-compatible、anthropic-vertex、google-vertex。
同样的模式通过 REST API 暴露,带 SSE streaming 和一个 OpenAI-compatible chat endpoint。
五、Server Mode 与代理桥接
1 | # 带认证启动 API server |
1 | # 向运行中的 server 灌流量 |
代理集成:官方给了 burp-vigolium(Burp Suite 扩展)和 caido-vigolium(Caido 插件),两者走同一个 bridge 协议(-B/--burp-bridge-url,别名 --caido-bridge-url),灌进去的流量会标注来源代理。
这条对实战很实用:你手工浏览一遍应用,把 Burp 里的流量直接喂给 Vigolium 去扫,比自己拼 URL 列表高效得多。
六、基准测试
官方声明持续对故意脆弱的应用做 benchmark,并通过 bug bounty 和负责任披露在真实目标上重度测试:
- 自托管(Docker):DVWA、OWASP Juice Shop、VAmPI、crAPI、Vulnerable Java App、Vulnerable Nginx、OopsSec Store(自定义 Next.js 应用)
- 外部(托管):Acunetix TestPHP、Gin & Juice Shop、Testfire
- XSS & 多漏洞:BruteLogic XSS、XBOW(XSS、SQLi、SSTI、LFI、SSRF、XXE、命令注入)
跑法:make test-canary(Docker 应用)或 make test-integration(XSS)。
但要注意:README 列了靶场清单,没有给量化的检出率 / 误报率数字。想评估效果得自己跑 make test-canary。这和 Dark-Moon 那种「57 个漏洞」的明示数字相比,透明度上差一档。
七、边界与风险(必须诚实说的部分)
1)agent 模式没有沙箱 —— 这是最重的一条。 官方 SECURITY 章节原文:
Vigolium is an offensive security tool, and two parts of it are intentionally permissive: agent mode runs with no sandbox (the LLM has full shell, file, and network access on the host) and extensions can run arbitrary commands. Run agent mode in a disposable container/VM scoped to the engagement, and treat untrusted extensions like untrusted code.
翻译成人话:跑 agent 模式时,LLM 在你的宿主机上有完整的 shell、文件、网络权限。 它自己给了缓解建议 —— 用一次性的容器 / VM,并且把不受信任的扩展当成不受信任的代码。请务必照做,不要在你的开发机或任何有生产凭证的机器上跑 agent 模式。
对比一下:LuaN1ao 是每 Task 一个 Docker 沙箱 + Gateway 收口出网;Dark-Moon 是 AI 永不直接执行命令、全走 MCP。Vigolium 在这条上是明确落后的,而且它自己承认了。
2)扩展能执行任意命令。 同上,JS 扩展不是沙箱化的。装第三方扩展 = 装任意代码执行。
3)许可证状态不一致。 README 写的是 MIT License,但 GitHub API 把这个仓库识别为 NOASSERTION。这种不一致通常意味着 LICENSE 文件里有非标准条款,或者检测失败。企业使用前请人工读一遍 LICENSE 文件原文,别只看 README 或 API 返回的字段。
4)Cloud Console 是付费升级版,README 说它是「upgraded, fully-featured version」。 这暗示开源版可能在功能上有保留。具体差多少没说明,选型时要自己验证。
5)项目只有 7 个月,118 次提交。 对一套 324 模块的引擎来说,这个体量意味着很多模块可能未经充分实战验证。4 个 open issue 更可能反映的是社区还小,而不是没问题。
6)benchmark 没有量化数字。 见第六章 —— 有靶场清单,没有检出率数据。
7)platform/ 目录不属于核心扫描器。 README 说它装的是外部工具链和 UI Dashboard,且「No changes should be made to it」。看代码时别被这部分干扰。
八、上手建议(按这个顺序来)
- 先用 Native Scan,别一上来就开 agent。
vigolium scan -t <target> --strategy deep是零风险入口,能先把 324 个模块的价值吃透。 - 装 Docker 版最省事,也顺便隔离。别在开发机上直接装二进制。
- 第一次跑配好
--auth-file。 多会话认证是它做 IDOR/BOLA 的前提,不给会话等于放弃了这块能力。public/presets/sessions/里有现成示例。 - 接 Burp / Caido 桥接。 手工浏览一遍应用再灌流量,比拼 URL 列表高效得多,这是它相对同类工具的一个实战优势。
- 要用 agent 模式,先准备一次性 VM。 重申一遍:agent 模式无沙箱,LLM 有完整宿主机权限。 用一次性容器 / VM,跑完就扔。
- 别装来路不明的第三方 JS 扩展。 扩展能执行任意命令,等同于装任意代码。
- 想验证效果就自己跑 benchmark:
make test-canary。别信任何没给数字的说法,包括官方的。 - 企业用之前人工读 LICENSE 原文(README 的 MIT 和 API 的 NOASSERTION 对不上)。
九、一句话结论
如果你要的是一套模块扎实、输入源丰富、能接 Burp 的 Go 版 DAST,Vigolium 的 Native Scan 值得试;但 Agentic Scan 那层请只在一次性 VM 里碰 —— 它是我近期看到的、官方自己把「无沙箱 + 完整宿主机权限」写得最直白的项目。
给红队的第一动作:Docker 起一套 → vigolium scan -t <你的靶场> --strategy deep → 配 --auth-file 双会话跑一遍 IDOR → 接 Burp 桥接灌真实流量。 这四步走完,你就知道它的 324 个模块对你值多少了。agent 模式先别碰。