Skip to content

fb0sh/pentester

Repository files navigation

Pentester

基于 AI Agent 的渗透测试自动化框架,严格遵循 PTES(Penetration Testing Execution Standard) 标准,覆盖渗透测试全生命周期。

Agent 通过 subagent chain 编排 8 个 PTES 阶段(Phase 1 拆为扫描 + Web 预检),每个阶段有独立的干净上下文,阶段间通过 manifest 文件传递产出清单。

English version


环境要求

  • macOS / Linux
  • Pi coding agentpi --help
  • Docker(可选,仅当宿主机不是 Kali 时需要)

快速开始

cd pentester
pi

在 AI 对话中告知目标即可:

对 192.168.1.100 做渗透测试
# 或
测试 http://target.com

内部执行流程

用户输入目标
     ↓
Phase 0 (Pre-engagement) — 初始化目录、创建容器、确认授权
     ↓                        ← manifest-phase-0.md
Phase 1a (扫描 + OSINT) — nmap 全端口、UDP、DNS、被动 OSINT
     ↓                        ← manifest-phase-1.md
Phase 1b (Web 预检) — Playwright 截图 + 功能地图 + src-hunter 漏洞预检
     ↓                        ← manifest-phase-1-web.md
Phase 2 (Threat Modeling) — STRIDE 威胁建模(读两份 manifest)
     ↓                        ← manifest-phase-2.md
Phase 3 (Vulnerability Analysis) — src-hunter playbook 深度测试 + CVSS
     ↓                        ← manifest-phase-3.md
Phase 4 (Exploitation) — Playwright PoC 执行 + 截图取证
     ↓                        ← manifest-phase-4.md
Phase 5 (Post Exploitation) — 提权、横向移动、凭证收集
     ↓                        ← manifest-phase-5.md
Phase 6 (Reporting) — 按 REPORT-TEMPLATE.md 生成报告
     ↓                        ← manifest-phase-6.md
生成报告 ✅

URL 目标快捷路径:目标为 http://...https://... 时,跳过 Phase 0,直接从 Phase 1 开始。


运行模式

模式 适用场景 说明
宿主机已是 Kali 本地测试 Agent 直接在宿主机执行命令
macOS + Docker 推荐 Agent 自动创建 kali-target-${IP} 容器,工具在容器内运行
交互式容器 手动操作 docker compose up -ddocker exec -it pentester-kali bash

技能调用

命令 用途
/pentester:gen-report 强制生成渗透测试报告
/pentester:update-solution target/${IP}/solutions.md 合并到全局知识库
/pentester:knowledge-base 查询/创建/更新/整理知识库
/pentester:init-target 初始化目标目录与 Docker 容器
/pentester:enum-services 执行服务枚举
/pentester:mcp 发现和调用 MCP 工具
/playwright Playwright 浏览器自动化(URL 目标时自动触发)
/run-chain ptes <target> 手动启动 PTES 编排链
/skill:setup-pentester-tools 初始化 Playwright、Docker、Pi skill 引用等依赖

多 Agent 兼容

框架同时支持三种 AI agent,共享同一份 .pentester/skills/ 技能库:

Agent 入口文件 Skills 位置
Pi AGENTS.md .pentester/skills/(通过 .pi/settings.json 引用)
Codex CLI AGENTS.md .codex/skills/ → 符号链接
Claude Code CLAUDE.md .claude/skills/ → 符号链接

启动方式取决于你用哪个 agent:

cd pentester && pi           # Pi
cd pentester && codex        # Codex CLI
cd pentester && claude       # Claude Code

Playwright 集成

Playwright 在链中 3 个位置有不同的角色,不只是截图工具

Phase Agent Playwright 用途
1b ptes-web-pretest 截图 → 功能地图 → 读 src-hunter playbook → fill+click 预检 XSS/SQLi/IDOR → 截图 PoC
3 ptes-vulnerability-analysis 手动验证漏洞时,Playwright 注入 payload、触发 PoC、截图证据
4 ptes-exploitation 利用成功后,Playwright 执行 CSRF/XSS 等 Web 类 EXP → 截图 shell 证明

触发条件:发现任何 Web 端口(80/443/8080/8443/3000/5000 等)即自动调用。不管目标是不是 SPA,只要 Web 就用 Playwright。


src-hunter 集成

src-hunter-skill 作为 playbook 库集成在框架中,提供:

  • 19 类攻击 playbook — XSS、SQLi、SSRF、RCE、IDOR、CSRF、逻辑漏洞等,每类附真实 HackerOne 案例
  • 305 个结构化 payload — 直接可用的测试向量
  • 263 个 WAF/EDR 绕过变体 — 被拦截时参考
  • 2,887 份 H1 High/Critical 案例 — 真实漏洞验证参考
  • 国产组件指纹 + 默认凭据库 — 用友、致远、泛微、海康威视等

