s0ld13rr/pentestcode
PentestCode - Multi-agent AI penetration testing system with persistent engagement state, strategic coordination, and parallel autonomous operations.
什么是 PentestCode?
PentestCode 是一个运行在终端中的自主渗透测试助手。您只需给它一个高阶目标(例如:“gain domain‑admin on 10.10.10.5”),一组 AI 驱动的代理就会为您编排整个攻击链——从扫描和枚举到凭证喷洒、利用和后利用报告。该项目是 OpenCode 代码编辑 AI 的硬分叉,专为进攻性安全而重新设计。
工作原理
| 组件 | 角色 |
|---|---|
| 主导 “pentest” 代理 | 将参与拆分为任务,保持整体计划,并决定下一步做什么。 |
| 专业子代理 (侦察、扫描、枚举、利用、AD‑identity、web‑app、后利用等) | 运行特定工具,解析其输出,并将结果反馈到共享的 参与状态 中。 |
| 共享参与状态 | 一个结构化的知识库,存储主机、服务、漏洞、凭证、访问级别、AD 关系、网络段和计算出的攻击路径。它在会话间持久存在。 |
| LLM 提供层 | 通过 Vercel 的 ai-sdk 使用 20 多种 LLM 中的任何一种(Anthropic、OpenAI、Google、Azure、Bedrock、Ollama 等)来生成提示、解释工具输出并决定下一步行动。 |
代理通过此状态进行通信,因此当扫描器发现新端口时,枚举器可以立即对其采取行动。内置的图模型允许系统计算成本最优的攻击路径(Dijkstra + Yen’s K‑shortest)。所有操作都会记录到人类可读的 findings.md 文件中。
主要功能
- 多代理架构 (13 个代理),可并行运行任务。
- 持久化结构化状态 (主机、服务、漏洞、凭证、关系、AD 模型、网络拓扑)。
- 18 个内置解析工具 (例如
nmap_parse,bloodhound_parse,cme_parse),可自动填充状态。 - 19 个知识包 (技能),涵盖渗透测试阶段、服务细节和剧本;它们是纯 Markdown 文件,可以通过放入
SKILL.md文件来扩展。 - 三种操作模式 –
auto(全自动运行),free(直接命令响应),guided(逐步批准)。 - 斜线命令 (
/status,/vulns,/creds,/report, …) 用于实时检查和控制。 - 支持 20 多个 LLM 提供商,通过
ai-sdk。 - 单二进制分发,适用于 Linux/macOS (x64 & arm64),并提供可选的 AUR 包。
安装
# npm (安装拉取二进制文件的 CLI 包装器)
npm install -g pentestcode-ai
# 或下载预构建二进制文件的一行脚本
curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
Arch Linux: paru -S pentestcode-bin
从源代码构建 (需要 Bun):
bun install
bun run build --single --skip-embed-web-ui # 二进制文件位于 packages/opencode/dist/…
快速入门
# 使用您选择的 LLM 提供商进行身份验证
pentestcode auth login
# 启动交互式会话
pentestcode
# 无需进入 REPL 的单次命令
pentestcode --prompt "scan 10.10.10.0/24 and enumerate all services"
在会话期间,您可以查询实时状态:
/status– 主机、漏洞、凭证、当前阶段的仪表板/vulns– 按严重性列出发现结果/creds– 显示发现的凭证/report– 生成 Markdown/JSON 渗透测试报告
典型工作流程示例
you: pentest 10.10.10.5, goal is domain admin
1️⃣ Scan → nmap -sS -p- → 端口解析到状态中
2️⃣ Recognize → 识别域控制器 (端口 88, 389)
3️⃣ Enumerate → SMB 共享列表, LDAP 用户转储, Gobuster Web 目录
4️⃣ Attack → AS‑REP roast → 可破解的哈希 → 第一个凭证
5️⃣ Spray → 在 SMB, WinRM, LDAP, RDP 上进行凭证喷洒
6️⃣ Exploit → WinRM 据点 → 转储 SAM/LSA/DPAPI
7️⃣ Result → 域管理员哈希, 所有步骤已记录
代理会为每个发现的主机重复此循环,直到达到目标或您停止它。
配置
用户特定的设置位于 ~/.pentestcode/pentestcode.jsonc。选择模型的示例:
{
"provider": {
"anthropic": { "model": "claude-sonnet-4-20250514" }
}
}
所有 Vercel ai-sdk 支持的提供商都可以类似地配置。
谁应该使用它?
- 专业渗透测试人员,希望使用 AI 增强助手来自动化重复阶段,同时保持控制权。
- CTF 参与者,寻找一种可以跟踪标志、管理多目标参与并建议后续步骤的工具。
- 漏洞赏金猎人,需要快速侦察和系统化枚举。
- 安全研究人员,对实验 LLM 驱动的攻击自动化感兴趣。
贡献与支持
该项目处于 beta 阶段;预计会出现错误。欢迎通过 GitHub issues(包括目标类型、失败描述和 findings.md 摘录)和拉取请求进行贡献。代码库使用 Effect 库以 TypeScript 编写。
许可证
MIT © 2024‑2026 s0ld13rr.
相关
- 项目
- 项目
- 项目
- 项目