humaidhahm/opencode-pentester
GitHub: humaidhahm/opencode-pentester
面向 opencode 平台的 AI 驱动安全评估工具,集自动化渗透测试与源代码漏洞审计于一体,通过多 Agent 编排实现端到端的安全评估流程。
Stars: 0 | Forks: 0
opencode-pentester
AI-Powered Penetration Testing & Security Audit Tool for opencode
## 目录 - [功能概述](#features-overview) - [快速开始](#quick-start) - [安装说明](#installation) - [模式 1:渗透测试](#mode-1-penetration-testing) - [模式 2:AI 自代码审计](#mode-2-ai-self-code-audit) - [攻击覆盖范围](#attack-coverage) - [Agent 架构](#agent-architecture) - [使用的工具](#tools-used) - [项目结构](#project-structure) - [常见问题](#faq) - [贡献指南](#contributing) - [更新日志](#changelog) - [鸣谢](#credits) - [许可证](#license) ## 功能概述 | 功能 | 模式 1:渗透测试 | 模式 2:AI 自代码审计 | |---------|----------------------------|---------------------------| | **目的** | 经授权对活动目标进行渗透测试 | 审计您的源代码以查找漏洞 | | **漏洞类别** | 涵盖 11 个领域的 63 类漏洞 | 17 类(OWASP Top 10 + 特定于 vibe coding 的漏洞) | | **Agents** | 15 个专用 agents(编排器、执行器、测试器、侦测器) | 1 个安全审计 agent | | **输出结果** | `outputs/{engagement}/`,包含 PoC、证据、截图 | `security/reports/` + 修复计划 | | **审批关卡** | 计划审批 + 预利用审批 | 在实施修复前进行审查 | | **时间预算** | 消耗配额(逐步提升深度直至预算耗尽) | 不适用(运行至完成) | | **最适用途** | 漏洞赏金、红蓝对抗、授权渗透测试 | CI/CD pipelines、部署前、代码审查 | ## 安装说明 ``` # Clone 仓库 git clone https://github.com/humaidhahm/opencode-pentester.git cd opencode-pentester # 安装所需工具 bash install-tools.sh # 验证工具 bash db/doctor.sh ``` ### 步骤 2:安装渗透测试工具(推荐) ``` sudo bash install-tools.sh ``` 这将安装 25+ 种安全工具:`ffuf`、`gobuster`、`feroxbuster`、`dirsearch`、`nikto`、`nuclei`、`sqlmap`、`subfinder`、`amass`、`dnsrecon`、`nmap`、`masscan`、`searchsploit`、`hashcat`、`john`、`playwright`、`curl` 以及 Python 包(`requests`、`beautifulsoup4`)。 ### 步骤 3:注册 opencode 当您从 `opencode-pentester/` 目录运行 opencode 时,该 skill 会自动加载。如需全局访问: ``` # 注册 skill mkdir -p ~/.agents/skills/opencode-pentester cp SKILL.md ~/.agents/skills/opencode-pentester/ # 注册 pentester agent mkdir -p ~/.config/opencode/agents cp agents/security-auditor.md ~/.config/opencode/agents/pentester.md ``` 或在 `~/.config/opencode/opencode.json` 中配置: ``` { "$schema": "https://opencode.ai/config.json", "agent": { "pentester": { "description": "Security auditor — 17-category code audit + 63-category pentesting", "mode": "subagent", "prompt": "{file:/path/to/opencode-pentester/agents/security-auditor.md}", "permission": { "bash": "allow", "read": "allow", "edit": "allow", "glob": "allow", "grep": "allow", "webfetch": "allow", "websearch": "allow", "task": "allow" } } } } ``` ## 模式 1:渗透测试 对活动目标运行全自动渗透测试。AI 会通过结构化的测试生命周期协调 15 个专用 agents,并在每个提权节点进行人工介入审批。 ### 运行渗透测试 ``` opencode run "I have authorization to pentest https://target.com. Use opencode-pentester. Time budget: 120 minutes. Thoroughness: Deep." ``` ### 测试生命周期 ``` ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │ 1. Scope │──▶│ 2. Pre- │──▶│ 3. Recon & │──▶│ 4. Planning │ │ Collection │ │ flight │ │ Inventory │ │ │ └───────────────┘ └───────────────┘ └───────────────┘ └───────┬───────┘ │ ⚠️ OPERATOR APPROVAL GATE │ ┌───────▼───────┐ │ 5. Executor │ │ Deployment │ └───────┬───────┘ │ ┌───────▼───────┐ │ 6. Quota │ │ Loop │ └───────┬───────┘ │ ┌───────▼───────┐ │ 7. Aggregate │ └───────┬───────┘ │ ┌───────▼───────┐ │ 8. Report │ └───────────────┘ ``` 1. **目标范围收集** — 目标 URL/IP、测试任务名称、时间预算、深度级别(Light/Medium/Deep/Full)、身份验证凭据、范围外限制 2. **预检** — 可达性检查、技术指纹识别(HTTP 标头、favicon、错误页面) 3. **侦测与资产盘点** — 5 个资产盘点 agents 并行运行:软件目录(SBOM + CVE 标记)、目录扫描器(通过 ffuf/gobuster 发现隐藏路径)、API 发现(REST/GraphQL/WebSocket endpoints)、JavaScript 映射器(通过 Playwright 提取 SPA 路由)、攻击面分析器(风险分级的攻击面报告) 4. **规划** — 编排器 agent 读取侦测输出,并创建包含测试波次、时间分配和提权指令的部署计划 5. **操作员审批** — 测试计划将提交给您审批。您可以批准、修改或取消 6. **执行器部署** — 专用 agents 并行部署:注入测试器(通过 sqlmap 进行 SQLi/NoSQLi/CMDi)、XSS 测试器(通过 Playwright 进行反射型/存储型/DOM 型)、CSRF 测试器、CVE 测试器,以及用于 SSRF、JWT、路径遍历、文件上传、GraphQL、云、基础设施和后渗透的通用执行器 7. **配额循环** — 时间预算是一个**消耗配额,而非上限**。在第一波测试之后,AI 会自动提权:漏洞链接 → 交叉扩展 → 穷举 payload 枚举 → 后渗透(如果 MKS 激活且确认 CVE/RCE)。提前退出需要提供记录在案的“攻击面已耗尽”证明 8. **报告** — 结构化输出:`pentest-report.json`(机器可读)、`report.md`(人类可读),以及包含 PoC、证据和截图的单项发现数据包 ### 攻击覆盖范围 #### 涵盖 11 个领域的 63 个攻击类别 | 领域 | 攻击类别 | 技术 | |--------|------------------|------------| | **注入** (9) | SQLi、NoSQLi、CMDi、SSTI、XXE、LDAP、SAML、类型混淆、文件包含 | 基于报错、盲注、基于时间、UNION、操作符注入、正则表达式注入、模板注入、XML 外部实体、LDAP 过滤器注入、SAML 响应篡改、PHP 松散比较、LFI/RFI 包装器 | | **客户端** (6) | XSS、CSRF、基于 DOM、原型污染、CORS、点击劫持 | 反射型/存储型/DOM 型 XSS、框架特定 sinks(React、Vue、Angular)、WAF 绕过、CSP 绕过、SameSite 绕过、token 重用、方法重写、URL/json 污染 | | **服务端** (6) | SSRF、HTTP 走私、路径遍历、文件上传、反序列化、Host 头 | 内部服务访问、云元数据、CL.TE/TE.CL 走私、编码变体、魔术字节绕过、gadget chains、密码重置投毒 | | **身份验证** (4) | 身份验证绕过、JWT、OAuth、密码攻击 | 逻辑缺陷、参数篡改、`alg:none` 攻击、密钥混淆、授权码截获、凭证填充、暴力破解 | | **API 安全** (4) | GraphQL、REST API、WebSockets、Web LLM | 滥用内省、字段建议、深度嵌套查询 DoS、BOLA/IDOR、批量赋值、跨站点 WebSocket 劫持、prompt 注入 | | **Web 应用程序** (9) | 访问控制、业务逻辑、缓存攻击、信息泄露、竞态条件、批量赋值、开放重定向、缓存投毒、缓存欺骗 | 权限提升、多步骤流程篡改、价格篡改、Web 缓存欺骗、source maps、调试页面、TOCTOU、绑定攻击 | | **云与容器** (5) | AWS、Azure、GCP、Docker、Kubernetes | S3 bucket 枚举、IAM 提权、Lambda 滥用、EC2 元数据 SSRF、存储账户暴露、GCS bucket 暴露、特权容器逃逸、RBAC 配置错误、etcd 暴露 | | **系统 / 后渗透** (8) | PrivEsc、Active Directory、哈希破解、持久化、Pivoting、绕过、漏洞利用开发、反向 Shells | LinPEAS/WinPEAS、BloodHound、Mimikatz、Kerberoasting、AS-REP roasting、hashcat、john、chisel、proxychains、AMSI 绕过、pwntools、msfvenom | | **IP 基础设施** (8) | 端口扫描、DNS、SMB、MITM、嗅探、DoS、VLAN 跳跃、IPv6 | nmap、masscan、NSE 脚本、dnsrecon、zone transfer、enum4linux、ARP 欺骗、ettercap、tcpdump、hping3、yersinia、rogue RA | | **物理与社会工程学** (1) | 社会工程学 | 鱼叉式网络钓鱼 (Gophish)、借口诈骗、语音钓鱼、BEC、Evilginx2、USB 诱饵 | | **必备技能** (3) | Burp Suite、方法论、报告撰写 | PTES、OWASP WSTG、MITRE ATT&CK、CVSS 评分、撰写执行摘要 | ### Agent 架构 渗透测试框架使用 15 个专用 agents,分为 4 层: #### 编排层 | Agent | 角色 | |-------|------| | **pentester-orchestrator** | 规划器 — 读取范围 + 侦测结果,返回结构化的部署计划 | | **patt-fetcher** | 按需获取 PayloadsAllTheThings payload 的获取器 | #### 执行层 | Agent | 描述 | |-------|-------------| | **pentester-executor** | 通用执行器,针对每种攻击类型进行 prompt 特化(SSRF、JWT、路径遍历、文件上传、云、基础设施)。4 阶段工作流:侦测 → 实验 → 测试 → 验证 | | **xss-tester** | 反射型、存储型、DOM 型 XSS。框架 sinks(React、Vue、Angular)。WAF 绕过、CSP 绕过。Playwright 取证 | | **csrf-tester** | 缺失 token、SameSite 绕过、token 重用、方法重写。生成可由浏览器加载的 PoC HTML | | **injection-tester** | SQLi、NoSQLi、CMDi。自动化 sqlmap + 手动 curl 探测 | | **csp-bypass-tester** | CSP 标头分析 + 绕过向量 | | **prototype-pollution-tester** | 通过 URL 参数、hash、JSON 进行客户端原型污染测试 | | **cve-tester** | 技术栈指纹识别、CVE 研究、PoC 适配、实时验证 | #### 资产盘点层 | Agent | 描述 | |-------|-------------| | **inventory-software-catalog** | 依赖识别、SBOM 生成、CVE 标记 | | **inventory-directory-scanner** | 通过 ffuf、gobuster、feroxbuster 发现隐藏路径 | | **inventory-api-discovery** | REST/GraphQL/WebSocket endpoint 发现 | | **inventory-javascript-mapper** | 通过 Playwright 提取 SPA 路由 | | **inventory-surface-analyzer** | 将所有资产盘点输出综合成风险分级的攻击面报告 | ### 使用的工具 | 类别 | 工具 | |----------|-------| | **Web 应用程序扫描** | ffuf、gobuster、feroxuster、dirsearch、nikto、nuclei、kiterunner、dalfox | | **注入测试** | sqlmap、curl、自定义 Python 脚本 | | **子域名与 DNS 枚举** | subfinder、amass、dnsrecon、dig、crt.sh、httpx | | **端口扫描** | nmap、masscan | | **浏览器自动化** | Playwright (headless Chromium) | | **CVE 研究** | searchsploit (Exploit-DB)、NVD JSON API、GitHub PoC 搜索 | | **后渗透** | BloodHound、Mimikatz、hashcat、john、LinPEAS、WinPEAS、Chisel | | **Payload 来源** | PayloadsAllTheThings(通过 patt-fetcher agent) | | **通用** | python3、bash、curl、grep、sed、awk | ## 模式 2:AI 自代码审计 审计您自己的源代码以查找 17 个关键漏洞类别。专为使用 Cursor、Copilot、Claude Code、Windsurf 或任何 AI 编码工具构建的 vibe-coded 应用程序而设计。 ### 工作原理 1. 将 `AGENTS.md` 复制到您的项目根目录 — opencode 会自动读取它,并在代码生成过程中强制执行安全规则 2. 运行 17 类审计 — opencode 会调查每个文件,编写详细报告,创建修复计划,实施修复并进行验证 3. 对 AI 无法察觉的问题运行手动检查 ### 运行审计 ``` # 将 security rules 复制到你的项目 cp AGENTS.md /path/to/your/project/AGENTS.md # 运行完整的 17 类别审计 opencode run "Run the security audit defined in AI-CHECKLIST.MD against this project" # 或使用已注册的 pentester agent opencode run "Audit this project for security vulnerabilities" --agent pentester ``` ### 17 类漏洞点击展开完整表格
| # | 漏洞 | 严重程度 | CWE | |---|--------------|----------|-----| | 1 | 数据库配置错误(无 Row Level Security) | **Critical** | CWE-284 | | 2 | 未受保护的 API 路由(无 auth middleware) | **Critical** | CWE-306 | | 3 | 提交的机密信息(.env 在 GitHub 上) | **Critical** | CWE-798 | | 4 | 访问控制失效 (IDOR) | **Critical** | CWE-639 | | 5 | 前端代码中的机密 API keys | **Critical** | CWE-798 | | 6 | 服务端请求伪造 (SSRF) | High | CWE-918 | | 7 | 缺失 CSRF 保护 | High | CWE-352 | | 8 | 缺失安全标头 | Medium | CWE-693 | | 9 | 通配符 CORS | High | CWE-942 | | 10 | 无速率限制 | Medium | CWE-770 | | 11 | SQL 注入 | High | CWE-89 | | 12 | 跨站脚本攻击 (XSS) | High | CWE-79 | | 13 | 未验证的 Stripe webhooks | High | CWE-347 | | 14 | 不安全的文件上传 | Medium | CWE-434 | | 15 | 详细的错误消息 | Low | CWE-209 | | 16 | 弱密码哈希 | Medium | CWE-916 | | 17 | 幻觉包 (slopsquatting) | High | CWE-1104 |标签:AI安全, Chat Copilot, CISA项目, 应用安全, 特征检测, 逆向工具