PentAGI 自动渗透测试平台搭建与使用教程

版本:v1.0 | 更新时间:2026-07-08 | 基于 PentAGI v0.3.0+


目录

  1. PentAGI 简介
  2. 核心架构与工作原理
  3. 环境要求
  4. Docker 部署步骤
  5. 配置文件详解
  6. LLM 提供商配置
  7. Web UI 使用指南
  8. 自动化渗透测试实战
  9. 常见问题与排错
  10. 安全注意事项

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
用户输入目标


┌─────────────────────────────────────────────────────────┐
│ Orchestrator (编排器) │
│ 职责:任务分解、策略规划、结果汇总、报告生成 │
│ 决策依据:当前状态向量 + 知识图谱 + 历史记忆 │
└─────────────────────────────────────────────────────────┘
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────────┐ ┌──────────────┐
│ Researcher│ │ Developer │ │ Executor │
│ (研究员) │ │ (开发者) │ │ (执行器) │
├──────────┤ ├──────────────┤ ├──────────────┤
│ 子域名枚举│ │ PoC 脚本编写 │ │ 工具沙盒执行 │
│ 端口扫描 │ │ Payload 生成 │ │ 结果捕获解析 │
│ 指纹识别 │ │ 绕过策略开发 │ │ 输出结构化 │
│ 情报收集 │ │ 漏洞利用开发 │ │ 验证与确认 │
└──────────┘ └──────────────┘ └──────────────┘

各 Agent 职责:

  • Orchestrator:系统的”大脑”,接收目标后分解为子任务,协调各 Agent 协作,根据实时状态动态调整策略
  • Researcher:负责信息收集阶段,执行子域名枚举、端口扫描、服务指纹识别、技术栈检测
  • Developer:负责漏洞利用阶段的 PoC 编写、Payload 生成、绕过策略开发
  • Executor:在隔离的 Docker 沙盒中执行工具命令,捕获输出并解析为结构化数据

2.2 OODA 决策闭环

每次攻击尝试都处于一个持续滚动的 OODA 循环 中 [cite:5]:

1
2
3
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
2
3
4
5
6
7
8
9
10
┌─────────────────────────────────────────────────────┐
│ PentAGI Memory │
├─────────────────┬───────────────────────────────────┤
│ 短期记忆 │ 长期记忆 │
│ (Session Context)│ (PostgreSQL + pgvector 向量存储) │
│ │ (Neo4j 图数据库 - 知识图谱) │
│ 当前会话状态 │ 历史测试经验 │
│ 工具执行历史 │ 资产关系拓扑 │
│ 临时决策数据 │ CVE 关联映射 │
└─────────────────┴───────────────────────────────────┘

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
2
3
4
5
6
7
8
9
# Ubuntu/Debian
sudo apt update
sudo apt install docker.io docker-compose-plugin -y
sudo systemctl enable docker
sudo systemctl start docker

# 验证安装
docker --version
docker compose version

步骤 2:配置 Docker 代理(如需要)

1
2
3
4
5
6
7
8
9
10
11
12
13
# 创建 Docker 配置目录
sudo mkdir -p /etc/systemd/system/docker.service.d

# 配置 HTTP 代理(替换为你的代理地址)
sudo tee /etc/systemd/system/docker.service.d/proxy.conf <<EOF
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080"
Environment="HTTPS_PROXY=http://proxy.example.com:8080"
Environment="NO_PROXY=localhost,127.0.0.1"
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

4.2 标准部署步骤

步骤 1:创建工作目录

1
mkdir pentagi && cd pentagi

步骤 2:下载配置文件模板

1
2
3
4
5
6
7
8
# 下载 .env 配置文件
curl -o .env https://raw.githubusercontent.com/vxcontrol/pentagi/master/.env.example

# 下载 LLM 提供商配置示例(可选)
curl -o custom.provider.yml https://raw.githubusercontent.com/vxcontrol/pentagi/master/examples/configs/custom-openai.provider.yml

# 下载 Ollama 配置示例(可选)
curl -o ollama.provider.yml https://raw.githubusercontent.com/vxcontrol/pentagi/master/examples/configs/ollama-llama318b.provider.yml

步骤 3:配置 .env 文件

编辑 .env 文件,填写必填项:

1
nano .env

最小配置(至少需要以下内容):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 必填:LLM 提供商(至少选择一个)
OPEN_AI_KEY=sk-your-openai-api-key
# 或
ANTHROPIC_API_KEY=sk-ant-your-anthropic-api-key
# 或
GEMINI_API_KEY=your-gemini-api-key

# 必填:搜索功能(至少启用一个)
DUCKDUCKGO_ENABLED=true

# 知识图谱(推荐启用)
GRAPHITI_ENABLED=true
GRAPHITI_URL=http://graphiti:8000

# Neo4j 配置
NEO4J_URI=bolt://neo4j:7687
NEO4J_PASSWORD=devpassword

步骤 4:下载并启动 PentAGI

