云计算百科
云计算领域专业知识百科平台

PentAGI拆解:能自动做渗透测试的AI多智能体

文章目录

    • 1. 这玩意儿到底是个啥
      • 1.1 名字先搞明白
      • 1.2 基本盘数据
    • 2. 上手到底有多简单
      • 2.1 系统要求
      • 2.2 安装过程
      • 2.3 生产环境别乱来
    • 3. 核心设计:三个员工一台戏
      • 3.1 Orchestrator:那个"项目经理"
      • 3.2 三层记忆系统:AI 也会"记仇"
      • 3.3 链路摘要:防止 AI "脑子装不下"
    • 4. 小模型的"外挂"怎么开
      • 4.1 为什么要专门给小模型做优化
      • 4.2 执行监控:那个"导师"角色
      • 4.3 任务规划:先写 TODO 再动手
    • 5. 安全边界:这个"沙箱"到底有多安全
      • 5.1 两种 Docker 访问方式
      • 5.2 为啥不推荐挂载宿主机 socket
    • 6. 最后说两句

P.S. 推荐一个大神的教程给想要了解或者学习人工智能知识的读者,这个教程里内容讲解通俗易懂且风趣幽默,对我帮助很大。我想与大家分享这个宝藏教程,请点击下方链接查看,传送门https://blog.csdn.net/qq_74013365

先说个真事。上周我朋友——一个干了八年渗透测试的老哥——跟我吐槽,说他现在每天的工作就是:扫端口、跑脚本、复制粘贴结果、写报告。

我说这不就是人工CPU吗?他说对,而且还是那种没有缓存的CPU。

所以当我看到 PentAGI 这个项目的时候,第一反应是:哦,终于有人把这个"人工CPU"的活儿给外包出去了。

**先打个预防针:**这玩意儿是给授权测试用的,别拿着就去扫别人家网站。你要是手痒,先拿自己的服务器练手——真的,自己打自己不犯法。

1. 这玩意儿到底是个啥

1.1 名字先搞明白

PentAGI = Penetration testing + Artificial General Intelligence。翻译过来就是:用通用人工智能来干渗透测试的活儿。

你可能会说,这不就是又一个"AI写脚本"的工具吗?

还真不是。那些工具我见过,本质上就是你问一句"帮我写个SQL注入脚本",AI给你吐一段代码,然后你自己跑、自己调试、自己看结果。

跟你用ChatGPT写代码没啥区别,就是套了个壳。

PentAGI 不一样的地方在于——它是一整个团队。

对,你没听错,不是一个AI,是一组AI,分工明确,跟你公司里的部门似的。有做研究的,有做规划的,有动手执行的。Orchestrator 当项目经理,统筹全局。

我当时看到这个设计,愣了三秒。然后想起来我们公司那个项目经理,再想想这个AI项目经理——

嗯,AI那个至少不会在周会上说"这个需求很简单嘛"。

1.2 基本盘数据

给你们报个数,感受一下这个项目有多火:

28,770 颗 Star。4,325 个 Fork。MIT 许可证,随便折腾。

开发方是 VXControl,一家迪拜的安全公司。Go 写的后端,React 写的前端。2025年1月创建的,到现在不到一年,Trendshift 日榜周榜月榜全在榜。

你想想,一个安全工具,不到一年干到快三万星。这说明什么?说明渗透测试工程师们真的被重复劳动逼疯了。

我甚至怀疑,这个项目的核心用户画像就是:每天跑nmap跑到鼠标手、写报告写到腱鞘炎、还要被客户追着问"什么时候出结果"的安全老哥。

2. 上手到底有多简单

2.1 系统要求

先说硬件要求,省得你兴冲冲装完发现机器带不动。

Docker 和 Docker Compose 得有。至少 2核 CPU、4G 内存、20G 磁盘。能联网,不然拉不动镜像。

就这个配置,说真的,比你跑个本地大模型友好多了。我之前跑个 7B 模型都要 16G 内存起步,这个 4G 就能玩。

当然,你要是想跑大模型当后端,那另说。人家支持 Ollama、DeepSeek、Qwen 这些本地模型,你有多少显存它就能吃多少——跟那种玩游戏的显卡杀手一个德行,只不过这个"游戏"叫"攻击别人服务器"。

2.2 安装过程

