乐于分享
好东西不私藏

AI 驱动下的 Kali 渗透测试:给Hermes装上200多个 skill

AI 驱动下的 Kali 渗透测试:给Hermes装上200多个 skill

前言

还挺凑巧的。

前些日子在逛GitHub的时候,看到有人把一个完整的渗透测试流程给做成了那种AI agent能够直接加载的技能文件。这个项目叫做kali - pentest,是在x - glacier这个名下。星星的数量可不算多,也就五十来个吧。不过里面的很多东西,还真的是挺有意思的。

kali - pentest这个技能包,简单来讲就是让人工智能学会运用kali的工具去开展渗透测试相关的事儿。它里头有200多个kali linux上的命令行工具,还编写了15个场景playbook。你跟人工智能说帮我扫一下这个目标的web应用,人工智能不会干看着没反应或者胡乱猜命令,而是会依照真正的渗透测试流程一步一步去进行操作。

项目地址:github.com/x-glacier/kali-pentest

image-20260625161751004

它是怎么样进行运作的

kali - pentest存在着三种在运作设计方面的使用方式。第一种是在本地直接进行运行。第二种是通过ssh去连接远程的kali。第三种是采用docker容器的这种方式。

本地的模式是比较容易去进行理解的。也就是说你当下所使用的这一台机器它本身就是kali系统。当ai获取到这个skill之后,所有的命令就在本地直接进行输入就可以了,不需要额外地去进行中转。

SSH模式乃是一种较为灵活的方案。你拥有远程的Kali服务器或者虚拟机。将SSH连接的相关信息告知AI。余下的命令都借助SSH传送过去进行运行。对于长时间扫描这种会使终端被挂住的事情,运用nohup放置到后台,之后运用scp把结果拿取回来,整个流程由AI自行进行处理。

Docker模式乃是为不想装完整Kali的人准备的。开一个持久化容器,技能文件里有详细指引。做基础的web扫描、信息收集这类操作,Docker完全够用。但涉及原始套接字、无线监听、gpu破解这类,就不太能够去应对了,得切回本地或者ssh模式。

有那么一件事儿挺叫人心里不痛快的。在选模式之前,kali - pentest存在着一套就绪检查机制,得先跑一遍环境验证。不能随随便便指定个模式就开扫。它会检查工具存不存在、网络通不通、权限够不够。少了个工具也能接着下去,装一下或换个替代品就是,skill文件里每个分类都有备选方案。

image-20260625161837806

playbook是什么东西

存在15个playbook,看着还挺多的。

说白了就是15个写好的攻击场景模板,相当于一套标准化的作战手册。你把目标交给人工智能,它从决策树里选一个最匹配的,照着步骤去执行。包含了信息收集漏洞分析web渗透漏洞利用密码攻击无线安全云原生rfidnfcvoip和工业控制系统、逆向工程取证分析后渗透报告生成等等等等。

每个playbook还分成三个深度级别——quickstandarddeepquick就是快速扫,top端口加基础web指纹,不做侵入式检查。standard是授权评估的默认选择,该枚举的服务都枚举一遍,该抓的证据都抓到。deep处于猛扫状态,全端口、大字典、gvm/openvas全开,耗时和风险都是最高的。

这种设计存在着一个好处。人工智能不会在一开始的时候就去进行深度层级的扫描操作。除非你明确地表明要进行深度渗透或者是最大覆盖,它才会先从标准模式开始起步。在扫描完成之后发现确实有必要进行深入探究的时候,才会过来问你一下,在征得你的同意之后才会升级成为深度模式。这在授权渗透工作当中是十分重要的,深度层级的全端口扫描大字典爆破这类情况,确实是具有一定的破坏性的。

工具覆盖的范围

skill文件之中将工具划分成十几个大类,web渗透是其中重要的一部分,像sql注入xssssrf文件上传反序列化等都有着对应的工具参考文档。当进入web渗透阶段,人工智能不是随便敲个curl就完了,而是按分类里的golden path来走——先跑自动化扫描器,再手工验证,多个工具交叉确认。单个工具没发现问题不意味着目标真的安全

信息收集是个不可以跨越的阶段,存在子域名枚举端口扫描服务指纹识别、os检测这些步骤。每一步都有好几个工具可选,subfinderamassnmapmasscan都在其中。它还着重强调被动信息收集要在主动扫描之前,很多新手容易忽视。

密码攻击方面有hashcatjohnhydramedusa这些经典的。无线安全有着aircrack - ng全套。后渗透meterpreterbloodhoundmimikatz这些熟知的玩意儿。连报告生成都有专门模块,测试结束之后照着模板出报告。

还有另外的那么一桩事情是得要跟你说一说的。

跨服务交互测试到底是个什么情况?举个例子,同一台主机上跑着web服务和数据库,共享着文件系统或数据库连接。一个服务上传的文件可能通过另一个服务访问到,一个应用里的凭据说不得能登录另一个应用。这种跨服务攻击面,手工测试特容易漏掉。kali - pentestskill文件里对这种情况有明确指引——每个识别出来的服务都要逐项检查,明确记录阴性结果,不能随便标个unknown跳过。

image-20260625162525755

中文支持

kali - pentest这个项目存在着一个令人感到意外的地方,那就是它居然拥有完整的中文版。

项目根目录下有两个文件夹。kali-pentest里是英文原版skill.mdkali-pentest-zh里是中文翻译版。两个结构相同、内容一样。对国内做渗透的朋友比较友好,读起来不吃力。英文原版也留着,有些工具报错是英文的,对着看更容易定位问题。

image-20260625162424346

跟自己的工具联动

有那么一桩事情,是值得特地单独给提溜出来唠一唠的。

kali - pentest当中,虽然已经打包好了200多个工具,但是在实际进行使用的时候,可能会存在个性化的需求。比如说你所习惯使用的特定小脚本,又或者是自己所编写的漏洞利用poc。这个时候不一定要让人工智能现学现写,而是可以把自己的工具目录挂载到docker里面,又或者是放到远程kali的某一个目录之下,让它也能够被扫描到 。

自定义工具目录

自定义工具目录

还有那么一点,kali - pentest在官方文档里明明白白写着支持claude codeopenclaw以及hermes agent。也就是说你当下用的这套hermes环境,能直接加载它的skill文件来用,不需要额外的适配。

存在的一些限制

Kali - pentest并不是那种全然无所不能的玩意儿。

运用它得依托kali环境,无论本地、远程还是docker。要是手头连个kali都没有,得先去搭一个。docker门槛低,但有些底层网络操作确实没法做,特别是windows上的docker desktop,网络模式和linux原生docker差别还挺不小。

还有,skill文件里的工具参考文档得按照需求来进行加载,不能够一下子全部都读取进去。这也就是说你和 ai 每次进行交互的时候,ai 都会依据当前的阶段去读取对应分类的工具文档。要是你在一个任务里面反复切换攻击阶段,文件读取的 io 开销就会累积起来。不过大部分的时候,一个阶段完成之后再进入下一个阶段,io 开销就可以忽略掉不计。

总结

话说回来。

Kali - pentest这类人工智能代理技能包已经出现。这就意味着渗透测试正从人工去敲命令渐渐转变为人去告知AI要做什么、然后由AI去执行。当下它仅仅是减少了一部分具有重复性的体力劳动。你依旧还是得跟AI讲要扫描目标、选择哪一种深度、去确认哪些风险操作。

但从长远看,这件事的意义在于渗透测试的门槛降低了许多。以往你得牢记200多个工具的参数、十几类漏洞的攻击手法,才敢说自己能做渗透。当下有了这种结构化的skill文件,等于有了一套标准化sop,ai照着跑就是。

流程是ai跑的,但判断力还是人的。误报怎么排除、不按套路的漏洞怎么挖、复杂的业务逻辑怎么绕过——这些需要经验和灵感,不是任何操作手册能搞定的。skill文件的意义就是把能标准化的部分标准化了,让你把精力放在真正需要动脑子的地方。

那既然能标准化,就把标准化的活儿交给工具去跑便是。

Hermes运行效果

Hermes运行效果

项目地址再放一遍:github.com/x-glacier/kali-pentest

当下star不多,五十来个,作者还在持续更新。感兴趣的话可以去点个star,顺便看看中文版文档,写得还挺详细的。

🎁 互动与福利

分享本文到朋友圈,点赞+在看+关注,一键三联,可以凭截图找老师领取

上千学习资料+工具哦

22919c6e4ef945aa9a9cbf0f6df4f6ff

分享后扫码加我!