pentest-copilot
AI驱动的自主渗透测试代理,一键连接Kali攻击机,自动运行安全工具链并生成发现报告
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI驱动的自主渗透测试代理,一键连接Kali攻击机,自动运行安全工具链并生成发现报告
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样一个场景:你在HackerOne上接了一个赏金任务,面对的是一个全新的目标资产。按照传统流程,你需要先做信息收集、端口扫描、Web指纹识别、漏洞探测……这些重复性工作可能要消耗掉你数小时甚至数天。但现在,你只需要在对话框里输入目标地址,然后喝着咖啡等待——AI代理会像一位经验丰富的渗透测试工程师一样,自动化地完成这一切,甚至还会把发现的安全问题整理成报告。
这就是 Pentest Copilot 正在做的事。它由网络安全公司 BugBase 开发,是一个开源的AI驱动渗透测试代理(AI-Powered Penetration Testing Agent),通过连接到一个Kali Linux攻击容器,让AI自主运行安全工具、读取输出、做出决策并循环迭代。你描述目标,剩下的全部交给它。
传统渗透测试高度依赖人工操作和安全工具链的熟练运用。测试人员需要在Nmap、Burp Suite、SQLMap、FFuf等数十种工具之间来回切换,并手动解读每个工具的输出结果。这一过程不仅耗时,而且对操作者的技术经验要求极高——新手往往不知道下一步该做什么,而即使是有经验的工程师,在面对大型目标时也容易被海量的工具输出淹没,错过关键漏洞。
BugBase团队敏锐地捕捉到了这一痛点。他们在2024年9月发表的arXiv论文《Hacking, the lazy way: LLM augmented pentesting》中系统阐述了一个核心观点:大型语言模型(LLM)完全有能力理解渗透测试的工作流程,并在真实环境中自主执行多轮迭代的安全测试。这篇论文为Pentest Copilot奠定了理论基础。2025年3月,项目正式开源,迅速在安全社区引发关注,截止2026年7月已积累超过1000颗GitHub星标、214个Fork,项目的核心贡献者Dhruva Goyal、Aditya Peela和Sitaraman Subramanian也持续活跃在安全研究一线。
项目的主题标签精准地概括了其定位:ai、cybersecurity、cyllms、pentesting。它既是一个AI应用,也是一个网络安全工具,同时也是一个LLM应用的研究级实验场。
Pentest Copilot的技术架构可以分为三个层次来理解。
项目的"大脑"是一个自主的AI Agent,采用了标准的LLM Agent设计模式。Agent接收用户输入的目标信息后,通过一个大语言模型(默认支持OpenAI/Anthropic/Google/Mistral等多种提供商,也兼容任何OpenAI兼容的API端点)进行推理决策。每次决策循环中,Agent可以选择调用哪些工具来执行命令、读取输出,然后根据结果决定下一步行动。系统默认允许最多25次迭代(一个"Turn"),足够覆盖一个中等复杂度目标的完整渗透测试路径。
在执行过程中,Agent有4种角色区分:main(主Agent)、subagent(子Agent,用于并行任务)、swarm_agent(Swarm群体Agent)、orchestrator(编排器)。这种角色分离确保了工具权限的精细控制——例如只有某些角色才能调用敏感操作。
整个系统的能力通过一个**工具注册表(Tool Registry)**来管理。backend/src/tools/registry.ts是核心文件,从中可以看到项目实现了极其丰富的工具集:
run_bash(在Kali容器中执行Bash命令)、run_python_script(执行Python脚本)、run_install_tool(自动安装所需安全工具)spawn_shell(创建新Shell会话)、write_to_shell(写入命令)、read_shell(读取输出)、list_shells(列出活跃Shell)、close_shell(关闭Shell)google_search(AI自主搜索公开信息)、spawn_subagent(并行启动子Agent)report_finding(记录发现)、check_findings(查看已有发现)、update_engagement_state(更新测试状态)每个工具都有独立的Handler文件(位于backend/src/tools/handlers/目录),实现了ToolDefinition接口,包括工具名称、描述、参数schema、是否需要用户授权确认(requiresConsent)、超时设置等属性。
backend/src/capabilities/registry.ts管理着预配置的工具能力集合(Capabilities),将超过100种安全工具和Python包按照7个类别进行组织:网络(Network)、反弹Shell(Rev)、漏洞利用(Pwn)、密码学(Crypto)、数字取证(Forensics)、隐写术(Stego)以及核心工具(Core)。这个注册表让AI Agent能够"按需"了解和使用这些工具,而不需要全部预装。
Pentest Copilot的技术选型体现了现代全栈应用的典型特征:
后端基于 Node.js 22 + TypeScript,使用了Fastify/Express作为HTTP框架(server.ts中使用了Express),配合 MongoDB 作为主数据库存储会话、用户和工作区数据,Redis 管理会话状态和Socket.IO实时通信的session存储。实时通信层面使用 Socket.IO 实现WebSocket双向通信(终端输出流、VNC画面推送等)。
前端采用了 Next.js 16(React 19),使用 Ant Design 5 作为UI组件库,Redux Toolkit 进行状态管理,Zustand 用于轻量级状态。值得注意的亮点技术包括:@xterm/xterm + @xterm/addon-webgl 实现浏览器内嵌的终端仿真界面;react-vnc 实现VNC画面流式渲染(用于实时观看浏览器代理的自动化操作);react-calendar 管理测试时间轴;recharts 绘制数据图表。
安全工具集成方面,项目使用 dockerode 通过Docker API与宿主机通信(包括与Kali容器的交互),ssh2 实现远程SSH连接管理,burp-rpc 与Burp Suite专业版进行RPC通信(需要Burp Suite Pro License),@caido/sdk-client 与Caido API交互。
AI/LLM集成方面,项目支持多种大模型提供商:SDK层面使用 @anthropic-ai/sdk(Claude)和 openai(GPT-4系列),同时通过 tiktoken-node 实现token计数以控制成本,通过 @langfuse/otel 集成可观测性平台Langfuse进行调用追踪。
图2:Pentest Copilot 在 OWASP Juice Shop 上执行身份认证绕过测试的缩略图
项目的部署设计极为周全。根目录提供了3个docker-compose文件,满足不同场景:
docker-compose.yml:基础版,包含MongoDB + Redis + Backend + Frontend,适合已有Kali攻击机的用户docker-compose.kali.yml:完整版,内置Kali Linux攻击容器(需要privileged模式运行),开箱即用docker-compose.dev.yml:开发版,包含MongoDB + Redis + Kali容器,适合本地开发调试Backend Dockerfile基于 node:22-bookworm-slim,多阶段构建,安装了完整的Chromium运行时依赖(包括glibc、libnss3、libatk等)和VNC栈(xvfb + x11vnc + novnc),用于支持Magnitude浏览器代理的Headless运行。Frontend Dockerfile基于 node:22-alpine,同样多阶段构建,最终产物为静态生成的Next.js应用。
一键启动通过根目录的 run.sh 脚本(重达50KB,包含完整的交互式配置生成逻辑)实现,用户只需运行 ./run.sh start 即可完成所有配置和启动。
作为安全工具,Pentest Copilot自身也内置了多层安全机制:
rm -rf)、磁盘写入(dd / mkfs)、fork炸弹等高危操作,系统强制要求用户在执行前明确授权确认(Consent Model),即使在自动运行模式下也不例外ssh-keygen库安全处理SSH密钥生成和存储不过也需要指出潜在风险:由于系统需要连接攻击容器并执行任意命令,如果部署在共享环境中,API密钥泄露或配置不当可能导致严重后果。项目文档也特别声明了免责声明——仅限授权安全测试使用。
适合的场景:
局限性与挑战:
Pentest Copilot代表了AI安全工具领域的一个重要方向——将LLM的推理能力与专业安全工具生态深度结合,尝试实现渗透测试的部分自动化。它不仅是BugBase公司的旗舰开源产品,也是一个活生生的"AI Agent工程实践"案例,展示了如何在高风险操作环境中构建可控的、工具增强的LLM Agent系统。
项目的持续活跃度(最近更新2026年7月)、完整的文档体系(独立的GitHub Wiki)、学术论文支撑,以及丰富的功能集成(浏览器自动化、并行子Agent、MCP协议暴露),都表明这不仅仅是一个演示项目,而是一个真正经过实战检验的安全研究平台。随着AI Agent技术的持续进化,这类工具将进一步降低渗透测试的门槛,同时也将推动安全行业对"AI驱动安全"这一范式的深入思考。