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 会话(推理、生成、解析),并允许用户通过next、more、todo等指令引导流程。支持多种提供方(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_KEY、ANTHROPIC_API_KEY 等环境变量可启用对应提供方。
基准测试 – 在作者 2025 年 12 月对 XBOW 套件的评估中,PentestGPT 解决了 104 个挑战中的 90 个(约 86.5% 成功率)。基准测试代码位于仓库外部。
许可证与免责声明 – MIT 许可证,仅用于教育和授权安全测试。
更多详情,请参阅官方网站、USENIX 论文以及仓库的 README 和 docs/ 文件夹。
相关
- 项目
- 项目
- 项目
- 项目
- 项目