1
2
3
4
5
6
7
8
# 下载 docker-compose.yml
curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/master/docker-compose.yml

# 启动所有服务
docker compose up -d

# 查看启动日志
docker compose logs -f

步骤 5:验证服务状态

1
2
3
4
5
6
7
8
9
# 查看运行中的容器
docker compose ps

# 正常输出应包含以下容器:
# - pentagi (主服务)
# - postgres (数据库)
# - neo4j (图数据库)
# - graphiti (知识图谱)
# - kali-linux (Kali 工具镜像)

4.3 访问 Web UI

  • Web UI 地址https://localhost:8443(或 http://localhost:8000
  • 默认账号admin@pentagi.com
  • 默认密码admin
  • 首次登录需修改密码

注意:如果使用 HTTPS(8443),浏览器会提示自签名证书警告,选择”高级→继续访问”即可。

4.4 快速卸载

1
2
3
cd pentagi
docker compose down -v
rm -rf 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
2
3
4
5
# 修改 Neo4j 默认密码(强烈建议)
NEO4J_PASSWORD=your-strong-password-here

# 修改默认管理员密码
# 首次登录后通过 Web UI 修改

5.3 高级配置示例

自定义 LLM 提供商配置custom.provider.yml):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
providers:
- name: custom-openai
type: openai
base_url: https://your-custom-endpoint.com/v1
api_key: ${OPEN_AI_KEY}
models:
- name: gpt-4o
max_tokens: 16384
temperature: 0.7
- name: deepseek
type: openai
base_url: https://api.deepseek.com/v1
api_key: ${DEEPSEEK_API_KEY}
models:
- name: deepseek-chat
max_tokens: 8192

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
2
3
4
5
# Linux
curl -fsSL https://ollama.com/install.sh | sh

# 启动服务
ollama serve

步骤 2:下载模型

1
2
3
4
# 推荐模型(根据硬件选择)
ollama pull llama3:8b # 8B 参数,适合 8GB 显存
ollama pull qwen2.5:7b # 7B 参数,中文优化
ollama pull llama3:70b # 70B 参数,适合 48GB 显存

步骤 3:配置 PentAGI 使用 Ollama

.env 中添加:

1
2
OLLAMA_SERVER_URL=http://host.docker.internal:11434
OLLAMA_SERVER_MODEL=llama3:8b

6.3 DeepSeek 配置示例

1
2
3
4
5
6
7
8
9
10
11
12
# 在 .env 中添加
DEEPSEEK_API_KEY=sk-your-deepseek-key

# 在 custom.provider.yml 中添加
providers:
- name: deepseek
type: openai
base_url: https://api.deepseek.com/v1
api_key: ${DEEPSEEK_API_KEY}
models:
- name: deepseek-chat
max_tokens: 8192

7. Web UI 使用指南

7.1 登录与首次配置

  1. 浏览器访问 https://localhost:8443
  2. 使用默认账号 admin@pentagi.com / admin 登录
  3. 系统提示修改密码,设置新密码
  4. 进入 SettingsLLM Providers,确认已配置的 LLM 连接正常
  5. 进入 SettingsTools,查看已集成的安全工具列表

7.2 两种工作模式

PentAGI 提供两种工作模式:

模式一:Assistant(助手模式)

半自动模式,适合交互式渗透测试:

  • 用户可以与 AI 助手对话,逐步指导测试流程
  • AI 根据对话上下文执行工具并返回结果
  • 适合需要人工参与决策的场景

操作步骤:

  1. 点击左侧 Assistant 进入助手模式
  2. 输入目标信息(URL / IP / 域名)
  3. 与 AI 对话,逐步完成渗透测试
  4. 例如:"对 192.168.1.100 进行端口扫描"
  5. AI 会调用工具并返回结果,用户可继续下发指令

模式二:Automation(自动化模式)

全自动模式,输入目标后完全由 AI 自主执行:

  • 只需输入目标,AI 自动完成全流程
  • 支持多目标批量扫描
  • 自动生成渗透测试报告

操作步骤:

  1. 点击左侧 Automation 进入自动化模式
  2. 点击 New Task 创建新任务
  3. 输入目标 URL 或 IP 地址
  4. 选择扫描深度(Quick / Normal / Deep)
  5. 点击 Start 开始自动化渗透测试
  6. 在任务详情页实时查看进度和结果

7.3 界面功能概览

界面区域 功能
Dashboard 任务概览、统计信息、最近活动
Assistant 半自动助手模式,交互式渗透测试
Automation 全自动扫描模式,批量任务管理
Tasks 所有任务的列表和状态管理
Reports 已生成的渗透测试报告
Knowledge 知识图谱可视化,查看资产关系
Settings 系统配置、LLM 提供商、工具管理

7.4 报告查看

  1. Tasks 中找到已完成的任务
  2. 点击任务进入详情页
  3. 点击 Report 查看生成的渗透测试报告
  4. 报告包含:
    • 目标资产清单
    • 发现的漏洞详情(CVE、CVSS 评分)
    • 漏洞利用验证结果
    • MITRE ATT&CK 战术映射
    • 修复建议