src-hunter 的方法论已融入 PTES 阶段(Phase 0 scope 格式、Phase 1 OSINT 工具链、Phase 1 指纹→字典查询、Phase 3 playbook 深度测试)。不执行 src-hunter 自带的 5 阶段流程,流程由 PTES chain 驱动。

安装位置:.pentester/skills/src-hunter/


项目结构

pentester/
├── AGENTS.md                     # 项目编排入口(框架图、技能表、chain 引用)
├── ROLE.md                       # Agent 身份、交互规则、容器环境、合规安全
├── CONTEXT.md                    # 领域术语表
├── README.md                     # 本文档
│
├── .pentester/
│   ├── PTES.md                   # 7 阶段路由表 + 过渡检查清单
│   ├── REPORT-TEMPLATE.md        # 报告模板
│   ├── target-schema.md          # target/${IP}/ 目录结构契约
│   ├── validate-target-schema.js # 目录结构校验脚本
│   │
│   ├── sections/                 # 阶段参考语料(命令模板 + 判断标准)
│   │   ├── 00-Pre-engagement.md  ~  06-Reporting.md
│   │
│   ├── skills/                   # 可调用技能
│   │   ├── gen-report / knowledge-base / init-target / enum-services
│   │   ├── update-solution / mcp-manager / playwright-skill
│   │   └── src-hunter/           #   SRC 漏洞挖掘 playbook 库
│   │
│   ├── knowledge/                # 可复用知识库(12,000+ 条目)
│   │   ├── INDEX.md              #   全量索引
│   │   ├── PTES-INDEX.md         #   按 PTES 阶段聚合(自动维护)
│   │   ├── TAGS.md               #   标签索引
│   │   ├── github-references/    #   产品漏洞知识库(765 产品)
│   │   └── vuln-analysis/ exploitation/ post-exploitation/ recon/ ...
│   │
│   └── mcp/                      # MCP 工具注册表
│
├── .pi/                          # subagent 编排
│   ├── agents/                   # 8 个 PTES 阶段 agent
│   │   ├── ptes-pre-engagement.md
│   │   ├── ptes-intelligence.md      # Phase 1a: 扫描 + OSINT
│   │   ├── ptes-web-pretest.md       # Phase 1b: Playwright + src-hunter
│   │   ├── ptes-threat-modeling.md
│   │   ├── ptes-vulnerability-analysis.md
│   │   ├── ptes-exploitation.md
│   │   ├── ptes-post-exploitation.md
│   │   └── ptes-reporting.md
│   └── chains/
│       └── ptes.chain.json       # 8 步编排链
│
├── docs/adr/
│   └── 0001-subagent-chain.md    # 架构决策记录
│
└── wordlists/                    # 字典(Agent 优先使用)

数据流

Phase N → 写 target/${IP}/ 目录 → 写 manifest-phase-N.md
                                                ↓
Phase N+1 → 读 manifest-phase-(N-1).md → 按清单读文件 → 执行

特殊: Phase 2 同时读 manifest-1 + manifest-1-web
      Phase 3 同时读 manifest-2 + manifest-1-web

手动命令

# 校验目标目录结构
node .pentester/validate-target-schema.js 192.168.1.100

# 手动启动 subagent chain
pi# subagent({ chainName: "ptes", task: "IP:192.168.1.100" })

# 单独跑某个阶段
pi# subagent({ agent: "ptes-intelligence", task: "IP:192.168.1.100" })

# 安装 Playwright 浏览器自动化
cd .pentester/skills/playwright-skill && npm run setup && cd ../..

注意事项

  • 所有测试操作在 Docker 容器内执行,不影响宿主机
  • 高风险操作需要用户确认
  • Long-running 操作(字典、爆破、fuzz)不设 timeout
  • Playwright 运行在宿主机上(非容器内),含 GUI 依赖
  • 知识库索引由 knowledge-base skill 自动维护
  • src-hunter 仅作 playbook 库,不执行其自带流程

About

基于 AI Agent 的渗透测试自动化框架,严格遵循 PTES(Penetration Testing Execution Standard)标准,覆盖渗透测试全生命周期。| An automated penetration testing framework based on AI agents strictly adheres to the PTES (Penetration Testing Execution Standard) standards and covers the entire life cycle of penetration testing.

Topics

Resources

License

Stars

21 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors