Pocsuite Skill 的一次测试
前言
前些天看了 Skill 这个东西,发现使用它去做 pocsuite3 自动化编写会更好。
不过就需要使用支持 skill 的客户端来写了,不能直接把之前的数据丢给 API。
如果直接通过 API 去做,最好的方法还是之前那样,减小 token。毕竟 skill 的本质也是 AI 调用工具去阅读 Skill 元数据,然后 AI 选择在深入的读取某个 SKILL 文档,注入到 user prompt 中,完成所谓的学习技能。
更新:后面依旧还是类 API 的方案更优
测试
Skill 比较简单,就是告诉 AI 漏洞信息的格式,还有每种漏洞模板的所在位置和要补全的函数方法。
- 解析漏洞信息,按照 XXX 要求填入模板属性
- 根据漏洞利用结果在 templates 选择合适的模板,可以命令执行的模板存放在 XXX,需要完成 xxx 方法…..
设想就是 AI 可以根据用户输入的信息,然后选择对应的 POC 模板,再按照要求去补全代码。

找了找新一点的漏洞,今天刚好就有:

来看一看 AI 编写的过程
vscode 的 fetch 工具感觉应该挺好的,能够读取微信


运行的结果没有问题,可以检测,但是很明显的解密有问题,不过这还好,多让 AI 修改几次就可以:

但是模板后面一些不允许动的地方给我去掉了,同时又自己加了乱七八糟的东西。

思考
除了使用的是免费的模型本身的问题之外,就是 Skill 的本质还是 User Prompt,所以模板内容也会给 AI,一个模板可能就 400 ~ 600 行,给到 AI,它可能实现好功能之外,就把非必须的东西给去掉了。还有就是插件的 vulID 属性,明明说了没有标注的字段不要填写,还是不行。
另一种模式
测试一下之前使用 API 来自动化转换的模式。AI 生成 JSON 格式的漏洞属性、模板标识、模板函数,然后我们用工具做测试替换合并为完整的 POC。
省 token,毕竟 AI 不需要读取和输出整个 pocsuite 脚本。
对于 AI 来说,生成代码到 JSON 和 py 其实没有区别,毕竟它又不靠眼睛。
这里写了一个简单的 Demo

写好每种类型对应的必备函数和 flag

然后对应 flag 的模板和替换脚本

再次运行


现在生成的 poc 就毕竟完美,格式正确,那么检测就不会出错。
不会扰乱格式和漏洞的检测方式,至少目前来说,这种方式依旧是 pocsuite 脚本毕竟好用的模式。

结语
Skill 的本质依旧是 user prompt,所以不要把它想想的过于强大。
依旧是依靠 AI + 提示词 + 工具