8. 自动化渗透测试实战

8.1 最小可行测试流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
用户输入目标 URL


Phase 1: 信息收集 (Reconnaissance)
├─ 子域名枚举 (subfinder, amass)
├─ 端口扫描 (nmap -sV -sC -T4)
├─ Web 指纹识别 (httpx, whatweb)
└─ 技术栈检测 (wappalyzer)


Phase 2: 漏洞扫描 (Vulnerability Scanning)
├─ Nuclei 模板扫描 (CVE/配置/暴露)
├─ 目录枚举 (ffuf, dirsearch)
├─ URL 收集 (gau, waybackurls)
└─ 参数发现 (arjun)


Phase 3: 漏洞利用 (Exploitation)
├─ SQL 注入检测 (sqlmap)
├─ XSS 验证 (dalfox)
├─ 命令执行尝试
└─ 文件包含/上传测试


Phase 4: 报告生成 (Reporting)
├─ 漏洞汇总
├─ 利用链分析
├─ CVSS 评分
└─ MITRE ATT&CK 映射

8.2 实际测试示例

场景:对内部靶机进行自动化渗透测试

  1. 在 Automation 中创建新任务,目标:http://192.168.1.100:8080
  2. 选择扫描深度:Normal
  3. 点击 Start,系统开始自动执行

系统会自动执行的操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 1. 端口扫描
nmap -sV -sC -T4 -p- 192.168.1.100

# 2. 子域名枚举(如果目标是域名)
subfinder -d example.com

# 3. Web 指纹识别
httpx -title -tech-detect -status-code -ip -ports 80,443,8080,8443

# 4. 漏洞模板扫描
nuclei -u http://192.168.1.100:8080 -t cves/ -t exposures/ -t misconfigurations/

# 5. 目录枚举
ffuf -u http://192.168.1.100:8080/FUZZ -w /usr/share/wordlists/dirb/common.txt

# 6. SQL 注入检测(如发现注入点)
sqlmap -u "http://192.168.1.100:8080/page?id=1" --batch --level=3

# 7. 生成报告
# 自动生成包含所有发现的 HTML 报告

8.3 API 调用(程序化集成)

PentAGI 提供 REST API 和 GraphQL API,支持 CI/CD 集成:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 创建自动化任务
curl -X POST https://localhost:8443/api/v1/tasks \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"target": "https://test.example.com",
"depth": "normal",
"mode": "automation"
}'

# 查询任务状态
curl -X GET https://localhost:8443/api/v1/tasks/{task_id} \
-H "Authorization: Bearer YOUR_TOKEN"

# 获取任务报告
curl -X GET https://localhost:8443/api/v1/tasks/{task_id}/report \
-H "Authorization: Bearer YOUR_TOKEN"

9. 常见问题与排错

9.1 Docker 相关

Q: 启动后卡在 “Initializing Agent” 状态

  • 原因:通常是 LLM API 连接问题或 Docker 镜像拉取失败
  • 解决
    1. 检查 API Key 是否正确:docker compose logs pentagi | grep -i "api_key"
    2. 检查网络连接:docker compose exec pentagi curl -I https://api.openai.com
    3. 确认镜像已拉取:docker compose pull

Q: 拉取 Docker 镜像失败

  • 原因:网络问题或 Docker Hub 被墙
  • 解决
    1. 配置 Docker 镜像加速器(如阿里云、中科大镜像)
    2. 或配置 Docker HTTP 代理

Q: 容器启动后立即退出

  • 原因:端口冲突或配置文件错误
  • 解决
    1. 检查 8000/8443 端口是否被占用:netstat -tlnp | grep -E '8000|8443'
    2. 检查 .env 文件格式(确保没有多余的空格或注释问题)

9.2 LLM 相关

Q: PentAGI 的 LLM 调用成本高吗?

  • 使用 GPT-4o 进行一次完整渗透测试,大约消耗 5-10 万 Token(约 $0.5-1 USD)
  • 推荐使用 Ollama 本地模型(免费)或 Gemini(免费额度)
  • 可以在 Settings 中设置 Token 消耗上限

Q: 使用 Ollama 本地模型响应慢

  • 原因:本地模型推理速度受 GPU 性能影响
  • 解决
    1. 使用量化模型(如 llama3:8b-instruct-q4_K_M
    2. 确保有足够的 GPU 显存
    3. 配置 Ollama 使用 GPU 加速

9.3 功能相关

Q: PentAGI 扫描速度很慢

  • 原因:AI 决策过程需要多次 LLM 调用,这是正常现象
  • 解决
    1. 选择性能更强的 LLM 模型(减少推理时间)
    2. 使用 Quick 深度模式
    3. 设置合理的超时时间

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 对目标进行渗透测试可能违反法律法规,使用者需自行承担全部法律责任。