前言
还挺凑巧的。
前些日子在逛GitHub的时候,看到有人把一个完整的渗透测试流程给做成了那种AI agent能够直接加载的技能文件。这个项目叫做kali - pentest,是在x - glacier这个名下。星星的数量可不算多,也就五十来个吧。不过里面的很多东西,还真的是挺有意思的。
kali - pentest这个技能包,简单来讲就是让人工智能学会运用kali的工具去开展渗透测试相关的事儿。它里头有200多个kali linux上的命令行工具,还编写了15个场景playbook。你跟人工智能说帮我扫一下这个目标的web应用,人工智能不会干看着没反应或者胡乱猜命令,而是会依照真正的渗透测试流程一步一步去进行操作。
项目地址:github.com/x-glacier/kali-pentest

它是怎么样进行运作的
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文件里每个分类都有备选方案。

playbook是什么东西
存在15个playbook,看着还挺多的。
说白了就是15个写好的攻击场景模板,相当于一套标准化的作战手册。你把目标交给人工智能,它从决策树里选一个最匹配的,照着步骤去执行。包含了信息收集、漏洞分析、web渗透、漏洞利用、密码攻击、无线安全、云原生、rfid和nfc、voip和工业控制系统、逆向工程、取证分析、后渗透、报告生成等等等等。
每个playbook还分成三个深度级别——quick、standard、deep。quick就是快速扫,top端口加基础web指纹,不做侵入式检查。standard是授权评估的默认选择,该枚举的服务都枚举一遍,该抓的证据都抓到。deep处于猛扫状态,全端口、大字典、gvm/openvas全开,耗时和风险都是最高的。
这种设计存在着一个好处。人工智能不会在一开始的时候就去进行深度层级的扫描操作。除非你明确地表明要进行深度渗透或者是最大覆盖,它才会先从标准模式开始起步。在扫描完成之后发现确实有必要进行深入探究的时候,才会过来问你一下,在征得你的同意之后才会升级成为深度模式。这在授权渗透工作当中是十分重要的,深度层级的全端口扫描、大字典爆破这类情况,确实是具有一定的破坏性的。
工具覆盖的范围
在skill文件之中将工具划分成十几个大类,web渗透是其中重要的一部分,像sql注入、xss、ssrf、文件上传、反序列化等都有着对应的工具参考文档。当进入web渗透阶段,人工智能不是随便敲个curl就完了,而是按分类里的golden path来走——先跑自动化扫描器,再手工验证,多个工具交叉确认。单个工具没发现问题不意味着目标真的安全。
信息收集是个不可以跨越的阶段,存在子域名枚举、端口扫描、服务指纹识别、os检测这些步骤。每一步都有好几个工具可选,subfinder、amass、nmap、masscan都在其中。它还着重强调被动信息收集要在主动扫描之前,很多新手容易忽视。
密码攻击方面有hashcat、john、hydra、medusa这些经典的。无线安全有着aircrack - ng全套。后渗透有meterpreter、bloodhound、mimikatz这些熟知的玩意儿。连报告生成都有专门模块,测试结束之后照着模板出报告。
还有另外的那么一桩事情是得要跟你说一说的。
跨服务交互测试到底是个什么情况?举个例子,同一台主机上跑着web服务和数据库,共享着文件系统或数据库连接。一个服务上传的文件可能通过另一个服务访问到,一个应用里的凭据说不得能登录另一个应用。这种跨服务攻击面,手工测试特容易漏掉。kali - pentest的skill文件里对这种情况有明确指引——每个识别出来的服务都要逐项检查,明确记录阴性结果,不能随便标个unknown跳过。

中文支持
kali - pentest这个项目存在着一个令人感到意外的地方,那就是它居然拥有完整的中文版。
项目根目录下有两个文件夹。kali-pentest里是英文原版skill.md,kali-pentest-zh里是中文翻译版。两个结构相同、内容一样。对国内做渗透的朋友比较友好,读起来不吃力。英文原版也留着,有些工具报错是英文的,对着看更容易定位问题。

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

自定义工具目录
还有那么一点,kali - pentest在官方文档里明明白白写着支持claude code、openclaw以及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运行效果

项目地址再放一遍:github.com/x-glacier/kali-pentest
当下star不多,五十来个,作者还在持续更新。感兴趣的话可以去点个star,顺便看看中文版文档,写得还挺详细的。
🎁 互动与福利
分享本文到朋友圈,点赞+在看+关注,一键三联,可以凭截图找老师领取
上千学习资料+工具哦
分享后扫码加我!
夜雨聆风