官方构建与已验证发布 | 开源 AI 渗透测试工具,为每一项发现提供证明。机器预言机重新运行每个漏洞利用;已验证的漏洞会附带一个可自行重放的证明胶囊。
官方开源发布与维护代码库,由 @kush-coder 维护

开源 AI 渗透测试工具,为每一项发现提供证明。机器预言机(oracle)会重新运行每个漏洞利用;经核实的漏洞会附带一个可自行重放的证明胶囊(proof capsule)。
本仓库由 @kush-coder 积极维护并作为官方开源版本发布。
# Clone your official repository
git clone https://github.com/kush-coder/autopilot-pentest-ai.git
cd autopilot-pentest-ai

网站 · 快速开始 · 漏洞赏金 · 验证机制 · 文档 · 问题反馈
Pentest-AI 是一款开源的 AI 渗透测试与漏洞赏金工具,它将经过验证的发现与猜测严格区分开来。 它将 AI 客户端或模型接入真实的渗透测试工作流:调查 Web 应用、发现并复现漏洞,并使用机器预言机(oracle)验证漏洞利用是否真正有效。任何预言机无法证明的发现都会被标记为候选,而经过验证的发现则附带证明其有效的请求与响应。
你可以通过 MCP(Claude Code、Codex、Cursor、VS Code)、CLI 或 CI/CD 使用它。模型负责驱动调查;独立的预言机决定某项发现是否获得已验证的判定,因此模型的猜测绝不会被伪装成结果。
专为授权漏洞赏金而构建: 每个项目对应一个配置文件,包含其范围、声明的速率以及你的研究员标识;试运行会在发送任何内容之前展示计划;报告草稿仅来自经过验证的发现。跳转到漏洞赏金工作流 →
使用 Python 3.10 至 3.14,并首先安装 pipx。如有需要,运行 pipx ensurepath 并重新打开终端。pipx 会隔离 Pentest-AI 的依赖,并使其命令可在各个文件夹中使用。
pipx install ptai
ptai setup --mcp
请先安装你的 AI 客户端的 CLI。安装程序在连接所有检测到的受支持客户端之前会先询问,包括已安装的 Codex 和 Claude Code。它会保留现有的注册信息。之后请重启你的客户端。
该向导使用用户级设置。它不会安装客户端、让你登录、下载模型或配置 Ollama。模型由你的 AI 客户端提供;MCP 服务器不需要单独的模型 API 密钥。使用 ptai setup --mcp --dry-run 可预览更改。有关 Codex .codex/config.toml 和 Claude Code .mcp.json 的说明,请参阅单客户端与按仓库设置。
升级时,请使用 pipx upgrade ptai。在已激活的现有虚拟环境中,也支持 python -m pip install --upgrade ptai;在将其注册到你的 AI 客户端后,请保持该环境可用。
按上述方式安装 Pentest-AI,但此路线跳过 MCP 设置。
安装并启动 Ollama,然后拉取一个支持工具调用的模型。使用 ollama list 查找其确切的已安装名称。
export PENTEST_AI_LLM_PROVIDER=ollama
export PENTEST_AI_MODEL="your-installed-model"
ptai start https://your-authorized-target.example --no-sync
在 PowerShell 中:
$env:PENTEST_AI_LLM_PROVIDER = "ollama"
$env:PENTEST_AI_MODEL = "your-installed-model"
ptai start https://your-authorized-target.example --no-sync
运行前请替换占位符。本地模型无需云 API 密钥。 模型质量和可用内存会影响结果。有关端点配置,请参阅 模型指南。
无需 API 密钥或外部目标。
pipx install ptai
ptai demo
该演示测试一个捆绑的易受攻击应用程序,回放其 proof capsule 中的发现,并检查加固后的路由。在配置真实参与之前,先检查证据工作流。
对于独立云模型和可选扫描器依赖项,请参阅安装指南和提供商指南。请将 API 密钥排除在源代码管理之外。
漏洞赏金模式适用于允许自动化测试的项目。你为每个项目编写一个
配置文件,包含其范围、声明的速率以及你的研究员标识。
随后 --program 会将所有这些应用到每个请求,而 --dry-run 会打印
计划而不发送任何内容。
# ~/.pentest-ai/programs/acme.toml
platform = "hackerone"
handle = "acme"
researcher = "your-h1-username" # sent on every request in X-Bug-Bounty
rps = 5.0 # the rate the program states
scope = ["*.acme.com", "api.acme.com"]
excluded = ["status.acme.com"]
scanners_allowed = true
allow_race = false
ptai start https://api.acme.com --program acme --dry-run # sends nothing
ptai start https://api.acme.com --program acme --auto-auth
ptai bounty-report <engagement-id> --program acme --output-dir drafts/
在 --program 下:
X-Bug-Bounty 中携带你的研究员标识,或在程序指定的请求头中携带(PTAI_BOUNTY_HEADER_NAME)。allow_race = true 时运行。429 和 Retry-After 会被遵守。变慢的目标会获得更低的速率,而持续降级的目标会停止扫描并记录原因。yes,因为扫描它可能使安全港失效。ptai bounty-report 仅根据 oracle 验证的发现起草报告,复现步骤取自 oracle 自身的请求。请手动复现每一个并自行提交。ptai bounty import 将程序导出的范围文件转换为配置文件的允许和排除条目。
实际耗时等于请求数除以速率。在我们的测试应用上,以 3 rps 完整扫描约 8,700 个请求,耗时 51 分钟,并能找到 10 rps 扫描找到的所有严重和高危问题。在 10 rps 下约为 6,600 个请求和 11 分钟,这是在慢速探测在低速率下有足够时间完成之前测得的。
按到达时间统计,在 3 或 10 rps 下没有任何一秒超过声明的速率,包括外部工具发送的请求。
ptai retest 再次扫描目标,ptai diff 显示变化。ptai demo 显示一个可移植的证明胶囊,ptai replay 会重新检查它。例如,受信任请求头绕过必须在携带攻击请求头时返回特权内容,并在不携带时拒绝访问。对每个请求都返回 HTTP 200 的服务器不足以作为证据。
模型无法授予已验证的判定。 第三方扫描器输出在 oracle 独立证明之前保持未验证。没有受支持的验证配方的发现仍为候选。
已验证的判定适用于所测试的条件。它并不意味着整个应用是安全的。证明胶囊未签名。重新运行检查才是信任机制。
| 工作流 | Pentest-AI 提供什么 |
|---|---|
| 调查 Web 应用 | 针对注入、访问控制、请求处理及其他应用弱点的探测 |
| 执行漏洞赏金任务 | 将扫描限制在程序的范围和速率内,然后根据已验证的发现起草报告(指南) |
| 通过 AI 客户端工作 | 用于任务、调查和验证的 MCP 工具 |
| 复现发现 | Oracle 结果和可重放的证明胶囊 |
| 检查修复 | 针对更新后的目标重新运行记录的检查 |
| 向团队报告 | 用于现有工程工作流的报告和 SARIF 输出 |
| 将任务数据保留在本地 | 发现存储在您机器上的 SQLite 中 |
覆盖范围因探针和 oracle 而异。可选扫描器需要各自的二进制文件,部分集成提供的是原始输出而非结构化发现结果。请查阅适用于你所使用版本的文档和变更日志;main 分支可能包含尚未发布的工作。
在 CI 环境中配置你的模型提供商、一个已授权的目标以及首次运行同意。请将密钥保存在 CI 提供商的密钥存储中。
ptai start https://your-authorized-target.example --ci --fail-on verified --no-sync
使用运行中的 engagement ID 导出已验证的发现:
ptai export YOUR_ENGAGEMENT_ID --sarif pentest.sarif
--sarif 是一个导出选项,而不是 ptai start 的选项。如果你需要为失败的构建保留证据,即使发现门禁失败,也要保留 engagement ID 并运行导出。通过你的 CI 提供商的 SARIF 集成上传生成的文件。
基准测试发现、挑战完成情况和 oracle 验证的发现是不同的度量。这些报告记录了其结果背后的版本、目标和方法论:
预期覆盖不完整。 没有已验证发现的扫描并不等于对应用程序所有行为的安全评估。身份验证、应用程序状态、不支持的缺陷类别和环境变化都会影响能够发现和复现的内容。请审查结果,并让人员参与 engagement。
发现结果存储在本地。匿名使用计数器通过 ptai telemetry enable 选择加入。
本地存储并不意味着每个操作都留在你的机器上:模型提供商调用和已安装的扫描器有其自己的网络行为。盲漏洞检查可以使用外部带外协作者;回调元数据对该服务可见。
在需要时使用你自己的协作者,或禁用回调: