返回更新列表
新发布Aug 5, 2026

pentest-ai v1.2.0

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

分享
pentest-ai

pentest-ai

这款渗透测试工具能够证明其发现。无需预言机,无需徽章。

PyPI Python CI License Stars MCP Toplist Discord

网站 · 安装 · 为什么需要验证 · 文档 · 基准测试 · 智能体 · Discord

⚠️ 攻击性工具,仅限授权测试。 安装即表示你接受 AUP条款。全文见 负责任使用 ↓

ptai 是一款 AI 驱动的渗透测试工具,每次都会重新运行漏洞利用以确认结果。它会执行侦察、登录,并将发现串成多步骤攻击链,但它不会让你盲信这些结果。就像 TruffleHog 通过用泄露的密钥登录来确认它一样,ptai 通过重新运行漏洞利用来确认一个 Web 发现:一个发现会一直保持候选状态,直到机器预言机 N 次复现中的 N 次全都成功,只有这时它才获得 VERIFIED 徽章。第三方扫描器输出(nuclei、nikto、zap)也会被保留,直到预言机重新证明它们。扫描器噪声会让团队习惯于无视自己的工具,因此报告中只包含 ptai 能够证明的内容,每一条 VERIFIED 发现都附带一个便携式证明胶囊,你可以自己重放验证。

目前 14 类漏洞已获得预言机验证。在一个故意存在漏洞的测试蜜罐上,23 条发现跨这些类别验证,精确率 100%,零误报。在一个标准 OWASP Juice Shop 上,单次扫描即可验证 12 条。在你的笔记本上即可运行。无云端,无遥测。

看看它的实际效果

ptai 扫描 OWASP Juice Shop:发现从候选状态翻转为 oracle-VERIFIED,单次扫描验证 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(用于仪表板和集成)

```bash pip install ptai[api] ptai serve --port 8888 ``` 端点:`/health`、`/version`、`/agents`、`/tools`、`/engagements`(列表、详情、发现、链、检测规则、SARIF 导出)。写入端点(`POST /engagements`、`POST /engagements/{id}/abort`)需要 `Authorization: Bearer $PENTEST_AI_API_TOKEN`。实时事件流位于 `WS /engagements/{id}/stream`。

加载其他 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 协调,而非依赖 LLM17 个智能体覆盖侦察、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.0884650%
ZAP 2.17.05930147%
Nuclei 3.8.01010%
HexStrike v6.01101-

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 即可让操作员接管。

与同类工具对比

ptaiHexstrikeZAPNucleiBurp ProPentestGPT
通过 MCP 驱动 LLM(无需 API 密钥)
在范围保护下由 LLM 合成的 HTTP部分
通过 MCP 进行认证扫描部分部分原始 HTTP
漏洞利用链部分部分
非破坏性 PoC 验证部分
存储型注入链(POST -> GET 验证)手动部分手动
精选探测(专业化,非模板驱动)60工具封装驱动规则驱动8000+ 模板手动 + 扫描-
封装的 CLI 安全工具200+150+----
工具安装向导核心/推荐/完整 + 单工具-n/an/an/a-
参与开始时智能安装
CI 原生(SARIF + 严重性门禁)部分部分部分
LLM 红队探测
YAML 剧本模板
许可证MITMITApache-2.0MIT商业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,永久免费。

社区

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 历史

Star 历史图表

许可证

MIT。你想怎么用就怎么用。

如果 ptai 帮你省下了一个周日,请为仓库点个 Star。这是我所要求的唯一回报。

分类