
pentest-ai v1.2.0
开源 AI 渗透测试工具,可验证每项发现。机器预言机会重新运行每个漏洞利用;通过验证的漏洞会附带一个证据胶囊,供你自行复现。
ptai 是一款 AI 驱动的渗透测试工具,每次都会重新运行漏洞利用以确认结果。它会执行侦察、登录,并将发现串成多步骤攻击链,但它不会让你盲信这些结果。就像 TruffleHog 通过用泄露的密钥登录来确认它一样,ptai 通过重新运行漏洞利用来确认一个 Web 发现:一个发现会一直保持候选状态,直到机器预言机 N 次复现中的 N 次全都成功,只有这时它才获得 VERIFIED 徽章。第三方扫描器输出(nuclei、nikto、zap)也会被保留,直到预言机重新证明它们。扫描器噪声会让团队习惯于无视自己的工具,因此报告中只包含 ptai 能够证明的内容,每一条 VERIFIED 发现都附带一个便携式证明胶囊,你可以自己重放验证。
目前 14 类漏洞已获得预言机验证。在一个故意存在漏洞的测试蜜罐上,23 条发现跨这些类别验证,精确率 100%,零误报。在一个标准 OWASP Juice Shop 上,单次扫描即可验证 12 条。在你的笔记本上即可运行。无云端,无遥测。
看看它的实际效果
扫描一个标准 OWASP Juice Shop:单次扫描内 12 条发现获得预言机验证。发现是真实的;演示节奏为便于观看而做了调整。
自己花两分钟复现这个核心概念,无需自备目标:```bash pip install ptai && ptai demo
`ptai demo` 扫描一个内置的易受攻击应用,报告 `4 findings, 4 oracle-VERIFIED`,从证明胶囊中实时重放一个(`replay 3/3`),然后以加固状态运行相同路由并报告 `0 findings`。两次运行之间唯一改变的是修复,因此发现随漏洞出现和消失,而不是因为工具不再发声。两分钟即可,无需 API 密钥,也无需自己的目标。你可以用 `ptai replay` 自行重新证明任何胶囊。
> **诚实的数字。** 蜜罐运行(14 个类别中验证 23 个,100% 精确率,零误报)和 Juice Shop 运行(一次扫描中验证 12 个)是个别可复现的基准,而非实际环境中的误报率。oracle 门控换来的是精确率,而不是检出率:它去除误报,但不会提高检测能力。Juice Shop 是互联网上被研究最多的易受攻击应用,因此将其原始数量视为广度,将已验证数量视为精确率的故事;而我们自己编写漏洞的蜜罐,才是诚实的信号。蜜罐测试框架(`tests/honeypot/`)和干净应用零误报门禁(`tests/cleanapp/`)都随仓库发布,因此这些声明是可复现的,而不是截图。
## 1.1.0 新特性
验证覆盖率大约翻了一番,而且扫描不再对在运行中途被它打趴下的目标报告零发现。每个 VERIFIED 发现都来自一个具名的机器 oracle,而非 LLM 的断言,这一点在代码中强制执行:无法指明其 oracle 的判定会被拒绝。此版本新增:
- **十个新的 oracle 类(共 14 个)。** 可信头绕过、JWT `alg:none`、Host 头投毒、XXE、类型混淆、存储型 XSS、顺序 IDOR、批量赋值、非盲 SSRF 和 SQLi 登录绕过,加入了 SQLi(布尔/盲注)、BOLA/IDOR、反射型 XSS、开放重定向和路径遍历。每个 oracle 都有一个必须在安全目标上失败的控制用例,因此不受漏洞影响的应用会弃权,而不是获得徽章。
- **验证韧性。** 一次激进的扫描可能把一个脆弱的单容器目标打挂,此后验证阶段会在所有 oracle 上失败,尽管存在有效且可重放的配方,仍报告 0。现在它会等待目标重新响应后才再次证明,这让 OWASP Juice Shop 扫描从 0 提升到 12 个 oracle 验证。
- **范围安全。** 主动工具(sqlmap、dalfox)会被锁定到授权目标的主机;扫描不再将页面内容中抓取到的第三方 URL 提供给攻击工具。
- **可移植的证明胶囊**,配有 `ptai replay`,一个实时 TUI,可在屏幕上将判定翻转为 VERIFIED,以及一个 CI 门禁(`--fail-on verified`),仅在出现经证实的发现时使构建失败。
## 在真实目标上:OWASP Juice Shop
指向一个原版 OWASP Juice Shop 时,ptai **在单次扫描中 oracle 验证 12 个发现**:受保护端点接受 JWT `alg:none`、BOLA 跨用户读取、顺序 IDOR,以及类型混淆,每一个都由机器 oracle 重新证明,而非断言。它检测到的多于验证到的(`/rest/user/login` 上的 SQLi 认证绕过、`/rest/products/search` 上的 UNION SQLi、泄露 `/etc/passwd` 的 XXE、批量赋值、密码重置绕过);只有已验证的子集进入报告。可以通过 MCP 在 Claude Code 中驱动它,无需 API 密钥,也可以独立使用。
> **诚实性说明。** Juice Shop 是互联网上文档最齐全的易受攻击应用,因此 LLM 与探测作者都拥有先发优势。面对新目标时,检出率取决于精选探测库的覆盖范围(如今有 60+ 个 Web 探测,每个版本都在增加);LLM 负责协调并对结果进行推理,它不会取代探测。位于 `tests/honeypot/` 的私有蜜罐测试框架衡量对我们自己编写的漏洞的覆盖率,并在 CI 中进行断言(`tests/honeypot/test_mcp_honeypot_e2e.py`);其数字低于 Juice Shop,而这正是重点。我们两者都发布。请参阅完整的 [Juice Shop 基准测试对比 ZAP / Nuclei / HexStrike](https://github.com/0xsteph/pentest-ai/blob/HEAD/docs/benchmarks/juice-shop.md)。
## 安装```bash
pip install ptai
路径 1:通过 Claude Code 驱动(无需 API 密钥)
如果你已经为 Claude Pro / Max / Team 付费,你的订阅就是 LLM。将 ptai 作为 MCP 服务器接入:```bash claude mcp add pentest-ai -- ptai mcp
重启 Claude Code,然后询问:
> *"运行一次针对 staging.acme.com 的认证渗透测试。登录入口在 /login,密码在 $APP_PASS 中。"*
> **网络流量去向**:ptai 的工具和探测在你的目标上本地执行。你的提示词以及 Claude Code 读取的工具输出会经由 Anthropic 的 API 传输,与任何 Claude Code 会话相同。如果你需要物理隔离路径,请参阅路径 3(Ollama / 本地 LLM)。
Claude Code 通过以下 MCP 工具驱动 ptai(目前有 47 个):
- `list_tools` / `run_tool`:列出并调用 200+ 个封装安全工具中的任意一个
- `plan_tools` / `ensure_tools_installed`:获取一次任务的规范工具列表,批量安装
- `list_probes` / `run_probe`:针对 OWASP Top 10 漏洞类别的 60 个 SPA 感知探测
- `http_request`:在严格的范围防护下发送原始 HTTP,用于新颖攻击链
- `start_engagement` / `get_findings` / `get_attack_chains`:任务记录
- 以及 `test_web_app`、`test_active_directory`、`test_cloud`、`test_api_security` 等其余工具
### 路径 2:其他 MCP 客户端(Cursor、VS Code Copilot、Codex、Claude Desktop)```bash
ptai setup --mcp
自动检测你已安装的每个 MCP 兼容客户端,并写入它们的配置文件。重启客户端后,同样的 47 个工具就会出现在那里。
Path 3:没有 MCP 客户端时的独立 CLI
如果你在使用 Claude Code、Cursor、Codex 或 Claude Desktop,请使用上面的路径 1 或路径 2,并跳过本节。那里不需要 API 密钥。
路径 3 适用于 CI/CD 流水线、定时 cron 任务、隔离终端以及没有 MCP 客户端的用户。独立 CLI 本身没有 LLM,因此你需要通过环境变量提供一个:```bash export ANTHROPIC_API_KEY=sk-ant-... # Claude (best results)
or
export OPENAI_API_KEY=sk-... # OpenAI
or, fully local, no cloud
export PENTEST_AI_LLM_PROVIDER=ollama # Ollama (default localhost:11434)
or, any of 300+ models via LiteLLM (OpenRouter, Azure, DeepSeek, Groq, Mistral, ...)
pip install litellm
ptai start https://your-target.com
正在使用 OpenAI 兼容的端点(DeepSeek cloud、Groq、Together AI、vLLM 等)?设置 `OPENAI_BASE_URL` + `PENTEST_AI_MODEL`,并使用 openai provider。每个 provider 的完整配方——包括自定义模型名称、故障排查以及 LiteLLM-300+ 列表——位于 [`docs/llm-providers.md`](https://github.com/0xsteph/pentest-ai/blob/HEAD/docs/llm-providers.md)。
#### 支出上限(仅限路径 3)
独立的代理循环驱动其自身的 LLM,因此失控的循环会花费真金白银。ptai 默认将每次参与的花费上限设为 **10 美元**。普通的 Sonnet 4.6 Web 应用扫描配合提示缓存,通常远低于该上限;而 Opus 4.7 深度运行可能会超过它。
通过环境变量更改它(没有 CLI 标志 - 环境变量是唯一的控制项):```bash
export PTAI_PRICE_LIMIT=25 # raise to $25
export PTAI_PRICE_LIMIT=0 # unlimited (logs a warning)
unset PTAI_PRICE_LIMIT # back to the $10 default
如果上限在任务中途触发,该任务会被标记为 aborted_cost_limit,并且其检查点会被保留。提高上限并从停止处恢复:```bash
export PTAI_PRICE_LIMIT=25
ptai resume <engagement_id>
Paths 1 和 2(MCP)不使用此上限——您的 AI 客户端(Claude Code、Cursor 等)自行处理其 LLM 计费。
### 安装安全工具
ptai 封装了 200 多个外部工具。有三种方式将它们安装到机器上:```bash
# 1. Zero-config (recommended). At engagement start, the planner predicts
# which tools the LLM will need and asks ONCE to install the missing
# ones. Decline once and the answer persists in
# ~/.pentest-ai/install-preferences.json.
ptai start https://target.example.com
# 2. Batch install upfront. Skips the engagement-time prompt entirely.
ptai setup --tier core # ~6 essentials, ~30s
ptai setup --tier recommended # + fuzzers, crawlers, password tools, ~5m
ptai setup --tier full # everything, ~30m
# 3. Install specific tools by name.
ptai setup --per-tool wpscan,dalfox,paramspider
ptai setup --wizard # interactive picker
In non-interactive contexts (PTAI_NON_INTERACTIVE=1 or no TTY) ptai uses what's on PATH and logs (rather than prompts) for anything missing.
其他路径:REST API、MCP 组合、HITL 远程操作、云工作区、公共基准测试
HTTP REST API(用于仪表板和集成)
加载其他 MCP 服务器作为工具源
将 hexstrike 或任何其他兼容 MCP 的安全服务器组合使用。编辑 ~/.pentest-ai/mcp_servers.json:```json
{
"servers": [
{"name": "hexstrike", "command": "python3 hexstrike_mcp.py", "transport": "stdio"}
]
}
### 运行中接管(HITL 远程操作)
当一次测试活动正在运行时,在 600ms 内连续按两次 `Ctrl+C` 即可暂停编排器并进入 REPL:`step`、`inspect findings`、`inject <instruction>`、`skip`、`resume`、`abort`。当前的 LLM 并非完全自主。在关键时刻,由操作员做出最终决定。
### 公开基准测试
可复现的解决率测量数据位于 [`benchmarks/`](https://github.com/0xsteph/pentest-ai/blob/HEAD/benchmarks/) 中:```bash
./benchmarks/scripts/run_all.sh # writes JSON per run + RESULTS.md
规格、测试平台与结果全部存放于 git 中。与 ZAP / Nuclei / HexStrike 的完整 Juice Shop 对比见 docs/benchmarks/juice-shop.md。不存在你无法审计的“98.7% 检测率”宣称。
云工作区(Pro / Team / Enterprise)
CLI 永久免费,所有数据均保存在本地。如需项目历史、带品牌标识、可直接交付客户的 PDF 报告以及团队协作,可将 CLI 关联到 app.pentestai.xyz 工作区:```bash
Sign up, then Dashboard -> API Keys -> Generate -> copy ptai_...
ptai auth login # paste the key (hidden prompt) ptai auth status # confirm link
or use an env var for CI:
export PENTESTAI_API_KEY=ptai_...
`ptai start` 在认证后会自动将发现结果同步到你的云端工作区。无云端 = 无调用;除非你登录,否则集成会静默关闭。
### 完全无 LLM(交互式启动器)```bash
ptai menu
数字分类导航、搜索(/term)、标签过滤(t web)、基于关键词的推荐。实际测试仍通过 ptai start 进行,并需完整确认范围。
为何与众不同
| 🤖 LLM 协调,而非依赖 LLM | 17 个智能体覆盖侦察、Web、API、AD、云、移动、无线、浏览器、凭据、提权、漏洞扫描、链式利用、PoC、检测、报告、社会工程学和 LLM 红队。LLM 负责运行阶段循环并对结果进行推理;漏洞检测由精选的确定性探测库完成。即使不设置 API 密钥,相同的探测仍会运行。LLM 负责协调,而非扫描。 |
| 🔓 MCP 路径无需 API 密钥 | Claude Code / Cursor / Codex 用户可通过 MCP 使用其现有订阅来驱动 ptai。200+ 工具包装器和 60 个探测无需 Anthropic 密钥即可被 LLM 调用。独立 CLI(ptai start --agent-mode)才是需要 API 密钥的场景;这适用于不使用 MCP 的 Codex、CI 和隔离网络路径。 |
| 🔐 它能登录 | 大多数扫描器在登录页就止步了。这个工具会保持会话,在凭据过期时刷新,所有下游工具都会继承该 cookie。认证配置文件存储的是引用(环境变量、op://、Vault 路径、AWS Secrets Manager ARN),而非实际值。 |
| 🧪 每项发现都经过验证 | 针对目标运行非破坏性的概念验证。不再需要从嘈杂的扫描器中筛选 40 个可能的问题。 |
| ⚡ CI 原生 | GitHub Action、严重性门禁、SARIF 输出、PR 评论。将其放入你的工作流文件中,它就会在下一次 PR 时运行。 |
| 💾 在你的笔记本上运行 | MIT 许可,无云端调用。可搭配 Ollama 离线运行。检测结果保留在你的磁盘上。 |
工作原理```
┌─────────────────────────────────────────────────────────────┐ │ ptai start │ └─────────────────────────────────────────────────────────────┘ │ ┌──────────────────┼──────────────────┐ ▼ ▼ ▼ ┌────────┐ ┌────────┐ ┌─────────┐ │ recon │ -> │ auth │ -> │ web │ └────────┘ └────────┘ └─────────┘ │ ┌────────────────────────────────────┤ ▼ ▼ ┌────────┐ ┌─────────┐ │ ad │ ┌──────────────────┐ │ cloud │ └────────┘ │ Findings DB │ └─────────┘ │ │ (sqlite + evidence)│ │ └───────▶│ scope-guarded │◀──────┘ │ deduplicated │ └──────────────────┘ │ ┌────────────┼────────────┐ ▼ ▼ ▼ ┌──────┐ ┌─────────┐ ┌──────────┐ │chain │ │validate │ │ detect │ └──────┘ └─────────┘ └──────────┘ │ ▼ ┌──────────┐ │ report │ md · html · pdf · SARIF · JUnit └──────────┘
当你设置了密钥时,每个智能体都会由 LLM 驱动运行;未设置时,则以确定性工具循环运行。无论采用哪种方式,阶段顺序都相同。
## 智能体
| 智能体 | 阶段 | 功能 |
|---|---|---|
| `recon` | 1 | 端口扫描、DNS 与子域枚举、服务指纹识别 |
| `web` | 2 | 经过身份验证的 OWASP 测试指南 v4 测试 |
| `api_security` | 2 | OpenAPI/GraphQL/REST 攻击面分析、OWASP API Top 10 |
| `browser` | 2 | Playwright 驱动的 DOM 分析、XHR 捕获、安全标头评级 |
| `ad` | 3 | AD 枚举、Kerberoasting、BloodHound 路径查找、委派滥用 |
| `cloud` | 4 | AWS、Azure、GCP IAM、错误配置、K8s RBAC、无服务器 |
| `credential_tester` | 4 | 密码喷洒、撞库、MFA 绕过检查 |
| `privesc` | 5 | 基于收集到的上下文提供本地与横向权限提升建议 |
| `vuln_scanner` | 5 | 对照发现数据库的跨领域漏洞聚合 |
| `exploit_chain` | 6 | 将各项发现关联为多步骤攻击路径 |
| `poc_validator` | 7 | 针对每个发现的非破坏性概念验证 |
| `detection` | 8 | 面向蓝队的 Sigma、SPL、KQL 规则 |
| `report` | 9 | Markdown、HTML、PDF、SARIF、JUnit、合规性映射 |
| `llm_redteam` | opt | OWASP LLM Top 10 探测 |
| `social_engineer` | opt | 钓鱼邮件语料库与借口生成 |
| `mobile` | opt | Android/iOS 静态与动态检查 |
| `wireless` | opt | 无线侦察与握手包捕获 |
## 行动手册
你的方法论以文件形式呈现。提交到 git 中进行版本管理。与你的团队共享。```yaml
name: internal-ad-pentest
inputs:
domain: { required: true, prompt: "AD domain" }
dc_ip: { required: true, prompt: "DC IP" }
phases:
- id: recon
tools: [nmap, masscan]
- id: ad-enum
depends_on: [recon]
condition: "any_finding(type='open_port', port=445)"
tools: [enum4linux, ldapsearch, bloodhound-python]
- id: kerberoast
requires_finding: { type: ad_user_enumerated }
tools: [impacket-getuserspns]
llm_decide: true # let the LLM skip if context says useless
(无输入内容)```bash ptai playbook list # show installed playbooks ptai playbook show web-app-quick # preview before running ptai playbook run ./my-ad.yaml # execute
默认内置五个 playbook。社区目录即将推出。
## 将其放入你的 CI```yaml
# .github/workflows/security.yml
name: Security scan
on: [pull_request]
jobs:
ptai:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: pip install ptai
- run: |
ptai start ${{ vars.STAGING_URL }} \
--ci \
--fail-on high \
--sarif pentest.sarif
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
- uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: pentest.sarif
将发现结果作为 PR 评论发布,SARIF 上传到 GitHub Code Scanning,并且当严重级别达到门禁时构建失败。GitLab CI 和 Jenkins 模板以及高级选项(CI 中的认证配置文件、成本门禁、范围文件)-> docs/ci-cd.md。
基准测试
ptai 的设计是为 SPA 渗透测试量身定制,具有精选的探测覆盖。在 OWASP Juice Shop 上,已发布的 4 工具对比矩阵 显示:
| 工具 | 发现数 | 严重+高危 | OWASP Top 10 类别 | 误报率 |
|---|---|---|---|---|
| ptai 0.13.0 | 88 | 46 | 5 | 0% |
| ZAP 2.17.0 | 593 | 0 | 1 | 47% |
| Nuclei 3.8.0 | 1 | 0 | 1 | 0% |
| HexStrike v6.0 | 11 | 0 | 1 | - |
n=1 单一评估者、单次运行。方法论和原始产物位于 benchmarks/results/2026-05-12/juice-shop/。诚实地说:ptai 在具有精选探测覆盖的 SPA Web 渗透测试方面更出色。HexStrike 覆盖更广(云、二进制、CTF),在传统可爬取表面(如 WordPress)上可能胜过 ptai。未来版本将扩大对比范围。
近期研究背景:完全自主的 LLM 渗透测试代理能端到端完成 21-31% 的任务;人工辅助的设置可达 64%(ARTEMIS、DARPA AICC Atlantis、xOffense)。ptai 专为人工辅助模式而生:LLM 对结果进行推理,精选探测负责检测,按两次 Ctrl+C 即可让操作员接管。
与同类工具对比
ptai | Hexstrike | ZAP | Nuclei | Burp Pro | PentestGPT | |
|---|---|---|---|---|---|---|
| 通过 MCP 驱动 LLM(无需 API 密钥) | ✓ | ✓ | ||||
| 在范围保护下由 LLM 合成的 HTTP | ✓ | 部分 | ||||
| 通过 MCP 进行认证扫描 | ✓ | 部分 | 部分 | 原始 HTTP | ✓ | |
| 漏洞利用链 | ✓ | 部分 | 部分 | |||
| 非破坏性 PoC 验证 | ✓ | 部分 | ||||
| 存储型注入链(POST -> GET 验证) | ✓ | 手动 | 部分 | 手动 | ||
| 精选探测(专业化,非模板驱动) | 60 | 工具封装驱动 | 规则驱动 | 8000+ 模板 | 手动 + 扫描 | - |
| 封装的 CLI 安全工具 | 200+ | 150+ | - | - | - | - |
| 工具安装向导 | 核心/推荐/完整 + 单工具 | - | n/a | n/a | n/a | - |
| 参与开始时智能安装 | ✓ | |||||
| CI 原生(SARIF + 严重性门禁) | ✓ | 部分 | 部分 | 部分 | ||
| LLM 红队探测 | ✓ | |||||
| YAML 剧本 | ✓ | 模板 | ||||
| 许可证 | MIT | MIT | Apache-2.0 | MIT | 商业 | MIT |
内部组成
- 17 个代理,涵盖侦察、Web、API 安全、AD、云、移动、无线、浏览器、凭据测试、提权、漏洞扫描、漏洞利用链、PoC 验证、检测、报告、LLM 红队、社会工程学
- 60 个精选 Web 探测,覆盖 OWASP Top 10 + API Top 10
- 200+ 工具封装,支持自动安装:nmap、masscan、nuclei、ffuf、sqlmap、gobuster、wapiti、nikto、dalfox、xsstrike、wpscan、hydra、hashcat、enum4linux、bloodhound-python、impacket 套件、trufflehog、gitleaks、kube-hunter、trivy、prowler、scout-suite 等
- 4000+ Nuclei 模板 集成,用于原子化漏洞检测
- 47 个 MCP 工具,用于 LLM 驱动的参与,包括
plan_tools/ensure_tools_installed,可让外部 LLM 在无需 Anthropic API 密钥的情况下批量安装工具 - 300+ LLM 模型,通过 LiteLLM 提供商(Anthropic、OpenAI、Ollama 直连;Azure、OpenRouter、DeepSeek、Groq、Mistral、Together AI、Bedrock、Vertex AI、Cohere 通过 LiteLLM)
- HTTP REST API + WebSocket 接口(
ptai serve),用于非 MCP 集成 - 本地 Web 仪表盘,包含实时参与视图、发现表、攻击链可视化、SARIF 导出
- 浏览器自动化代理,支持截图捕获、DOM 分析、网络捕获、安全标头评级(由 Playwright 驱动)
- 人在回路远程操作(按两次 Ctrl+C 在参与中途接管)
- MCP 客户端 能力,可加载外部 MCP 服务器作为工具源
- 公开可复现的基准测试框架,位于
benchmarks/。数字、代码、原始产物,全部在 git 中。 - 6 种输出格式:Markdown、HTML、PDF、SARIF 2.1.0、JUnit XML、合规映射(OWASP、CWE、CVE、CVSS v3.1)
- 2,400+ 测试,CI 覆盖 Python 3.10、3.11、3.12、3.13
- MIT 许可证,100% 属于你
谁用它做什么
应用安全团队。 将 ptai 接入你的 CI。每个针对 staging 的 PR 都会获得一次认证扫描。高危发现会导致构建失败。修复 -> 重测 -> 确认的循环会自动运行。
顾问。 设定一个为期一周的参与,将 ptai 指向目标列表,把时间花在需要人工的部分:分析发现、选择要演示的攻击链、与客户沟通。报告会自动生成。
漏洞赏金猎人。 吃早餐时运行它。回来时你会得到一份带 PoC 的已验证发现列表,可直接粘贴到 HackerOne。
红队成员。 将你的 AD 方法论编码为 YAML 剧本。每个新参与都会运行它。同样的方法论,团队共享。
Claude Code / Cursor / Codex 用户。 将 ptai 添加为 MCP 服务器。用自然语言让助手运行一次扫描。你现有的订阅支付 LLM 费用;ptai 提供工具。
交付 AI 功能的开发者。 对你的聊天机器人启用 --enable-llm-redteam。几分钟内获得一份 OWASP LLM Top 10 报告。
负责任的使用
pentest-ai 是进攻性安全工具。它会对您指定的目标执行真实的网络和主机操作。您全权负责确保您拥有对每个目标进行测试的明确书面授权。
通过安装或运行 ptai,您同意可接受使用政策和服务条款。未经书面授权测试您不拥有的系统可能违反《计算机欺诈和滥用法》、《1990 年计算机滥用法》、GDPR 第 32 条以及您所在司法管辖区的相关规定。滥用行为由您自行承担全部责任。
首次运行时,会提示您确认接受 AUP,并将选择持久化到 ~/.pentest-ai/aup-consent.txt。在 CI 中设置 PENTEST_AI_AUP_ACCEPTED=1 可非交互地跳过该提示。
启动时 ptai 会加载范围文件。超出范围的主机在工具调用时会被拒绝。PoC 默认是非破坏性的。在隐身模式下速率限制会自动生效。别做那样的人。
带外回调(OAST) - 隐私
ptai 通过发出负载来检测盲漏洞类(盲 SSRF、盲 SQLi、盲 XXE、盲存储型 XSS、SSTI、Log4Shell),当这些负载在服务端触发时,会呼叫带外协作服务器。默认情况下,回调路由到 ProjectDiscovery 的公共 oast.fun 基础设施。
哪些内容会落到协作服务器上,谁能读取。 每次参与都会在您的本地 ptai 进程中生成一个新的 RSA-2048 密钥对。交互负载(协作服务器接收到的原始 HTTP 请求、DNS 查询、SMTP 信封)在服务端静态存储时使用 AES-CTR-256 加密,AES 密钥使用您的参与公钥通过 RSA-OAEP-SHA256 封装。只有持有匹配私钥的一方——您的本地 ptai 进程——才能解密它们。 ProjectDiscovery(或任何运营该协作服务器的一方)无法读取交互内容。但是,元数据对服务器可见:发生交互的事实、调用目标源的 IP、时间戳和协议。
何时自行托管。 PortSwigger 明确禁止在其漏洞赏金参与规则中使用公共 Burp Collaborator,大型企业项目(Meta、Apple、金融行业)也越来越要求回调基础设施终止于测试者控制的主机上。对于付费参与,请运行您自己的 Interactsh 服务器(Apache-2.0,单个 Go 二进制文件),并将 ptai 指向它:```bash ptai start http://target --oast-server https://oast.example.com --oast-token
**要完全禁用 OAST:**```bash
ptai start http://target --no-oast
关闭 OAST 时不会检测盲漏洞类别;带内检测路径(大小差异 / SQL 错误标记 / 元数据签名 / 基于时间)仍会运行。
生态系统
| 仓库 | 说明 |
|---|---|
| pentest-ai | 本仓库。CLI 和 MCP 服务器。Python 产品。 |
| pentest-ai-agents | 独立的 Claude Code 子代理 Markdown 文件。可选,无需此 CLI 即可运行。 |
需要共享工作区、品牌化 PDF 报告、SSO 或托管式渗透测试项目?网站 提供 Pro / Team / Enterprise 仪表板以及一次性 Launch Engagement 选项。OSS 工具始终保持 OSS,永久免费。
社区
- Discord: 加入服务器。聊天、获取帮助、分享发现、潜水。
- 问题、想法、反馈: GitHub Discussions
- Bug 报告: GitHub Issues
- 展示与分享: 在 展示与分享 中发布
ptai给你的最离谱的发现。
FAQ
我需要 API 密钥吗? 在 MCP 路径上不需要。如果你从 Claude Code、Cursor、Codex 或 Claude Desktop 驱动 ptai,你现有的订阅就是 LLM。只有在独立 CLI(路径 3)上才需要密钥,即使在那里,你也可以使用 Ollama 完全本地运行。参见 安装。
它真的自主运行,还是需要我盯着? 你始终在回路中。ptai 是 LLM 协调的,并非自主运行——精选的探针负责检测,LLM 对结果进行推理,而你拥有最终决定权。运行中按两次 Ctrl+C 即可接管。完全自主的 LLM 智能体端到端完成 21-31% 的渗透测试任务;人工辅助方案可达 64%,而 ptai 正是为第二种模式打造的。
把它指向生产环境安全吗? 只有在获得书面授权且开启防护措施的情况下才安全:intensity=safe 跳过状态变更探针,respect_rate_limits 遵循 429 / Retry-After,strict_scope 拒绝非目标主机请求并停止跟随重定向。这三项默认关闭,所以请开启它们。参见 负责任使用。
为什么 Juice Shop 的数字高而蜜罐的数字低? Juice Shop 是互联网上文档记录最完善的易受攻击应用,因此 LLM 和探针作者都有先发优势。私有蜜罐衡量的是我们自己编写的漏洞,所以数字较低——而这个较低的数字才是诚实的信号。我们两者都发布。参见 基准测试。
它会向外部回传数据吗? 没有遥测,发现结果保留在你的磁盘上。在 MCP 路径上,你的提示词和 AI 客户端读取的工具输出会通过该客户端的 API 传输,与任何会话一样。盲漏洞检测(OAST)默认向公共 oast.fun 发送回调——内容使用本地密钥对加密,但回调发生的事实以及源 IP 和时间戳对运行 collaborator 的任何人可见。自行托管 Interactsh 或使用 --no-oast 运行可避免这种情况。参见 负责任使用。
运行成本是多少? 在 MCP 路径上,除了你的 AI 订阅(自行处理计费)外,没有任何额外费用。在独立 CLI 上,ptai 默认将每次渗透测试的花费上限设为 10 美元;可通过 PTAI_PRICE_LIMIT 更改。参见 安装。
这与直接使用 Claude 或 PentestGPT 有什么不同? 精选的确定性探针库负责发现漏洞;LLM 运行阶段循环并推理结果,它不进行扫描。这就是为什么发现结果可复现并附带可用的 PoC,而不是 LLM 的猜测。参见 为何不同 和 与同类工具对比。
Star 历史
许可证
MIT。你想怎么用就怎么用。
如果 ptai 帮你省下了一个周日,请为仓库点个 Star。这是我所要求的唯一回报。