官方推荐用交互式安装器,带终端 UI 的那种。我当时心想,不就是装个东西吗,能有多复杂?

结果发现,人家真的是手把手教你。从系统检查,到配置 LLM 提供商,到配置搜索引擎,到生成 SSL 证书,一条龙服务。

我装过那么多开源项目,很多文档都是"见 INSTALL.md",然后 INSTALL.md 里写"请参考官方文档",官方文档写"请参见 FAQ",FAQ 里写"这个问题暂未解决"。

PentAGI 这个安装器,感觉就像有个客服坐在你对面,一步一步问你:“老板,LLM 用哪家的?OpenAI 还是本地模型?搜索引擎要 DuckDuckGo 还是 Google?SSL 证书要不要我帮你生成?”

来,直接上代码:

# 创建安装目录
mkdir -p pentagi && cd pentagi

# 下载安装器(以 Linux amd64 为例)
wget -O installer.zip https://pentagi.com/downloads/linux/amd64/installer-latest.zip
unzip installer.zip

# 运行交互式安装器
./installer

就这几行,没了。

不过有个坑我得提醒你:安装器要访问 Docker API,生产环境建议用 sudo 跑。开发环境的话,把用户加进 docker 组就行。

但是——重点来了——把用户加进 docker 组,本质上等于给了 root 权限。因为你可以挂载宿主机的文件系统进容器,然后为所欲为。

这个事怎么说呢。就像你跟保安说"我是自己人",保安就把整个大楼的钥匙都给你了。确实方便,但你要是自己人不靠谱呢?

2.3 生产环境别乱来

官方特别强调:生产环境或者安全敏感场景,强烈建议用双节点架构。

啥意思呢?就是把"干活的"和"管事儿的"分开。主节点跑 Web 界面、调度逻辑,Worker 节点专门跑那些不可信的攻击代码。

这个设计思路我特别认同。就跟你公司里,财务部和运维部不能是同一个人——不然他既管钱又管服务器,你晚上睡得着吗?

Worker 节点是隔离的,有网络隔离,有 TLS 认证的 Docker-in-Docker,还有专门的端口范围支持带外攻击技术。

简单说就是:让它去折腾,折腾坏了也不影响主系统。

3. 核心设计:三个员工一台戏

3.1 Orchestrator:那个"项目经理"

整个系统的大脑是 Orchestrator,协调者。它的活儿就是:接需求、拆任务、派活儿、收结果。

然后下面三个角色:Researcher(研究员)、Developer(开发者)、Executor(执行者)。

我第一次看到这个分工的时候,直接笑出声。这不就是软件公司的标准配置吗?

研究员负责调研,说"客户这个系统,我查了下,有个XX漏洞的历史案例,咱们可以参考"。

开发者负责规划,说"那行,咱们分三步:先扫端口,再试这个漏洞,最后提权"。

执行者负责动手,说"好嘞",然后开始敲命令。

然后 Orchestrator 在中间说"你们对齐一下进度啊,下午三点我要看到阶段性成果"。

是不是特别熟悉?是不是想到了自己公司的例会?

区别在于,这三个 AI 不会抱怨"这个需求不合理",不会摸鱼刷手机,不会到了下午两点五十才说"啊呀我还没开始做"。

而且它们也不会在离职的时候把代码全删了。嗯,这点确实比真人强。

3.2 三层记忆系统:AI 也会"记仇"

这个项目最让我眼前一亮的设计,是它的记忆系统。

大部分 AI 工具,都是"金鱼记忆"——你这次跟它说的事儿,下次打开就忘了。你每次都得从头开始解释:“我是谁,我在哪,我要干嘛。”

PentAGI 不一样,它有三层记忆。

**第一层:长期记忆。**用 PostgreSQL + pgvector 存的向量库,记的是成功的攻击模式。就是"上次这么打,成功了,这次还用"。

这个设计太懂行了。渗透测试这活儿,本质上就是经验活。你打过得多了,看到某个端口开着,脑子里马上就能蹦出"这个版本的服务有个XX漏洞"。

现在这个经验可以存下来了,跨任务复用。你打十个客户,第十个客户的时候,AI 已经攒了前九个的经验。

我想想都觉得可怕——一个每天24小时不休息、还能不断积累经验的渗透测试工程师。这要是放在招聘市场上,得开多少薪资?

