fb0sh/pentester

GitHub: fb0sh/pentester

基于AI Agent的渗透测试自动化框架。

Stars: 10 | Forks: 1

# Pentester 基于 AI Agent 的渗透测试自动化框架,严格遵循 **PTES(Penetration Testing Execution Standard)** 标准,覆盖渗透测试全生命周期。Agent 自动拉起 Kali Linux 容器,按阶段规范完成信息收集、漏洞分析、漏洞利用、后渗透和报告生成。 ## 快速开始 ### 环境要求 - macOS / Linux(推荐 Kali Linux) - Docker(自动拉取 Kali 容器) - Python 3 - Nmap、Masscan、Go、Feroxbuster 等常用工具 ### 启动测试 # 1. 启动 pi pi # 2. 输入测试指令(示例) # Agent 会自动读取 ROLE.md → 逐项确认参数 → 按 PTES 7 阶段执行 > 对目标 192.168.39.3 执行渗透测试 > 对 192.168.39.0/24 做漏洞扫描 > 继续上一次测试 # Agent 会自动: # 1. 询问测试范围、类型、授权等参数(每次只问一个问题,选项带编号) # 2. 拉起 Kali 容器(如需要) # 3. 每个阶段前查询知识库获取方法 # 4. 同阶段独立任务并行派发 sub-agent 提升效率 # 5. 按阶段推进:信息收集 → 漏洞分析 → 利用 → 后渗透 → 报告 # 6. 测试完成自动生成报告 ### 手动技能调用 一般情况下无需手动触发,Agent 按流程自动调用。特殊场景可用: | 命令 | 用途 | |------|------| | `/pentester:gen-report` | 强制生成报告 | | `/pentester:update-solution` | 手动合并方案至知识库 | | `/pentester:knowledge-base` | 查询/创建/更新/整理知识库 | | `/pentester:init-target` | 初始化目标目录与容器 | | `/pentester:enum-services` | 执行服务枚举 | | `/pentester:mcp` | 手动调用 MCP 工具 | ## Agent 行为约束 | 规则 | 说明 | |------|------| | 一问一答 | 每次只问一个问题,带编号选项(1. 2. 3. ... N. ... 自定义输入) | | 阶段内并行 | 同 PTES 阶段独立操作(TCP+UDP 扫描、Web+SMB+DNS 枚举)自动派发多 sub-agent 并行执行 | | 长任务不超时 | 字典攻击、爆破、模糊测试等长时间操作不设默认 timeout,等跑完或报错;>10 分钟无输出才上报 | ## 项目结构 pentester/ # 项目根目录 ├── README.md # 项目说明(当前文件) ├── README_EN.md # English version ├── AGENTS.md # Agent 框架规则 ├── LICENSE # MIT License ├── examples/ # 示例与用法 ├── .pentester/ # 框架核心 │ ├── ROLE.md # Agent 角色与行为规则 │ ├── PTES.md # 7 阶段路由表 + 切换检查清单 │ ├── REPORT-TEMPLATE.md # 报告模板 │ ├── PTES-GuideLine.md # PTES 技术参考(369KB) │ ├── sections/ # 各阶段详细流程 │ │ ├── 00-Pre-engagement.md │ │ ├── 01-Intelligence Gathering.md │ │ ├── 02-Threat Modeling.md │ │ ├── 03-Vulnerability Analysis.md │ │ ├── 04-Exploitation.md │ │ ├── 05-Post Exploitation.md │ │ └── 06-Reporting.md │ ├── skills/ # 可调用技能 │ │ ├── gen-report/ # 报告生成(含 6 维检查清单) │ │ ├── knowledge-base/ # 知识库管理(查/增/改/整理/提炼) │ │ ├── init-target/ # 目标初始化(目录+容器) │ │ ├── enum-services/ # 服务枚举 │ │ ├── update-solution/ # 方案沉淀(去重合并) │ │ └── mcp-manager/ # MCP 工具发现与调用 │ ├── knowledge/ # 可复用知识库 │ │ ├── README.md # 知识库规范(中文) │ │ ├── README_EN.md # 知识库规范(English) │ │ ├── INDEX.md # 主索引 │ │ ├── TEMPLATE.md # 新条目模板 │ │ ├── PTES-INDEX.md # 按 PTES 阶段聚合 │ │ ├── TAGS.md # 标签索引 │ │ ├── DIRECTORIES.md # 目录说明 │ │ ├── recon/ # 信息收集方法 │ │ ├── vuln-analysis/ # 漏洞分析专题 │ │ │ └── topics/ # SQL注入、SSRF、XXE、SSTI、文件上传等 │ │ ├── exploitation/ # 利用方法 │ │ ├── post-exploitation/ # 后渗透 │ │ ├── tooling/ # 工具/字典/资料导航 │ │ ├── reporting/ # 报告模板 │ │ │ └── templates/ # 各漏洞类型模板 │ │ ├── defensive/ # 防御/应急 │ │ ├── ctf-lab/ # CTF/靶场/训练 │ │ ├── github-references/ # P0/P1 仓库原文(101MB,离线可用) │ │ ├── refined-corpus/ # 精炼专题桶(29 桶,24MB) │ │ └── deep-refined-corpus/ # 深度去重聚类(174K 聚类,77MB) │ ├── wordlists/ # Fuzz/爆破字典(Agent 优先使用) │ │ └── PentesterSpecialDict/ # 专项字典集(来自 evilc0deooo/PentesterSpecialDict) │ │ ├── sql-injection/ # SQL注入 payload │ │ ├── xss-attacks/ # XSS payload │ │ ├── ssrf-attacks/ # SSRF payload │ │ ├── ssti-attacks/ # SSTI payload │ │ ├── web-directory-attacks/ # 目录/文件/参数枚举 │ │ ├── password-attacks/ # 密码字典 │ │ ├── dns-wordlist/ # 子域名枚举 │ │ └── ... │ ├── mcp/ # MCP 工具注册表 │ │ ├── README.md │ │ └── INDEX.md │ ├── solutions.md # 累积解决方案库 │ └── _archive/ # 历史归档 ## Agent 工作流 ### 每个 PTES 阶段执行流程 | 时机 | 动作 | |------|------| | 阶段开始前 | 查 `PTES-INDEX.md` 获取方法论 + `mcp/INDEX.md` 获取可用工具 | | 阶段执行中 | 同阶段独立任务并行派发 sub-agent;按 `sections/` 对应阶段文件操作 | | 阶段结束后 | 执行 `PTES.md` 的 **Phase Transition Checklist**(8 项) | | Checklist 通过 | 进入下一阶段 | | Checklist 未通过 | 修正后重试 | ### 知识库自动查询机制 Agent 在每个阶段开始前会根据**上一阶段产出**定向查询: | 当前阶段 | 查什么 | 驱动因素 | |-----------|--------|---------| | Intelligence Gathering | PTES-INDEX.md IG 条目 | 初始目标 | | Threat Modeling | PTES-INDEX.md TM 条目 | IG 发现的端口/服务 | | Vulnerability Analysis | PTES-INDEX.md + topics/ 专题 | TM 标注的资产类型 | | Exploitation | deep-refined-corpus/ 对应聚类 | VA 确认的 CVE/漏洞类型 | | Post Exploitation | 提权/AD 聚类 | 已获权限级别 | | Reporting | REPORT-TEMPLATE.md + templates/ | 全部已有数据 | ### 报告生成检查清单(gen-report skill Step 4) 生成报告后必须执行 6 维度 24 项检查: 1. **结构完整性** — 9 章齐全,附录完整 2. **内容填充** — 零占位符,日期已替换 3. **数据一致性** — CVSS × 严重程度 × 修复时限 一致 4. **证据路径** — 截图存在,PoC 格式正确 5. **修复建议** — 具体可操作,优先级矩阵填写 6. **合规脱敏** — 敏感数据脱敏,授权边界不越界 未通过必须修正后重新生成。 ## 知识库优化成果 | 指标 | 优化前 | 优化后 | |------|--------|--------| | 原始导入体积 | 1.9 GB | 101 MB(P0/P1 仓库) | | Git 对象 | 566 MB | 936 KB | | 知识库总量 | >2.5 GB | 206 MB | | INDEX.md 覆盖 | 残缺 | 285 条,missing: 0 | | TAGS.md | 8 标签 | 30+ 标签全覆盖 | | PTES-INDEX.md | 仅精华入口 | 7 阶段全部关联 | | Agent 自动查询 | 无 | 3 链路完整 | ## 注意事项 - 所有测试操作在 Docker 容器内执行,不影响宿主机 - 高风险操作(写文件、命令执行、端口扫描大范围)需要用户确认 - 原始 GitHub 资料全量备份在 `/Volumes/External HD/References/github` - 精炼聚类包含摘要和修复建议,不包含完整 PoC 代码 - CTF 靶场内容与真实渗透知识严格分离(`ctf-lab/`) - Long-running 操作(字典、爆破、fuzz)不设 timeout,跑完或报错为止
标签:Docker, Nmap, PTES 标准, Python, Ruby, XML 请求, 反取证, 威胁模拟, 安全开发, 安全报告, 安全漏洞, 安全漏洞扫描, 安全自动化工具, 安全自动化平台, 安全自动化框架, 安全自动化测试, 安全自动化解决方案, 安全评估, 安全防御评估, 安全防护, 无后门, 日志审计, 服务枚举, 本地模型, 渗透测试生命周期, 知识库, 自动化框架, 虚拟驱动器, 请求拦截, 逆向工具