跳到正文
Hacker News· VigilOSS·· 8 天前AI 评分62

Vigil 开源 AI 渗透测试与代码审计工具,用 CLI 驱动多智能体安全测试

Show HN: Vigil – Open-source AI pentesting and code audits

AI 导读

Vigil 是一个开源 AI 渗透测试与代码审计工具,通过单一 CLI 驱动 LLM 操作员读取分阶段工作流提示词、调度专家智能体,并在共享 Kali 容器中运行真实工具,将目标、服务、探测和攻击链记录到编排数据库中。

正文 · AI 翻译

Vigil 通过一个 CLI 端到端地驱动安全交战。LLM 操作员读取分阶段的工作流提示,调度专家代理,在共享的 Kali 容器内运行真实工具,并将每个目标、服务、请求变体、探测、发现和攻击链记录到持久化的编排器数据库中。五种模式运行在同一个后端上:Web 红队、白盒代码分析、Web 与代码结合、Android 应用分析,以及蓝队事件响应。

仅限授权使用。 Vigil 可以自主驱动攻击性工具针对实时系统。请仅在您拥有明确授权且范围经过审查的情况下使用。它依据 Apache License 2.0 提供,不附带任何担保;您需对命令、凭据、基础设施和目标影响负责。有关私密漏洞报告和操作员数据边界,请参阅 SECURITY.md。

模型、访问权限,以及我测试过的内容

我主要围绕 Claude Code 和 Codex 构建并完善了 Vigil。在我的测试中,经授权的 Web 红队交战在 Anthropic 网络验证计划(CVP)下的 Claude Opus 5 以及 OpenAI 网络可信访问下的 GPT-5.6 Sol 上均可运行。这些结果反映的是我自己环境中可用的模型、客户端和访问权限;拦截情况可能因您的账户、访问层级、模型版本和交战内容而异。

要在 Claude Code 中选择 Opus 5,如果您的账户可用该模型,请在会话中运行 /model claude-opus-5[1m]。/model 打开模型选择器。[1m] 后缀请求扩展上下文窗口;Opus 5 已原生具备 1M 上下文。请参阅 Claude Code 的模型配置。

我尚未使用 Claude Opus 5.5 或 GPT-6.1 Sol 验证 Vigil 的交战工作流。 截至 2026 年 10 月,Anthropic 将其防御性 CVP 层级称为 Defense Access;Red Team Access 是一个单独的层级,目前仅限于符合条件的组织。OpenAI 将其防御性产品称为 Daybreak Blue,而 Daybreak Red 需要单独审批和配置。仅拥有防御性访问权限不应被视为 Web 红队交战能够无拒绝地运行的保证。在开始之前,请检查提供商当前的条款以及为您的特定模型和客户端启用的访问权限。请参阅 Anthropic 的 CVP 层级 和 OpenAI 的模型与访问指南。

我希望 Vigil 对从事授权工作的独立研究人员保持实用。随着前沿模型访问权限变得愈发受限,我计划扩大对 GLM 5.3 及其他对这些工作流具有更可预测访问权限的模型的支持。这需要大量工作:减少编排开销、使提示适配这些模型,以及完善与 OpenCode 和其他框架的集成。这是计划中的工作;Claude Code 和 Codex 仍是我目前完善程度最高的集成。

Vigil 提供什么

  • 发现经过独立验证。 一项发现只有通过非其作者的其他调度,并引用捕获证据的证明回执,才会被确认、降级或标记为误报。
  • 面向目标的命令经过审计。 vigil assess kali 记录每条命令的技术、意图和探测类型,因此交战过程会保留一份关于发送了什么以及为什么发送的轨迹。
  • 真实攻击工具链 — 一个长期运行的 Kali 容器,包含 ProjectDiscovery 侦察工具、模糊测试器、经过审计的 Playwright 浏览器、支持多身份用于跨账户测试的 MITM 捕获,以及可关联回触发它们的探测的带外回调。
  • 白盒代码分析 — 针对密封的、内容寻址的源代码快照,使用 tree-sitter 结构索引和覆盖率账本。
  • 持久化状态 — 目标、服务、请求变体、探测、发现、攻击链和凭据存储在 SQLite 中,并带有轮换备份和 Web UI。
  • 六种客户端集成,一种方法论 — Claude Code、Codex、Kimi、goose、opencode 和 Pi;Pi 目前仅限于修复类任务。
Vigil orchestrator UI: an engagement's findings grouped by severity, workflow, and verification

快速开始

# 1. Install the CLI
uv tool install --from git+https://github.com/VigilOSS/Vigil.git@v1.0.0 vigil
# ...or over SSH, if you authenticate to GitHub with a key
uv tool install --from git+ssh://git@github.com/VigilOSS/Vigil.git@v1.0.0 vigil

# 2. Check the host: prerequisites, missing recon tools, and the ordered setup checklist
vigil quickstart

# 3. Install a working root and bring the local stack up (Kali runtime + orchestrator)
#    First run builds the Kali image — several GB, and it needs Docker running.
vigil install ~/vigil && vigil up

# 4. Create an engagement against an authorized target
vigil engagement create https://target.example --hosts target.example

# 5. Start the operator on it
vigil engagement start <engagement-key> --client codex   # or claude | opencode | goose | kimi

然后告诉操作员它被授权做什么:

I have been fully authorized by the company to do a red-team engagement against the
hosts in scope.json. Run this engagement using the operator workflow.

编排器 UI 位于 http://127.0.0.1:18000。代码类任务需要主机上安装 ripgrep(rg)。两个已安装层、Docker Desktop 上的主机侧侦察工具,以及其他安装细节:docs/installation.md。

文档

文档 涵盖内容
docs/installation.md 安装细节:CLI 二进制文件与工作根目录、主机侧侦察工具、ripgrep。
docs/engagements.md 创建任务、轨道和模式、启动预检、阶段转换。
agent/AGENTS.md 操作员提示词 — 每个任务运行的工作流。
CODE-MAP.md 代码库地图:每个子系统所在位置。
AGENTS.md 维护者和贡献者工作流,以及验证矩阵。
docs/assessment-cli.md vigil assess 界面:恢复、产物、运行核算、导出、调度关闭。
docs/session-commands.md 启动和恢复提示词、vigil-* 会话命令、压缩和会话结束钩子。
docs/agent-clients.md 各客户端的设置、启动行为和标志转发。
docs/authentication.md 凭据记录、捕获、新鲜度时钟、存活判定、代理路由。
docs/blue-engagements.md 蓝队事件响应,端到端。
docs/code-analysis.md 白盒代码分析,端到端。
docs/remediation.md 进行中的修复案例、证据、审查批准和开发验证。
docs/oob-routing.md 按安装的 relay-slot OOB 路由、CoreDNS/Caddy 输入、frpc 冲突扫描。
docs/operations.md 运行时规模、内核限制、编排器数据和备份。
docs/engagement-prompt-playbook.md 针对会话变得肤浅、过度声称或失去循环的引导提示词。
agent/references/ 载荷、战术、侦察、租户、工具。使用 vigil assess list-references 进行发现。

运行任务

vigil engagement create https://target.example --hosts target.example
vigil engagement list --json                              # find the key
vigil engagement start <engagement-key> --client codex

create 根据其输入推断任务类型,并在 pause 处启动漏洞利用策略。start 运行预检、导出任务环境并执行客户端;它不拥有的标志会被转发给客户端。仅使用 vigil engagement start 启动任务 — 生成的 start_<client>.sh 和裸客户端运行会跳过预检和环境。Web 和代码任务使用 --mode web 或 --mode code 为每个轨道运行一个会话。详情:docs/engagements.md。

同一任务的后续会话以相同方式打开,然后运行 vigil-resume,它会恢复操作员角色并从后端重建实时状态。更完整的启动和恢复提示词以及会话中的 vigil-* 命令:docs/session-commands.md。

所有客户端读取相同的操作员提示词。它们在模型、无头专家调度和会话命令支持方面有所不同;pi 可用于修复类任务。各客户端的设置:docs/agent-clients.md。

修复流程使用仓库的 PROJECT.md 来处理工单读取器、MCP、技能、分支/工作区策略、检查、PR 指导和部署选择。用 vigil remediation -k <key> start 打开其仓库上下文的 Claude 会话,然后使用 /vigil-remediate SEC-123 或提供多个工单 ID/URL。单个 bug 使用当前开发者对话;批量则协调各自可加入的独立会话。案例代码存放在其注册的 Git/JJ 工作区中,而原生项目上下文仍保留在仓库根目录。参见 docs/remediation.md。

