pentestagent
AI 驱动的自动化渗透测试框架,整合 LLM 推理与 Kali 安全工具链,支持 Bug Bount
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI 驱动的自动化渗透测试框架,整合 LLM 推理与 Kali 安全工具链,支持 Bug Bount
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:PentestAgent 项目 Logo
想象一下:你是名赏金猎人,站在一片无边无际的网络森林前。传统做法是手持 Nmap,逐台主机扫描、逐一漏洞验证——效率低、容易遗漏,体力活。PentestAgent 就是来解决这个问题的:它给 AI Agent 装上了一把「自动步枪」,让渗透测试从手工人力时代迈入自动化智能时代。
PentestAgent 由独立安全研究者 GH05TCREW 开发,是一个基于 LLM 的 AI Agent 框架,专门用于黑盒渗透测试、安全审计、赏金猎人和红队攻防场景。项目当前版本 0.2.0(Alpha 阶段),GitHub 已收获超过 2600 颗星,在 AI + 安全交叉领域属于头部项目。
这一类工具的出现有深刻背景:传统渗透测试高度依赖人工经验,一个完整的 Web 应用测试需要扫描、识别、利用、横向移动等多个阶段,每个阶段都要选择合适的工具和参数。随着攻击面不断扩大,人力瓶颈越来越明显。GPT-4、Claude 等大模型展现出的代码理解和推理能力,给自动化渗透测试带来了新的可能性——让 AI 理解测试目标、自主规划攻击路径、调用安全工具执行。
PentestAgent 的工作模式是:用户给定一个目标(IP 或域名),Agent 自动规划并执行渗透测试流程。这听起来简单,背后却整合了多个关键技术层。
项目基于 LiteLLM 封装了对多模型的支持,包括 OpenAI GPT 系列、Anthropic Claude 系列,以及任何兼容 OpenAI API 格式的中转服务。这种设计让用户可以根据任务复杂度选择合适的模型:简单扫描用 GPT-4o 经济实惠,复杂漏洞利用可以用 Claude Sonnet 4 获得更强的推理能力。
Agent 的核心 prompt 遵循 ReAct(Reason + Act)模式:模型先分析当前状态(「已发现 22 个开放端口,80 端口运行 Apache 2.4.41」),然后推理下一步(「检测到 /admin 路径,尝试默认凭证登录」),最后执行工具调用获取结果,循环往复直到达成测试目标或遇到无法突破的障碍。
PentestAgent 不只是调用自己的脚本,它能通过 Docker 容器化环境使用完整的 Kali Linux 安全工具集,包括但不限于:
msfconsole 漏洞利用框架在 Kali 专项容器中,还额外支持 Tor 网络(隐匿攻击者身份)、Angr(二进制静态分析)和 Pwntools。这种设计相当于给 AI Agent 发了一张 Kali 工具箱的使用许可证,让它能像经验丰富的渗透测试工程师一样选择合适的工具。
项目集成了 Playwright 浏览器自动化能力,Agent 可以像真实用户一样操控浏览器访问 Web 应用。这意味着它能处理需要 JavaScript 渲染的 SPA 应用、绕过简单的 Anti-bot 机制、完成登录表单的自动化测试。这对于现代 Web 应用(大量 React/Vue 驱动的 SPA)尤其重要——传统 curl/wget 无法触达的动态内容,PentestAgent 都可以探索。
此外,hexstrike 可选依赖中包含了 Flask、Selenium、mitmproxy 等组件,构成了完整的 Web 安全测试工具链。
PentestAgent 支持 MCP(Model Context Protocol) 协议,这是一个新兴的 AI Agent 工具互操作标准。通过 MCP,PentestAgent 可以与其他 MCP-compatible 工具(如 GitHub MCP、Filesystem MCP)联动,构建更复杂的安全自动化工作流。项目自带 mcp_examples/ 目录,提供具体集成示例。
从代码结构看,PentestAgent 采用了分层模块化架构:
pentestagent/
├── interface/ # TUI 界面层(Textual/Rich)
├── mcp/ # MCP 协议服务端
├── core/ # Agent 核心逻辑
└── tools/ # 安全工具封装
这种分层带来几个明显优势:interface 层负责用户交互,可以是命令行 TUI 也可以通过 MCP 暴露为服务;core 层不关心前端形态,只负责 Agent 的推理循环和工具调度;tools 层则完全与 AI 逻辑解耦,每个工具独立封装,方便新增和测试。
依赖管理使用 pyproject.toml + hatchling 构建系统,这是一个现代化的 Python 项目结构。相比 requirements.txt 或 setup.py,pyproject.toml 能更清晰地声明项目元数据、依赖版本约束和可选扩展组合(dev/rag/all/hexstrike)。
docker compose run --rm pentestagent
一条命令即可启动,不需要在宿主机安装 Python 环境和依赖。容器内已经预装了基础渗透工具(nmap、netcat 等),开箱即用。如果需要更完整的工具链,换成 Kali 镜像:
docker compose --profile kali run --rm pentestagent-kali
git clone https://github.com/GH05TCREW/pentestagent.git
cd pentestagent
./scripts/setup.sh # 自动创建 venv、安装依赖
pip install -e ".[all]" # 包含所有可选依赖
playwright install chromium
pentestagent # 启动 TUI
配置只需一个 .env 文件,填入 ANTHROPIC_API_KEY 或 OPENAI_API_KEY,指定模型即可。TUI 界面(基于 Textual)提供彩色终端交互体验,输入目标 IP 即可开始测试。
PentestAgent 的工具执行默认在本地进行(Docker 容器内),不会将目标主机的数据发送到外部 API。只有 LLM API 通信需要网络连接——Agent 将当前状态和工具输出发送给模型,返回下一步指令。所有测试成果(loot 目录)都存储在本地文件系统。考虑到渗透测试涉及敏感信息,这种设计是负责任的。
不过需要注意的是:Docker 容器默认是非特权模式运行,如果需要 VPN 隧道或网络抓包(Kali 镜像),需要启用 privileged: true 和 NET_ADMIN 能力,这在共享环境下有一定安全风险,项目 README 也有明确警告。
PentestAgent 并非银弹,有几个需要正视的局限:
LLM 推理的不确定性是最核心的问题。AI Agent 在渗透测试中的表现高度依赖于模型对安全上下文的理解能力。对于常见漏洞(如 SQL 注入、XSS),模型通常能给出正确的攻击 payload;但对于复杂认证机制、CSRF token 绕过、 SSTI 等高级漏洞,LLM 的成功率波动较大,有时会「自作聪明」给出无效 payload 或漏掉关键攻击路径。
Docker 环境的资源开销也不可忽视。完整 Kali 镜像体积超过数 GB,每次启动需要较长初始化时间;在低配置机器上运行可能影响工具执行效率。
版本尚处于 Alpha(0.2.0),API 和命令行接口在后续版本中可能有破坏性变更,生产环境使用需注意版本锁定。
PentestAgent 代表的趋势值得关注:AI 正在从「辅助渗透测试」演进为「主导渗透测试」。在 Bug Bounty 场景中,速度就是收益——一个高危漏洞可能因为发现晚了十分钟就被他人抢先报送。AI Agent 的持续工作能力(24 小时不间断推理)和快速学习能力(通过 prompt 工程适应新漏洞类型),为赏金猎人提供了显著的效率杠杆。
同时,这类工具也给防守方带来了新的思考:如果 AI 能自动化攻击,那自动化防御也需要跟上。WAF 规则、Anti-bot 策略、认证强度都需要重新评估以抵御 AI 驱动的自动化攻击。
| 场景 | 推荐配置 |
|---|---|
| 尝鲜体验 | docker compose run --rm pentestagent,Claude Sonnet 4 |
| 常规渗透测试 | 本地 Python 环境 + GPT-4o,性价比最优 |
| Bug Bounty | Kali 镜像 + Claude,最大工具链覆盖 |
| CI/CD 集成 | MCP 模式,暴露为服务接入其他自动化流程 |
PentestAgent 让渗透测试从「手艺活」变成「人机协作」——人类负责设定目标边界和判断关键发现,AI 负责执行大量重复性扫描和枚举工作。这种分工在当前 AI 能力边界下是最务实的定位。