GreyDGL/PentestGPT

Automated Penetration Testing Agentic Framework Powered by Large Language Models

PentestGPT – 基于 AI 的自主渗透测试代理

是什么 – PentestGPT 是一个基于 Python 的命令行工具,协调大型语言模型(LLM)以执行自动化渗透测试或夺旗(CTF)挑战。该工具在 USENIX Security 2024 论文中被介绍,并采用 MIT 许可证发布。

主要功能

  • 多阶段流水线 – 代理按固定顺序执行阶段(CTF 中为「侦察 → 利用 → 走查」,真实渗透测试中为「资产发现 → 漏洞识别 → 报告」),并将每个阶段的输出传递给下一阶段。
  • 自主模式 – 使用 Claude Code 或 Codex 后端,在无需人工输入的情况下运行工具并做出决策。
  • 遗留交互模式pentestgpt-legacy 运行三个协作的 LLM 会话(推理、生成、解析),并允许用户通过 nextmoretodo 等指令引导流程。支持多种提供方(OpenAI、Anthropic、Gemini、DeepSeek、xAI、Qwen、Moonshot、Ollama)。
  • 会话持久化 – 测试运行可以保存并稍后恢复。
  • 实时走查与遥测 – 实时控制台更新显示代理正在执行的操作;可选的匿名遥测会发送至 Langfuse 端点。

安装

# 克隆并安装依赖(需要 Python 3.12+ 和 uv)
git clone https://github.com/GreyDGL/PentestGPT.git
cd PentestGPT
make install          # 执行 `uv sync`

Docker – 预构建镜像包含工具以及 Claude Code 和 Codex CLI。使用提供的 make docker-* 目标进行构建,首次登录模型提供方,然后在容器内运行代理。

快速使用

# 默认 CTF 模式
pentestgpt --target 10.10.11.234

# 指定关注点
pentestgpt --target 10.10.11.50 \
          --instruction "WordPress 站点,重点关注插件漏洞"

# 完整渗透测试工作流(资产发现 → 漏洞 → 报告)
pentestgpt --target 10.10.11.234 --mode pentest

# 列出保存的会话
pentestgpt --list-sessions

用于交互式遗留模式:

pentestgpt-legacy                     # 自动选择最佳模型
pentestgpt-legacy --reasoning-model claude-opus-4-8 --parsing-model gemini-3.5-flash
pentestgpt-legacy --list-models       # 显示所有配置的提供方/模型

OPENAI_API_KEYANTHROPIC_API_KEY 等环境变量可启用对应提供方。

基准测试 – 在作者 2025 年 12 月对 XBOW 套件的评估中,PentestGPT 解决了 104 个挑战中的 90 个(约 86.5% 成功率)。基准测试代码位于仓库外部。

许可证与免责声明 – MIT 许可证,仅用于教育和授权安全测试。


更多详情,请参阅官方网站、USENIX 论文以及仓库的 READMEdocs/ 文件夹。

相关

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