返回更新列表
新发布Sep 4, 2026

pentest-ai v1.4.0

开源 AI 渗透测试工具,可验证每项发现。机器预言机会重新运行每个漏洞利用;通过验证的漏洞会附带一个证据胶囊,供你自行复现。

分享

Pentest-AI:开源 AI 渗透测试。可复现的发现。

PyPI Python License: MIT

网站 · 快速开始 · 漏洞赏金 · 验证 · 文档 · 问题反馈

Pentest-AI 是一款开源的 AI 渗透测试与漏洞赏金工具,它将经过验证的发现与猜测严格区分开来。 它将 AI 客户端或模型接入真实的渗透测试工作流:调查 Web 应用、发现并复现漏洞,并使用机器预言机来验证漏洞利用是否真正有效。任何预言机无法证明的发现都会被标记为候选,而经过验证的发现则附带证明其有效的请求与响应。

你可以通过 MCP(Claude Code、Codex、Cursor、VS Code)、CLI 或 CI/CD 来使用它。模型负责驱动调查;独立的预言机决定一项发现是否获得已验证的判定,因此模型的猜测绝不会被伪装成结果。

专为授权漏洞赏金而构建: 每个项目对应一个配置文件,其中包含其范围、声明的速率以及你的研究员标识;试运行会在发送任何内容之前展示计划;报告草稿仅来自经过验证的发现。跳转到漏洞赏金工作流 →

仅测试你拥有或获得明确授权进行评估的系统。在开展测试之前,请阅读可接受使用政策和条款。

快速开始

推荐:Codex 或 Claude Code

使用 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 客户端后,请保持该环境可用。

替代方案:Ollama 和本地模型

按上述方式安装 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

该演示测试一个捆绑的易受攻击应用程序,回放其证明胶囊中的发现,并检查加固后的路由。在配置真实参与之前,请先检查证据工作流。

其他模型提供商

关于独立云模型和可选扫描器依赖项,请参阅安装指南和提供商指南。请将 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)。
  • gobuster 和 ffuf 等字典工具会被拒绝。两个内置的发现探测仍会尝试一组可能的路径,约 500 个请求。
  • 不会发送旨在耗尽或使目标崩溃的载荷。会更改其他用户账户或共享状态的探测不会运行。竞态条件突发仅在配置文件设置 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 下没有任何一秒超过声明的速率,包括外部工具发送的请求。

完整漏洞赏金指南 →

验证如何工作

只有当 oracle 重复利用并检查对照后,候选才会变为已验证。

  1. 发现候选。 探测或扫描器识别出值得调查的行为。
  2. 复现并检查对照。 指定的 oracle 重复利用,并与一个不应表现出该弱点的对照进行比较。
  3. 保留证据。 已验证的发现会记录 oracle、它发送的请求以及它判定的响应。ptai retest 再次扫描目标,ptai diff 显示变化。ptai demo 显示一个可移植的证明胶囊,ptai replay 会重新检查它。

例如,可信标头绕过必须在带有攻击标头时返回特权内容,并在没有该标头时拒绝访问。对每个请求都返回 HTTP 200 的服务器不足以作为证据。

模型无法授予已验证的判定。 第三方扫描器输出在 oracle 独立证明之前保持未验证。没有受支持的验证配方的发现仍为候选。

已验证的判定适用于所测试的条件。它并不意味着整个应用是安全的。证明胶囊未签名。重新运行检查才是信任机制。

阅读验证设计

你可以做什么

工作流Pentest-AI 提供什么
调查 Web 应用针对注入、访问控制、请求处理及其他应用弱点的探测
开展漏洞赏金项目将扫描限制在项目的范围和速率内,然后根据已验证的发现起草报告(指南)
通过 AI 客户端工作用于项目、调查和验证的 MCP 工具
复现发现Oracle 结果和可重放的证明胶囊
检查修复针对更新后的目标重新运行记录的检查
向团队报告用于现有工程工作流的报告和 SARIF 输出
将项目数据保留在本地发现存储在你机器上的 SQLite 中

覆盖范围因探针和 oracle 而异。可选扫描器需要各自的二进制文件,部分集成提供的是原始输出而非结构化发现结果。请查阅适用于你所使用版本的文档和变更日志;main 分支可能包含尚未发布的工作。

查看由 CI 检查的能力清单。

将已验证的发现结果接入 CI

在 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 集成上传生成的文件。

CI 设置与模板

证据、基准测试与限制

基准测试发现、挑战完成情况和 oracle 验证的发现是不同的度量。这些报告记录了其结果背后的版本、目标和方​​法论:

预期覆盖不完整。 没有已验证发现的扫描并不等于对应用程序所有行为的安全评估。身份验证、应用程序状态、不支持的缺陷类别和环境变化都会影响能够发现和复现的内容。请审查结果,并让人员参与 engagement。

数据与网络行为

发现结果存储在本地。匿名使用计数器通过 ptai telemetry enable 选择加入。

本地存储并不意味着每个操作都留在你的机器上:模型提供商调用和已安装的扫描器有其自身的网络行为。盲漏洞检查可以使用外部带外协作者;回调元数据对该服务可见。

在需要时使用你自己的协作者,或禁用回调:

ptai start https://your-authorized-target.example --oast-server https://your-collaborator.example
ptai start https://your-authorized-target.example --no-oast

参与贡献

对于可复现的缺陷,请使用 Issues;对于问题和想法,请使用 Discussions。有关构建和测试的说明,请参阅智能体与贡献者指南。

可选的 pentest-ai-agents 仓库包含 Claude Code 子智能体文件。

Pentest-AI 是基于 MIT 许可证 的开源项目。

分类