PentestCode:把多 Agent 编排引入终端渗透测试流程

2026/07/20 sec PentestCode · AI安全 · 渗透测试 · Agent安全 · 自动化安全测试 2991 字 · 约 9 分钟 阅读 ...
PentestCode 是一个从 OpenCode 分叉而来的 AI 渗透测试终端工具,强调多 Agent 协作、统一 engagement state、18 个内置安全工具和 19 个知识包,适合授权测试中的方法论自动化与证据链记录。

Cyber Security News 报道了一个新的开源项目 PentestCode:它是 OpenCode 的一个 hard fork,把原本面向代码编辑的 Agent 终端改造成了面向渗透测试的多 Agent 系统。项目作者在 README 里给出的定位很直接:AI penetration testing agent in your terminal

这类工具的出现说明一个趋势:AI Agent 不只在进入防守、安全运营和代码审计,也在进入授权渗透测试、CTF、漏洞研究和基础设施审计流程。它不会替代人类完成复杂攻击链设计,但会把“扫、枚举、记录、交叉验证、生成报告”这些容易遗漏的流程自动化。

PentestCode 是什么

PentestCode 的核心目标是:给定一个授权目标和任务目标后,由主 Agent 拆解任务,调度多个安全专项子 Agent,并把所有发现写入统一的 engagement state。

官方 README 给了一个典型输入:

you: "pentest 10.10.10.5, goal is domain admin"

它会按阶段推进:

阶段自动化动作
扫描运行 nmap -sS -p-,把 XML 解析进结构化状态
识别看到 88 / 389 等端口后判断可能是 Domain Controller
枚举并行派发 SMB、LDAP、HTTP 枚举 Agent
攻击尝试 AS-REP roasting 等身份攻击路径
凭证喷洒将凭证跨 SMB、WinRM、LDAP、RDP 等服务验证
后渗透成功登录后尝试采集 SAM、LSA、DPAPI 等证据
报告记录每一步证据链,生成 findings / 报告

这里要强调:这类工具只应在明确授权的测试、实验环境、CTF 或内部审计中使用。它的价值是方法论自动化,不是绕过授权边界。

多 Agent + 共享状态,是它的关键设计

PentestCode 和“把 pentest prompt 粘进聊天窗口”的区别主要有两个:

  1. 多 Agent 分工:主 Agent 负责规划和协调,专业子 Agent 负责侦察、扫描、枚举、利用、身份攻击、Web 测试、后渗透、报告等任务。
  2. 共享 engagement state:所有 Agent 读写同一个结构化状态库,避免信息散落在终端输出和聊天上下文里。

README 中列出的状态对象包括:

状态类型示例
Hosts & servicesIP、主机名、OS、端口、服务版本、banner
Vulnerabilities严重性、状态、证据链、置信度
Credentials用户名、密码 / hash、域、可用服务
Access谁在哪台主机上获得了什么权限
RelationshipsEXPLOITED_VIACREDENTIAL_FROMPIVOT_TO 等关系
AD domain model域控、信任关系、管理员、密码策略、GPO
Attack paths基于图的攻击路径建议

这比普通自动化脚本更接近真实渗透测试过程:不是跑完一个工具就结束,而是把发现变成下一步行动的输入。

18 个内置工具与 19 个知识包

项目 README 提到,PentestCode 内置 18 个面向渗透测试的工具,其中很多是解析器或状态更新工具。它要求 Agent 在运行外部工具后,必须通过解析器把输出写入状态,而不是让模型自己 grep 文本。

工具作用
nmap_parse解析 Nmap XML,更新主机与服务
nuclei_parse解析 Nuclei JSON,生成漏洞记录
cme_parse解析 NetExec 输出,更新凭证、访问和主机信息
gobuster_parse解析目录爆破结果并分类
bloodhound_parse解析 SharpHound JSON,填充 AD 模型
sqlmap_parse提取 SQL 注入点
xss_detect分析响应中的反射 / 存储型 XSS 信号
jwt_analyze检查 JWT 的 alg:none、弱 HMAC、过期等问题
cred_spray规划跨服务凭证喷洒
scope_check校验 CIDR / wildcard 是否在授权范围内
attack_path_suggest基于关系图建议攻击路径
report_gen生成 Markdown / JSON 报告

此外还有 19 个 markdown 形式的知识包,覆盖阶段 checklist、SMB / SSH / DNS / 数据库 / Docker / K8s / CI/CD 等服务知识,以及 AD、Web、云和基础设施 playbook。

它适合解决什么问题

我更倾向于把 PentestCode 看作“授权安全测试中的流程放大器”,而不是“自动黑客”。它比较适合:

  • CTF / HackTheBox / 靶场训练;
  • 内部授权网络服务审计;
  • 漏洞验证中的重复枚举;
  • Bug bounty 前期 recon 和证据整理;
  • 多日测试中的状态保存与恢复。

它尤其适合解决人类测试里常见的流程问题:

人类容易出错的点PentestCode 的应对
工具输出散落用解析器写入统一状态
凭证只试了部分服务自动规划跨服务 spray
多日测试上下文丢失engagement state 可持久化
漏洞证据链不完整findings 持续记录时间线
报告整理滞后内置 report 生成

但它不是万能渗透测试员

Cyber Security News 也提到,PentestCode 目前仍是 beta 软件,不适合高 OPSEC 要求的红队隐蔽行动,也可能出现重复跑工具、API 变化、无 GUI、没有 Burp Suite 集成等问题。

从项目 README 看,它也更强调“方法论自动化”和“状态管理”,而不是创造性漏洞挖掘。复杂业务逻辑漏洞、链式利用、绕过防护、定制化 exploit 仍然需要人类判断。

我会把它的边界总结成一句话:

PentestCode 可以帮你更系统地跑流程、记录证据和保持状态,但不能替你承担授权、范围控制和攻击判断责任。

安全团队应该怎么看

这类工具对防守方也有参考意义。攻击者和测试者都开始使用 Agent 后,安全团队需要关注的不只是“有没有某个工具”,而是:

  1. 日志是否能识别 Agent 式操作:连续扫描、枚举、凭证尝试和跨服务验证会呈现更自动化的行为模式。
  2. 授权测试是否有更清晰范围控制:工具越自动,越需要 scope check、停机阈值和人工确认点。
  3. 检测规则是否覆盖工具链输出:Nmap、Nuclei、NetExec、BloodHound、sqlmap 等工具组合会更常出现在 AI 编排流程里。
  4. 防守演练是否也要 Agent 化:同样的多 Agent 结构也可以用于蓝队验证、告警复盘和暴露面盘点。

核验信息

项目信息
项目地址s0ld13rr/pentestcode
GitHub 描述Multi-agent AI penetration testing system with persistent engagement state, strategic coordination, and parallel autonomous operations
Star 数203(抓取 GitHub 页面时)
技术栈TypeScript / Bun,基于 OpenCode hard fork
许可证MIT
状态README 标明 Beta

参考资料

文档信息