**第二层:工作记忆。**就是当前任务的上下文。现在打到哪了,目标是什么,还剩哪些没做。

**第三层:情景记忆。**记录"发生过什么"。历史操作、执行结果、成功模式。

三层记忆叠在一起,意味着这个系统不是每次都从零开始。它会成长。

你想想,你刚入职的时候,啥都不懂,师傅说啥你做啥。干了三年,你已经是老油条了,看到个登录框就知道哪里可能有注入。

PentAGI 也是这个路子。用得越久,越聪明。

我现在就好奇一个问题:它会不会哪天突然学会了"这个客户太麻烦了,明天再打"?

3.3 链路摘要:防止 AI “脑子装不下”

渗透测试这个活儿,步骤特别多。扫端口、查服务版本、试漏洞、看响应、再试下一个——来回几十轮对话很正常。

问题来了:LLM 的上下文窗口是有限的。你聊了几十轮之后,前面说的啥它就忘了。

这就跟你开会开了俩小时一样,前面讨论的啥已经记不清了,只记得最后说"那就这么定了"——至于定的是啥,回去翻会议纪要吧。

PentAGI 的解法是链路摘要系统。把对话链转成结构化的表示,然后分段摘要。

翻译成人话就是:前面聊的那些,浓缩成几句话记着。最近聊的,完整保留。

而且全局摘要和 Assistant 专用摘要还能分开配置参数。比如最后一段保留多少字节、QA 对留多少个。

这个细节做得很细。你看,它知道最近的对话更重要,所以给 Assistant 模式分配了更多上下文余量。

就跟人一样——你上周三中午吃的啥可能记不清了,但昨天中午吃的啥,你能马上说出来。

4. 小模型的"外挂"怎么开

4.1 为什么要专门给小模型做优化

这部分是我觉得这个项目最实在的地方。

很多开源 AI 项目,默认假设你用的是 GPT-4o 或者 Claude Opus。好像全世界的开发者都跟 OpenAI 有亲戚似的,随便调。

但现实是什么?现实是很多企业内网是气隔离的,根本不能联网调云端大模型。你只能用本地部署的开源模型。

本地模型呢?7B、14B、27B 的,跟顶级闭源模型比,那智商差了不是一点半点。

就好比你给一个实习生配了一整套顶级装备——满屋子的安全工具、20G 的磁盘、Docker 环境——但这个实习生脑子不太好使,容易钻牛角尖。

你让他扫端口,他扫到一个 80 端口,然后就开始反复试同一个 payload,试了五次不行,他还试第六次、第七次、第八次。

你在旁边看着急不急?

4.2 执行监控:那个"导师"角色

所以 PentAGI 加了个 Adviser Agent,导师角色。

它的活儿就是盯着你:你是不是又在原地打转了?是不是连续五次调用同一个工具了?是不是总调用次数已经超过十次了?

一旦发现异常,它就跳出来说:“停停停,你这个思路不对,换个方向试试。”

这个设计,怎么说呢。就跟你写代码写不出来的时候,旁边坐个 Senior,时不时瞟一眼你的屏幕。

你本来想循环报错试十次的,瞟一眼旁边有人看着,突然就冷静下来了:“嗯,我是不是应该先看看日志?”

小模型也是这样。没人盯着它,它就一根筋走到底。有人盯着,它就会及时拐弯。

4.3 任务规划:先写 TODO 再动手

另一个是智能任务规划。

就是专业 Agent 开始干活之前,Planner 先把原始请求拆成 3-7 个具体步骤,用 <task_assignment> 结构包好。

为啥要这么干?因为小模型容易跑题。

你让它"测试这个网站的登录系统有没有漏洞",它可能打着打着就开始研究人家的前端框架了,再打着打着开始分析人家的 CDN 配置了——

就是不碰登录。

有了任务规划就不一样了。第一步干嘛、第二步干嘛、第三步干嘛,写得明明白白。它就照着清单做,不容易跑偏。

这个思路跟咱们开发写 TODO list 是一个道理。你要是不写下来,干着干着就不知道自己在干嘛了。

官方用 Qwen3.5-27B-FP8 做的测试:同时开启这两项能力,结果质量提升 2 倍。

但是——代价是 Token 消耗和执行时间增加 2-3 倍。

你看,这就是现实。天下没有免费的午餐。你想让笨一点的模型也能干活,就得花更多的时间和算力去盯着它。

跟带新人一个道理。新人上手慢,但你教好了,后面能帮你分担不少。

5. 安全边界:这个"沙箱"到底有多安全

5.1 两种 Docker 访问方式

渗透测试嘛,很多时候需要在 Sandbox 里面跑 docker 命令。PentAGI 给了两种方案。

**推荐方案:**Sandbox 通过 TLS 连接一个独立的 dind 守护进程。不挂载任何 socket,只配远程 TLS 端点。

**不推荐方案:**直接 Bind-mount 一个 Docker socket。

看到这里你可能会问:不推荐为啥还要给方案?直接删掉不行吗?

因为方便啊。直接挂载 socket,一行配置搞定,啥都不用管。

但是——问题来了。

5.2 为啥不推荐挂载宿主机 socket

第一个问题:启动顺序竞态。

啥意思呢?就是容器重启的时候,挂载的源可能还不存在。Docker 看到一个不存在的挂载源,会自动创建成一个目录。

然后 dind 重建 socket 的时候,发现这个位置已经被一个目录占了,就写不进去了。

这就跟你去咖啡店点单,店员说"稍等,我先把这桌收拾出来",结果你等了十分钟回来,发现那桌已经被人坐了——还是你点的那杯拿铁放在旁边。

第二个问题更严重:你要是挂载的是宿主机的 Docker socket,等于把宿主机级别的 Docker API 完全交给了一个自主 Agent。

这个 Agent 能干啥?它可以启动特权容器,可以挂载 / 目录,可以直接把整个节点攻陷——包括 PentAGI 自己。

我当时看到这段的时候,反复确认了三遍:真的吗?这么直白?

一个渗透测试工具,自己文档里写着"你要是这么配,等于把自己家大门钥匙交给一个你根本控制不了的 AI"。

这坦诚程度,我给满分。

很多项目不是不知道这个风险,是不说。或者说"请注意安全配置",就完了。

PentAGI 是直接把失败模式给你列出来:会发生什么、为什么会发生、后果是什么。

这就像一个餐厅,菜单上不仅写"这道菜很辣",还写"吃了可能会拉肚子,肠胃不好的别点"。

你说你点不点?那是你的事儿,但人家告诉你了。

6. 最后说两句

这个项目最打动我的,不是它的技术有多牛。

说实话,多智能体架构、向量数据库、Docker 沙箱——这些技术单拎出来,都不是什么新鲜玩意儿。

打动我的是它的工程态度。

第一,它真的在解决一个真实的痛点。渗透测试工程师每天花大量时间在重复劳动上,这个事儿谁都知道,但真正做一个系统来解决的,不多。

第二,它对小模型的态度很诚实。没有假装"用我们的系统,7B 模型也能达到 GPT-4 的效果"。而是老老实实告诉你:32B 以下的模型,你必须开这两个功能,不然效果不行。代价是什么,也明明白白写出来。

第三,它对安全风险的披露很透明。一个做渗透测试的工具,自己先把自己的攻击面给你列出来了。这很难得。

很多人做安全工具,就跟卖锁的一样——只告诉你这个锁有多结实,不告诉你这个锁有几种被撬开的方法。

PentAGI 是连"我这个锁用什么钥匙能捅开"都告诉你了。

当然,前提还是那句话:仅用于授权测试。

你要是觉得"哇这个好厉害,我去扫一下隔壁公司试试"——打住。

真的,你自己搭个靶机练手不香吗?AWS 上开个实例,一天也就几块钱。比你吃官司便宜多了。

项目地址我就不放正文里了,自己去 GitHub 搜 PentAGI 就行。

对了,记得 Star。好项目不 Star,下次找不到了别怪我没提醒你。

P.S. 推荐一个大神的教程给想要了解或者学习人工智能知识的读者,这个教程里内容讲解通俗易懂且风趣幽默,对我帮助很大。我想与大家分享这个宝藏教程,请点击下方链接查看,传送门https://blog.csdn.net/qq_74013365

赞(0)
未经允许不得转载:网硕互联帮助中心 » PentAGI拆解:能自动做渗透测试的AI多智能体
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!