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.

相关

  • 项目
  • 项目
  • 项目
  • 项目