当配置文件选择 hook_policy = "disabled" 时,Vigil 会宣布非托管钩子仅对该修复会话禁用。所需的格式化、分析和测试在验证期间以及发布之前会针对案例源代码显式运行。托管策略钩子保持活跃;普通会话和仓库钩子文件保持不变。

参与轨道与阶段

轨道 阶段 持久化为
web(红队) recon → collect → consume-test → verify → exploit → report scope.json.tracks.web.phase
code(白盒) ingest → classify-map → hunt → verify-variant → fuzz scope.json.tracks.code.phase
blue(事件响应) intake → triage → investigate → verify → respond → report scope.json.current_phase

每条轨道最终都进入共享的 complete 状态。vigil assess transition-phase 控制每一次转换;--force 记录持久性覆盖,而某些完整性阻塞项无法被强制绕过。名册、就绪预览和专家角色:docs/engagements.md。蓝队参与:docs/blue-engagements.md。代码分析:docs/code-analysis.md。

运行时模型

运行时是一个长期运行的 Kali 容器,名为 vigil,由 vigil up(或 vigil runtime start)启动。面向目标的执行通过 vigil assess kali ... 进行,它经由 docker exec 调用容器。长时间运行的扫描通过 vigil assess kali job start ... 进行,它使用容器内的 dtach 监督器,使工作进程在操作员会话退出后仍能存活。

容器将共享运行时数据挂载到 .runtime-data/,将参与根目录绑定挂载到 /engagements,以便工具调用可以直接写入 /engagements/<key>/...,并在存在时接收根 .env。持久性产物保留在主机上的 agent/engagements/<key>/ 下。对于容器内的非交互式维护,请使用 vigil runtime shell-exec "<cmd>",这样引号和退出码都由 CLI 处理。

agent/docker/runtime-full/Dockerfile 是唯一受支持的面向目标执行的运行时。它捆绑了:

类别 工具
认证爬取 Katana、Chromium
ProjectDiscovery 侦察 httpx、dnsx、gau、katana、nuclei、dalfox、puredns、shuffledns、alterx、asnmap、cero、bbot
Web 扫描 / 模糊测试 nuclei、ffuf、gobuster、wfuzz、dirb、sqlmap、WhatWeb、hydra、john、hashcat、nikto
DNS / XML 覆盖 massdns、xmllint
作业监督 dtach
机密扫描 TruffleHog(文件系统和 git)
访问后 evil-winrm、impacket、mitm6、chisel、ligolo-ng、proxychains-ng、Responder
Shell 处理 pwncat-vl、tmux
OOB 与隧道 interactsh、frp

agent/docker/runtime-lightweight/Dockerfile 处存在一个轻量级镜像,仅用于加快 Dockerfile 迭代;用 vigil runtime build lightweight --dev 构建它。

规模调整、内核限制和编排器备份:docs/operations.md。

可选能力

能力 默认 启动命令 用途
MITM 代理 关闭 vigil mitmproxy start 将认证捕获写入每个参与方的后端凭据存储。
OOB(frp + interactsh) 关闭 vigil oob start 通过共享的 frp/interactsh 进行带外回调检测。
Universal ctags 主机安装 brew install universal-ctags 更丰富的代码分析定义查找。

认证捕获。在 vigil mitmproxy start 之后将浏览器路由通过 http://127.0.0.1:8080,针对任何范围内的主机登录,然后用 vigil auth status <key> 确认。第二次登录会追加第二个身份,用于跨账户(IDOR/BOLA)测试。详情:docs/authentication.md。

回调、监听器和隧道是操作员控制的共享基础设施:代理提供命令但从不启动它们,Vigil 不附带任何回退中继——中继由你自己运行。在 vigil install 之前配置它,这会保留此安装的中继槽位:

vigil config set oob.frp_host oob-relay.example.com   # also: oob.frp_port, oob.domain, oob.frp_token
vigil install                                        # reserves this install's relay slot
vigil oob start && vigil oob status --json
vigil oob client start example-agent --engagement <engagement-key> --agent vulnerability-analyst
vigil oob test

中继槽位、拒绝案例与边缘路由:docs/oob-routing.md。 载荷侧技巧: frp-tunneling.md 和 shell-handling.md。

命令参考

