GreyDGL/PentestGPT
GitHub: GreyDGL/PentestGPT
PentestGPT 是一款基于大语言模型的自主渗透测试智能体框架,能够自动分析目标、规划攻击路径并执行渗透操作。
Stars: 13286 | Forks: 2289
[][contributors-url]
[][forks-url]
[][stars-url]
[][issues-url]
[][license-url]
[][discord-url]
## 演示
### 安装
[](https://asciinema.org/a/761661)
[在 YouTube 上观看](https://www.youtube.com/watch?v=RUNmoXqBwVg)
### PentestGPT 实战演示
[](https://asciinema.org/a/761663)
[在 YouTube 上观看](https://www.youtube.com/watch?v=cWi3Yb7RmZA)
## v1.0 新功能(智能体升级)
- **自主智能体** - 智能自主渗透测试流水线
- **会话持久化** - 保存并恢复渗透测试会话
- **Docker 优先** - 隔离、可复现的环境,预装安全工具
## 功能特性
- **AI 驱动的挑战求解器** - 利用 LLM 高级推理能力执行渗透测试和 CTF
- **实时演练** - 智能体处理挑战时实时跟踪步骤
- **多类别支持** - Web、Crypto、逆向、取证、PWN、权限提升
- **实时反馈** - 通过实时活动更新观看 AI 工作
- **可扩展架构** - 简洁的模块化设计,为未来增强做好准备
## 快速开始
### 前置条件
- **Docker**(必需)- [安装 Docker](https://docs.docker.com/get-docker/)
- **LLM 提供商**(选择其一):
- 来自 [console.anthropic.com](https://console.anthropic.com/) 的 Anthropic API Key
- Claude OAuth 登录(需要 Claude 订阅)
- OpenRouter 替代模型,访问 [openrouter.ai](https://openrouter.ai/keys)
- [教程:在 Claude Code 中使用本地模型](https://docs.google.com/document/d/1ixK7x-wlr5t5TYZJdfm75UME5KnPCpS46boLkUXKg1w/edit?usp=sharing)
### 安装
```
# 克隆并构建
git clone --recurse-submodules https://github.com/GreyDGL/PentestGPT.git
cd PentestGPT
make install
# 配置身份验证(仅限首次)
make config
# 连接到容器
make connect
```
### 尝试基准测试
```
cd benchmark/standalone-xbow-benchmark-runner
python3 run_benchmarks.py --range 1-1 --pattern-flag
```
详细用法请参阅 [基准测试文档](benchmark/README.md)。
### 命令参考
| 命令 | 描述 |
|---------|-------------|
| `make install` | 构建 Docker 镜像 |
| `make config` | 配置 API Key(首次设置) |
| `make connect` | 连接容器(主要入口点) |
| `make stop` | 停止容器(配置保留) |
| `make clean-docker` | 删除所有内容包括配置 |
## 使用方法
```
# 交互式 TUI 模式(默认)
pentestgpt --target 10.10.11.234
# 非交互模式
pentestgpt --target 10.10.11.100 --non-interactive
# 带挑战上下文
pentestgpt --target 10.10.11.50 --instruction "WordPress site, focus on plugin vulnerabilities"
```
**快捷键:** `F1` 帮助 | `Ctrl+P` 暂停/恢复 | `Ctrl+Q` 退出
## 使用本地 LLM
PentestGPT 支持将请求路由到运行在宿主机上的本地 LLM 服务器(LM Studio、Ollama、text-generation-webui 等)。
### 前置条件
- 具有 OpenAI 兼容 API 端点的本地 LLM 服务器
- **LM Studio**:启用服务器模式(默认端口 1234)
- **Ollama**:运行 `ollama serve`(默认端口 11434)
### 设置
```
# 为本地 LLM 配置 PentestGPT
make config
# 选择选项 4:本地 LLM
# 在主机上启动本地 LLM 服务器
# 然后连接到容器
make connect
```
### 自定义模型
编辑 `scripts/ccr-config-template.json` 以自定义:
- **`localLLM.api_base_url`**:你的 LLM 服务器 URL(默认:`host.docker.internal:1234`)
- **`localLLM.models`**:服务器上可用的模型名称
- **Router 部分**:哪些模型处理哪些操作
| 路由 | 用途 | 默认模型 |
|-------|---------|---------------|
| `default` | 通用任务 | openai/gpt-oss-20b |
| `background` | 后台操作 | openai/gpt-oss-20b |
| `think` | 推理密集型任务 | qwen/qwen3-coder-30b |
| `longContext` | 大上下文处理 | qwen/qwen3-coder-30b |
| `webSearch` | Web 搜索操作 | openai/gpt-oss-20b |
### 故障排除
- **连接被拒绝**:确保你的 LLM 服务器正在运行并在配置的端口上监听
- **Docker 网络**:从 Docker 访问宿主机服务时使用 `host.docker.internal`(而非 `localhost`)
- **检查 CCR 日志**:在容器内运行 `cat /tmp/ccr.log`
## 遥测
PentestGPT 收集匿名使用数据以帮助改进工具。这些数据发送到我们的 [Langfuse](https://langfuse.com) 项目,包括:
- 会话元数据(目标类型、持续时间、完成状态)
- 工具执行模式(使用了哪些工具,而非实际命令)
- 标志检测事件(检测到标志,但不包含标志内容)
**不收集敏感数据** - 命令输出、凭据或实际标志值均不会被传输。
### 退出遥测
```
# 通过命令行标志
pentestgpt --target 10.10.11.234 --no-telemetry
# 通过环境变量
export LANGFUSE_ENABLED=false
```
## 基准测试
PentestGPT 包含 104 个 XBOW 验证基准测试,用于全面测试和评估。
```
cd benchmark/standalone-xbow-benchmark-runner
python3 run_benchmarks.py --range 1-10 --pattern-flag # Run benchmarks 1-10
python3 run_benchmarks.py --all --pattern-flag # Run all 104 benchmarks
python3 run_benchmarks.py --retry-failed # Retry failed benchmarks
python3 run_benchmarks.py --dry-run --range 1-5 # Preview without executing
```
### 性能亮点
PentestGPT 在 XBOW 验证套件上实现了 **86.5% 的成功率**(90/104 个基准测试):
- **成本**:每个成功基准测试平均 $1.11,中位数 $0.42
- **时间**:每个成功基准测试平均 6.1 分钟,中位数 3.3 分钟
- **按难度划分的成功率**:
- Level 1:91.1%
- Level 2:74.5%
- Level 3:62.5%
详细的基准测试结果、分析和自动化测试说明,请参阅 **[基准测试文档](benchmark/README.md)**。
## 旧版
之前的多 LLM 版本(v0.15)支持 OpenAI、Gemini、Deepseek 和 Ollama,已归档在 [`legacy/`](legacy/):
```
cd legacy && pip install -e . && pentestgpt --reasoning gpt-4o
```
## 引用
如果你在研究中使用了 PentestGPT,请引用我们的论文:
```
@inproceedings{299699,
author = {Gelei Deng and Yi Liu and Víctor Mayoral-Vilches and Peng Liu and Yuekang Li and Yuan Xu and Tianwei Zhang and Yang Liu and Martin Pinzger and Stefan Rass},
title = {{PentestGPT}: Evaluating and Harnessing Large Language Models for Automated Penetration Testing},
booktitle = {33rd USENIX Security Symposium (USENIX Security 24)},
year = {2024},
isbn = {978-1-939133-44-1},
address = {Philadelphia, PA},
pages = {847--864},
url = {https://www.usenix.org/conference/usenixsecurity24/presentation/deng},
publisher = {USENIX Association},
month = aug
}
```
## 许可证
基于 MIT 许可证分发。更多信息请参阅 `LICENSE.md`。
**免责声明**:本工具仅用于教育和授权安全测试。作者不纵容任何非法使用。使用风险自负。
## 致谢
- 研究由 [Quantstamp](https://www.quantstamp.com/) 和 [NTU Singapore](https://www.ntu.edu.sg/) 支持
PentestGPT
AI 驱动的自主渗透测试智能体
发表于 USENIX Security 2024
官方网站:pentestgpt.com »
研究论文
·
报告 Bug
·
功能请求
(返回顶部)
标签:Agent, AI, AI-powered penetration testing, AI代理, AI安全, AI风险缓解, AI驱动, AI驱动安全, AMSI绕过, autonomous pentest, C2, Chat Copilot, CIDR输入, CISA项目, Cybersecurity, DLL 劫持, GPT, GreyDGL, IP 地址批量处理, LIDS, LLM agent, meg, NetFlow, PentestGPT, RuleLab, TGT, URL发现, USENIX Security, 代码生成, 信息安全, 反取证, 大语言模型, 威胁检测, 学术安全研究, 安全咨询, 安全工具开发, 安全工具链, 安全工具集成, 安全工程, 安全扫描, 安全服务, 安全检测, 安全测试, 安全研究工具, 安全研究工具链, 安全研究平台, 安全研究框架, 安全研究社区, 安全研究论文, 安全评估, 安全运营, 安全防护, 扫描框架, 攻击向量, 攻击性, 攻击性安全, 攻击模拟, 攻击链, 攻击面, 攻防演练, 数据展示, 时序注入, 智能安全, 智能框架, 智能渗透, 渗透测试GPT, 渗透测试工具, 渗透测试报告, 渗透测试方法, 渗透测试框架, 漏洞分析, 漏洞管理, 红队, 红队武器化, 红队运营, 网络安全审计, 网络攻防, 网络调试, 自主决策, 自动化, 自动化代码审查, 自动化攻击, 自动化渗透, 请求拦截, 路径探测, 逆向工具, 防御, 驱动签名利用