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 粘进聊天窗口”的区别主要有两个:
- 多 Agent 分工:主 Agent 负责规划和协调,专业子 Agent 负责侦察、扫描、枚举、利用、身份攻击、Web 测试、后渗透、报告等任务。
- 共享 engagement state:所有 Agent 读写同一个结构化状态库,避免信息散落在终端输出和聊天上下文里。
README 中列出的状态对象包括:
| 状态类型 | 示例 |
|---|---|
| Hosts & services | IP、主机名、OS、端口、服务版本、banner |
| Vulnerabilities | 严重性、状态、证据链、置信度 |
| Credentials | 用户名、密码 / hash、域、可用服务 |
| Access | 谁在哪台主机上获得了什么权限 |
| Relationships | EXPLOITED_VIA、CREDENTIAL_FROM、PIVOT_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 后,安全团队需要关注的不只是“有没有某个工具”,而是:
- 日志是否能识别 Agent 式操作:连续扫描、枚举、凭证尝试和跨服务验证会呈现更自动化的行为模式。
- 授权测试是否有更清晰范围控制:工具越自动,越需要 scope check、停机阈值和人工确认点。
- 检测规则是否覆盖工具链输出:Nmap、Nuclei、NetExec、BloodHound、sqlmap 等工具组合会更常出现在 AI 编排流程里。
- 防守演练是否也要 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 |
参考资料
- PentestCode - New AI Agent That Automates Penetration Testing with 18 Specialized Tools — Cyber Security News,2026-07-17
- s0ld13rr/pentestcode — GitHub 仓库
- HPTSA research — README 引用的多 Agent 渗透测试研究
文档信息
- 本文作者:zhupite
- 本文链接:https://zhupite.com/sec/pentestcode-ai-agent.html
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)