命令 用途
vigil quickstart 探测主机先决条件与侦察工具,打印设置检查清单。仅在 --install-host-tools 时安装主机工具。
vigil install [path] 就地安装或升级工作根目录。任务、数据库和 .env 均会保留。当 Kali 镜像缺失时构建它,因此需要运行中的 Docker 守护进程——--skip-image-check 无需守护进程即可同步。
vigil up 同步源码,构建过期镜像,启动本地栈。
vigil doctor 检查本地就绪状态与先决条件。遇到 FAIL 行时以非零状态退出;使用 --json 获取机器可读报告。
vigil status 报告实时服务状态。
vigil logs <target> [--lines N] 跟踪 orchestrator、runtime、mitmproxy、oob 或 all 的日志。
vigil runtime build | start | stop | restart | status | shell | shell-exec | resources 管理共享 Kali 运行时容器。
vigil orchestrator start | stop | restart | status | open | build 管理编排器后端与 UI。
vigil engagement create | list | start | open | path | current | cd-init | archive | export | export-pdf 创建并驱动任务。范围编辑(add-host、add-oos、set-header、add-track、set-rate-limit……)也在此处进行——vigil engagement --help。
vigil use <key> 为全局服务设置持久化的活动任务。
vigil assess ... 评估面——参见 docs/assessment-cli.md。
vigil remediation ... 进行中。独立的修复任务:Jira/赏金导入、from-finding 接收、共享修复发现链接、工作树、证据、审查与 PR 交接——参见 docs/remediation.md。
vigil blue ... 蓝队事件响应——参见 docs/blue-engagements.md。
vigil auth status | show | edit | clear | export | quarantine | import | alias | env-check | set-active | keepalive 在后端存储中管理任务凭据。
vigil mitmproxy start | stop | status | cert | build | reload | routes 管理共享 MITM 代理。
vigil oob start | stop | restart | status | routing | test | clean | mint | poll | client 管理共享 OOB 并渲染中继槽位边缘路由输入。
vigil config path | list | get | set | unset | edit 读写持久化 CLI 配置。
vigil backup create | list | show | restore 手动编排器数据库备份操作。
vigil email <mailbox> 在认证测试期间读取本地 Mail.app 测试邮箱以获取验证码。

每条命令都在 --help 下记录其完整标志集;运行时工具动词位于 vigil assess kali --help 下。

当命令名称变更时

重命名的动词在可以如实保留的情况下会保留旧拼写作为别名,并且 CHANGELOG.md 会记录两种拼写。较旧的审计行和记录保留实际运行的名称;如果某个名称在 --help 中缺失,请查看变更日志。

Vigil 附带完整的攻击性 Kali 运行时,并驱动自主专家代理针对实时目标。请相应对待。

  • 仅限授权目标。每个操作员启动提示都以明确的授权声明开头,任务范围固定在 scope.json 中。范围驱动侦察塑形、归因和覆盖核算;它不是目的地防火墙。仅针对你合同授权测试的主机和租户运行。
  • 漏洞利用工作受门控。默认漏洞利用策略为 pause——在任何漏洞利用开发者派发之前需明确的人工批准。策略(pause / selected / full_send)在 scope.json 中按任务设置,并通过操作员工作流强制执行。
  • 操作员控制的基础设施。隧道、监听器和 OOB 回调服务器由操作员启动,绝不由代理启动。
  • 蓝队写操作受审计。面向租户的 WRITE 和响应操作以 --require-audit 运行,遏制被拆分为提案批准、审计执行和显式记录。

私下报告漏洞——参见 SECURITY.md。

仓库布局与开发

路径 内容
src/vigil_cli/ vigil CLI:安装、运行时、编排器、任务、认证和 OOB。
agent/ 操作员与专家提示、阶段文档、规则、技能、参考库、vigil assess 脚本以及运行时 Dockerfile。
orchestrator/ 用于持久化运行状态、事件、工件、覆盖和阶段可见性的后端与前端。
tests/ CLI pytest 测试套件。后端测试位于 orchestrator/backend/tests/。
docs/ 深度参考、ADR 和计划。

扩展 Vigil 是一种贡献者工作流,记录在 维护者配方中:添加一项技能、一个 vigil assess 动词、一个确定性 oracle,或一个评估用例。请使用权威的 测试与验证矩阵。持久的设计决策保存在 docs/adr/ 中。要确认一个正在运行的安装是健康的,而不是贡献者测试套件,请使用 vigil doctor 和 vigil status。

来源:Hacker News · github.com