版本:v1.0 | 更新时间:2026-07-08 | 基于 PentAGI v0.3.0+
目录
1. PentAGI 简介
PentAGI 是由 VXControl 团队(迪拜,2025 年成立)开发的一款全自主 AI 驱动的开源渗透测试平台,采用 MIT 许可证发布,托管于 GitHub - vxcontrol/pentagi。截至 2026 年 7 月,该项目已获得超过 18,000 个 GitHub Star,是当前开源领域最具影响力的自主式 AI 渗透测试 Agent 系统 [cite:1][cite:2]。
1.1 核心能力
| 能力 | 说明 |
|---|---|
| 全自主执行 | 输入目标 URL,AI 自动完成信息收集→漏洞扫描→利用尝试→报告生成的全流程 |
| 多智能体协作 | Orchestrator、Researcher、Developer、Executor 四类 Agent 分工协作 |
| 20+ 安全工具集成 | Nmap、Nuclei、sqlmap、Metasploit、gau、ffuf 等原生集成 |
| 知识图谱记忆 | Graphiti + Neo4j 图数据库,构建长期记忆,跨测试复用经验 |
| 沙盒隔离执行 | 每个工具调用在独立 Docker 容器内执行,不污染宿主机 |
| 10+ LLM 提供商 | 支持 OpenAI、Anthropic、Google Gemini、Ollama 本地模型等 |
| 自动报告生成 | 生成符合 MITRE ATT&CK 框架的详细渗透测试报告 |
| 双模式运行 | 支持全自动(Automation)和半自动助手(Assistant)两种模式 |
1.2 适用场景
- 企业安全评估与红队演练
- DevSecOps 流水线自动化安全测试
- 安全研究人员的漏洞验证平台
- CTF 竞赛与安全教学培训
- 渗透测试工具链的智能编排
2. 核心架构与工作原理
2.1 多智能体架构
PentAGI 采用四层智能体协作架构,将渗透测试任务分解为多个专业化子任务 [cite:2][cite:3]:
1 | 用户输入目标 |
各 Agent 职责:
- Orchestrator:系统的”大脑”,接收目标后分解为子任务,协调各 Agent 协作,根据实时状态动态调整策略
- Researcher:负责信息收集阶段,执行子域名枚举、端口扫描、服务指纹识别、技术栈检测
- Developer:负责漏洞利用阶段的 PoC 编写、Payload 生成、绕过策略开发
- Executor:在隔离的 Docker 沙盒中执行工具命令,捕获输出并解析为结构化数据
2.2 OODA 决策闭环
每次攻击尝试都处于一个持续滚动的 OODA 循环 中 [cite:5]:
1 | Observe (观察) → Orient (判断) → Decide (决策) → Act (行动) |
- Observe:捕获上一轮工具执行的原始输出(stdout/stderr/文件)
- Orient:LLM 分析输出,提取关键特征,更新知识图谱
- Decide:基于当前状态,从工具库中选择下一步最优策略
- Act:将决策指令下发到 Docker 沙盒执行
2.3 沙盒安全执行引擎
PentAGI 的一大创新是 Docker 沙盒化执行 [cite:5]:
- “阅后即焚”机制:每次工具调用实时拉起新容器,执行完毕立即销毁
- 安全隔离:Agent 不直接接触宿主机,所有操作在容器内完成
- 预装工具镜像:基于 Kali Linux 定制镜像,预装 600+ 渗透测试工具
- 非交互式 I/O:LLM 通过 API 发送命令,引擎捕获 stdout/stderr 返回纯文本
2.4 记忆系统架构
1 | ┌─────────────────────────────────────────────────────┐ |
3. 环境要求
3.1 硬件要求
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 4 核 | 8 核以上 |
| 内存 | 4 GB RAM | 16 GB RAM |
| 磁盘 | 10 GB 可用 | 50 GB SSD |
| 网络 | 可访问互联网 | 稳定宽带连接 |
3.2 软件要求
| 组件 | 版本要求 | 备注 |
|---|---|---|
| 操作系统 | Linux / macOS / Windows | 推荐 Ubuntu 22.04 LTS |
| Docker | 20.10+ | 必须安装 |
| Docker Compose | V2 (docker compose 命令) | 新版 Docker 自带 |
| LLM API Key | 至少一个 | OpenAI / Anthropic / Gemini 等 |
3.3 网络要求
- 需要能够访问 Docker Hub 或配置 Docker 镜像代理
- 需要能够访问 LLM API 提供商(如 OpenAI、Anthropic 等)
- 如果使用 Ollama 本地模型,需要有足够的 GPU 显存(推荐 8GB+)
4. Docker 部署步骤
4.1 准备工作
步骤 1:安装 Docker 和 Docker Compose
1 | # Ubuntu/Debian |
步骤 2:配置 Docker 代理(如需要)
1 | # 创建 Docker 配置目录 |
4.2 标准部署步骤
步骤 1:创建工作目录
1 | mkdir pentagi && cd pentagi |
步骤 2:下载配置文件模板
1 | # 下载 .env 配置文件 |
步骤 3:配置 .env 文件
编辑 .env 文件,填写必填项:
1 | nano .env |
最小配置(至少需要以下内容):
1 | # 必填:LLM 提供商(至少选择一个) |
步骤 4:下载并启动 PentAGI
1 | # 下载 docker-compose.yml |
步骤 5:验证服务状态
1 | # 查看运行中的容器 |
4.3 访问 Web UI
- Web UI 地址:
https://localhost:8443(或http://localhost:8000) - 默认账号:
admin@pentagi.com - 默认密码:
admin - 首次登录需修改密码
注意:如果使用 HTTPS(8443),浏览器会提示自签名证书警告,选择”高级→继续访问”即可。
4.4 快速卸载
1 | cd pentagi |
5. 配置文件详解
5.1 .env 核心配置项
| 配置项 | 必填 | 说明 | 默认值 |
|---|---|---|---|
OPEN_AI_KEY |
推荐 | OpenAI API 密钥 | - |
ANTHROPIC_API_KEY |
推荐 | Anthropic API 密钥 | - |
GEMINI_API_KEY |
可选 | Google Gemini API 密钥 | - |
OLLAMA_SERVER_URL |
可选 | Ollama 服务器地址 | http://localhost:11434 |
OLLAMA_SERVER_MODEL |
可选 | Ollama 模型名称 | - |
DUCKDUCKGO_ENABLED |
推荐 | 启用 DuckDuckGo 搜索 | false |
GOOGLE_API_KEY |
可选 | Google Custom Search API | - |
TAVILY_API_KEY |
可选 | Tavily 搜索 API | - |
GRAPHITI_ENABLED |
推荐 | 启用知识图谱 | true |
NEO4J_PASSWORD |
推荐 | Neo4j 数据库密码 | devpassword |
ASSISTANT_USE_AGENTS |
可选 | 助手模式使用 Agent | false |
5.2 安全配置建议
1 | # 修改 Neo4j 默认密码(强烈建议) |
5.3 高级配置示例
自定义 LLM 提供商配置(custom.provider.yml):
1 | providers: |
6. LLM 提供商配置
6.1 支持的 LLM 提供商
| 提供商 | 配置方式 | 推荐模型 | 费用 |
|---|---|---|---|
| OpenAI | 填写 OPEN_AI_KEY |
GPT-4o / GPT-4o-mini | 按量付费 |
| Anthropic | 填写 ANTHROPIC_API_KEY |
Claude 3.5 Sonnet | 按量付费 |
| Google Gemini | 填写 GEMINI_API_KEY |
Gemini 2.0 Flash | 免费额度 |
| AWS Bedrock | 配置 AWS 凭证 | Claude 3 / Llama 3 | 按量付费 |
| Ollama | 配置服务器地址 | Llama 3 / Qwen 2.5 | 免费(本地) |
| DeepSeek | 自定义提供商 | DeepSeek Chat | 低价 |
| 通义千问 | 自定义提供商 | Qwen-Max | 按量付费 |
6.2 Ollama 本地模型配置
步骤 1:安装 Ollama
1 | # Linux |
步骤 2:下载模型
1 | # 推荐模型(根据硬件选择) |
步骤 3:配置 PentAGI 使用 Ollama
在 .env 中添加:
1 | OLLAMA_SERVER_URL=http://host.docker.internal:11434 |
6.3 DeepSeek 配置示例
1 | # 在 .env 中添加 |
7. Web UI 使用指南
7.1 登录与首次配置
- 浏览器访问
https://localhost:8443 - 使用默认账号
admin@pentagi.com/admin登录 - 系统提示修改密码,设置新密码
- 进入 Settings → LLM Providers,确认已配置的 LLM 连接正常
- 进入 Settings → Tools,查看已集成的安全工具列表
7.2 两种工作模式
PentAGI 提供两种工作模式:
模式一:Assistant(助手模式)
半自动模式,适合交互式渗透测试:
- 用户可以与 AI 助手对话,逐步指导测试流程
- AI 根据对话上下文执行工具并返回结果
- 适合需要人工参与决策的场景
操作步骤:
- 点击左侧 Assistant 进入助手模式
- 输入目标信息(URL / IP / 域名)
- 与 AI 对话,逐步完成渗透测试
- 例如:
"对 192.168.1.100 进行端口扫描" - AI 会调用工具并返回结果,用户可继续下发指令
模式二:Automation(自动化模式)
全自动模式,输入目标后完全由 AI 自主执行:
- 只需输入目标,AI 自动完成全流程
- 支持多目标批量扫描
- 自动生成渗透测试报告
操作步骤:
- 点击左侧 Automation 进入自动化模式
- 点击 New Task 创建新任务
- 输入目标 URL 或 IP 地址
- 选择扫描深度(Quick / Normal / Deep)
- 点击 Start 开始自动化渗透测试
- 在任务详情页实时查看进度和结果
7.3 界面功能概览
| 界面区域 | 功能 |
|---|---|
| Dashboard | 任务概览、统计信息、最近活动 |
| Assistant | 半自动助手模式,交互式渗透测试 |
| Automation | 全自动扫描模式,批量任务管理 |
| Tasks | 所有任务的列表和状态管理 |
| Reports | 已生成的渗透测试报告 |
| Knowledge | 知识图谱可视化,查看资产关系 |
| Settings | 系统配置、LLM 提供商、工具管理 |
7.4 报告查看
- 在 Tasks 中找到已完成的任务
- 点击任务进入详情页
- 点击 Report 查看生成的渗透测试报告
- 报告包含:
- 目标资产清单
- 发现的漏洞详情(CVE、CVSS 评分)
- 漏洞利用验证结果
- MITRE ATT&CK 战术映射
- 修复建议
8. 自动化渗透测试实战
8.1 最小可行测试流程
1 | 用户输入目标 URL |
8.2 实际测试示例
场景:对内部靶机进行自动化渗透测试
- 在 Automation 中创建新任务,目标:
http://192.168.1.100:8080 - 选择扫描深度:Normal
- 点击 Start,系统开始自动执行
系统会自动执行的操作:
1 | # 1. 端口扫描 |
8.3 API 调用(程序化集成)
PentAGI 提供 REST API 和 GraphQL API,支持 CI/CD 集成:
1 | # 创建自动化任务 |
9. 常见问题与排错
9.1 Docker 相关
Q: 启动后卡在 “Initializing Agent” 状态
- 原因:通常是 LLM API 连接问题或 Docker 镜像拉取失败
- 解决:
- 检查 API Key 是否正确:
docker compose logs pentagi | grep -i "api_key" - 检查网络连接:
docker compose exec pentagi curl -I https://api.openai.com - 确认镜像已拉取:
docker compose pull
- 检查 API Key 是否正确:
Q: 拉取 Docker 镜像失败
- 原因:网络问题或 Docker Hub 被墙
- 解决:
- 配置 Docker 镜像加速器(如阿里云、中科大镜像)
- 或配置 Docker HTTP 代理
Q: 容器启动后立即退出
- 原因:端口冲突或配置文件错误
- 解决:
- 检查 8000/8443 端口是否被占用:
netstat -tlnp | grep -E '8000|8443' - 检查
.env文件格式(确保没有多余的空格或注释问题)
- 检查 8000/8443 端口是否被占用:
9.2 LLM 相关
Q: PentAGI 的 LLM 调用成本高吗?
- 使用 GPT-4o 进行一次完整渗透测试,大约消耗 5-10 万 Token(约 $0.5-1 USD)
- 推荐使用 Ollama 本地模型(免费)或 Gemini(免费额度)
- 可以在 Settings 中设置 Token 消耗上限
Q: 使用 Ollama 本地模型响应慢
- 原因:本地模型推理速度受 GPU 性能影响
- 解决:
- 使用量化模型(如
llama3:8b-instruct-q4_K_M) - 确保有足够的 GPU 显存
- 配置 Ollama 使用 GPU 加速
- 使用量化模型(如
9.3 功能相关
Q: PentAGI 扫描速度很慢
- 原因:AI 决策过程需要多次 LLM 调用,这是正常现象
- 解决:
- 选择性能更强的 LLM 模型(减少推理时间)
- 使用 Quick 深度模式
- 设置合理的超时时间
Q: 如何手动终止正在运行的任务?
- 在 Tasks 页面找到任务,点击 Stop 按钮
- 或通过 API:
curl -X POST https://localhost:8443/api/v1/tasks/{task_id}/stop
Q: 扫描结果不准确(误报/漏报)
- AI 模型可能存在误报,建议人工审核关键发现
- 可以调整扫描深度为 Deep,覆盖更多测试场景
- 定期更新 Nuclei 模板库
9.4 部署问题汇总
| 问题 | 症状 | 解决方案 |
|---|---|---|
| API Key 无效 | 任务卡在初始化 | 检查 .env 中的 Key 格式和权限 |
| 端口被占用 | 容器启动失败 | docker compose down 后修改端口映射 |
| 磁盘空间不足 | 镜像拉取失败 | docker system prune -a 清理无用镜像 |
| Neo4j 连接失败 | 知识图谱不可用 | 检查 NEO4J_PASSWORD 是否一致 |
| 沙盒执行超时 | 工具长时间无响应 | 检查目标网络可达性 |
10. 安全注意事项
10.1 法律合规红线
- 授权测试:PentAGI 只能在获得明确授权的目标上进行测试,严禁对未授权目标使用
- 数据保护:测试过程中产生的敏感数据(密码、凭证、数据库内容)须妥善保管
- 合规要求:遵守所在国家/地区的网络安全法律法规
10.2 部署安全
- 修改所有默认密码(Neo4j、Web UI 管理员)
- 在生产环境部署时,使用反向代理(如 Nginx)并配置 TLS 证书
- 不要在公网直接暴露 PentAGI 的 Web 管理界面
- 使用
docker compose down -v彻底清理测试环境的敏感数据
10.3 操作安全
- 建议在隔离的虚拟机或专用服务器上部署
- 测试完成后,及时清理 Docker 容器和日志
- 不要在 PentAGI 的配置文件中存储真实的生产环境凭证
- 定期更新 PentAGI 和 Nuclei 模板库
10.4 资源限制建议
| 配置项 | 建议值 | 说明 |
|---|---|---|
| 并发扫描数 | ≤ 5 | 避免对目标造成压力 |
| 请求间隔 | ≥ 500ms | 避免触发 WAF/限流 |
| 单任务超时 | 6 小时 | 防止无限循环 |
| 单目标最大轮次 | 5 轮 | 避免资源浪费 |
参考资源
| 资源 | 链接 |
|---|---|
| 官方 GitHub | https://github.com/vxcontrol/pentagi |
| 官方网站 | https://pentagi.com |
| VXControl 官网 | https://vxcontrol.com |
| Kali Linux 镜像 | https://github.com/vxcontrol/kali-linux-image |
| PentAGI Taxonomy | https://github.com/vxcontrol/pentagi-taxonomy |
| Graphiti Go Client | https://github.com/vxcontrol/graphiti-go-client |
免责声明:本教程仅供安全研究和授权测试使用。未经授权使用 PentAGI 对目标进行渗透测试可能违反法律法规,使用者需自行承担全部法律责任。