PentestAgent
面向授权黑盒安全测试的可执行 AI 渗透测试助手。
这个 Agent 能做什么,适合哪些场景?
PentestAgent 是一个用于黑盒安全测试的 Python AI 代理框架,覆盖漏洞赏金、红队和渗透测试工作流。它提供终端 TUI 与 CLI,可在 Assist、Agent、Crew 和 Interact 四种模式下执行任务。代理可使用 terminal、browser、notes、web_search 和 spawn_mcp_agent 等内置工具,也可连接外部 MCP 服务器。它将会话、笔记和可选 RAG 知识源结合起来,并能在 Crew 模式中从笔记构建 Shadow Graph。运行环境可以是本机,也可以是包含渗透测试工具的 Docker 容器;同时它还能作为 MCP 服务器通过 stdio 或 SSE 接收任务。
用户先通过 pentestagent -t <target> 或 TUI 的 /target <host> 设置目标,再以 /assist <task>、/agent <task>、/crew <task> 或 /interact <task> 提交工作。代理会调用内置 terminal、browser、notes,以及在配置 TAVILY_API_KEY 后可用的 web_search;Docker 运行时可直接使用 nmap、msfconsole、sqlmap 等 Linux 工具。pentestagent run -t example.com --playbook thp3_web 可运行预置攻击 playbook。任务中的发现会保存为 loot/notes.json,会话保存为 JSON;知识文件可放入 pentestagent/knowledge/sources/ 以供 RAG 注入。作为 MCP 服务端时,它提供 run_task、run_task_async、get_task_result、list_tools、store_memory 等工具;spawn_mcp_agent 还可创建隔离的子代理并将其工具接回父代理。
- 漏洞赏金研究人员在已获授权的站点上,想按 `thp3_web` playbook 开展黑盒 Web 安全评估。
- 红队成员需要把不同网段的端口扫描和服务枚举拆分给多个子代理并异步汇总结果。
- 渗透测试顾问希望在 Docker 的 Kali 镜像中调用 Metasploit、sqlmap 和 Hydra 等预装工具。
- 使用 Claude Desktop 或 Cursor 的安全团队,希望通过 stdio MCP 服务把任务提交给 PentestAgent。
- 需要保留发现、笔记和会话记录的测试人员,希望后续恢复或分叉此前的测试对话。
这个 Agent 有哪些优点和局限?
- 同时提供 TUI、CLI、Docker 和 MCP 服务端,适合交互式与程序化两种接入方式。
- Crew 模式与 `spawn_mcp_agent` 支持分层子代理委派,子代理拥有隔离的运行时、对话历史和笔记存储。
- 当单个 MCP 服务暴露超过 128 个工具时,内置 RAG optimizer 会按嵌入相似度检索相关工具,以控制上下文规模。
- 会话自动保存、`loot/notes.json` 持久笔记和 Crew 的 Shadow Graph 让跨任务发现可以被保留和利用。
- 必须配置兼容提供商的 API key 与模型;项目未说明模型调用成本或配额。
- 浏览器工具需要额外安装 Playwright Chromium,`web_search` 还依赖单独的 `TAVILY_API_KEY`。
- 需要隔离和预装渗透工具时依赖 Docker;Docker 本身必须已安装并运行。
- 文档明确要求只能测试已获明确授权的系统,未经授权的访问可能违法。
如何安装或部署这个 Agent?
需要 Python 3.10+ 和 OpenAI、Anthropic 或其他 LiteLLM 支持提供商的 API key。执行:git clone https://github.com/GH05TCREW/pentestagent.git,cd pentestagent,然后运行 ./scripts/setup.sh(Linux/macOS)或 ./scripts/setup.ps1(Windows)。也可手动执行 python -m venv venv、激活虚拟环境、pip install -e ".[all]",再执行 playwright install chromium。在项目根目录创建 .env,例如:OPENAI_API_KEY=sk-... 与 PENTESTAGENT_MODEL=gpt-5;Anthropic 可改用 ANTHROPIC_API_KEY 和对应模型名。
如何使用这个 Agent?
首次运行可执行 pentestagent -t 192.168.1.1 启动带目标的 TUI,然后输入 /agent <task> 执行单项自主任务,或 /interact <task> 进行引导式交互。要运行 playbook,使用 pentestagent run -t example.com --playbook thp3_web。需要容器隔离时可使用 pentestagent tui --docker,或运行 docker run -it --rm -e ANTHROPIC_API_KEY=your-key -e PENTESTAGENT_MODEL=claude-sonnet-4-20250514 ghcr.io/gh05tcrew/pentestagent:latest。若要供 MCP 客户端调用,运行 pentestagent mcp_server --type stdio;远程 SSE 模式可使用 pentestagent mcp_server --type sse --host 0.0.0.0 --port 8080。