Un1kLog4shellScan
原理
Burpsuite插件中提供对请求包的拦截接口,也就是IHttpListener。我们通过接口捕获所有模块经过的请求包、拷贝请求字节、污染所有可疑参数、调用助手函数中的发包功能后重新发送请求。这样就不会污染原来的请求包,也能够进行深度探测。
首先获取请求包的各类参数,例如content-type。这代表我们要怎么样去污染我们的请求参数,污染的数据可以从配置文件中获取当然也可以从api。我这边把配置相关信息保存在远端api中,这样可以动态的配置白名单、污染payload以及webhook配置。同时还能够采集各类污染的请求包,拿到污染时候的请求包体。由于Mitm截获的请求包会非常多,同时发包会非常卡顿,所以可以在服务端过滤和使用消息队列。插入恶意payload会导致客户端ip被ban,所以我们可以配置代理池,让插件使用代理池中的ip资源进行请求。
后续可以拓展项目,变成对请求包的sql注入探测、fastjson漏洞探测、越权漏洞探测等,这里不再展开。
[配置过重,项目已下架,目前也有更好的探测工具了,文章仅作项目留档:D]
介绍
Un1kLog4shellScan是基于 BurpSuite
插件 JavaAPI
开发的log4shell漏洞被动扫描
的辅助型插件。
设计本插件的想法是因为在某些攻防演练时,由于需要测试过多漏洞以及需要花费时间在资产收集、口令爆破、代码审计、漏洞利用上,忽视了log4shell的漏洞探测。对每一个请求包进行漏洞探测是不现实的,这需要花费大量的时间,并且网上的插件功能比较单一,基本就是无脑插payload。
插件通过污染报文中的参数值,被动进行log4shell漏洞探测,已经实现了对CONTENT_TYPE_URL_ENCODED 、CONTENT_TYPE_JSON与CONTENT_TYPE_NONE的数据格式的参数污染,避免因繁琐的渗透测试遗漏对此漏洞的探测挖掘。同时插件对接本地(或者远程)的api接口,可以实时记录污染报文以及相应场景情况,并可以通过配置设置被动扫描白名单与功能使用范围。插件也可以配置一些参数来控制测试速率与测试payload。
如果使用的是自启动的流量探测服务脚本(server.py),您还可以接入webhook实时告警。
安装
1.下载插件jar包文件,或者自行编译源代码。
2.插件装载: Extender - Extensions - Add - Select File - Next
3.流量捕获服务端使用nohup或者screen等后台运行方式运行 server.py脚本即可,请提前装好相应依赖。
特点
- 全参数污染,被动扫描,不会遗漏任何一个请求包的测试参数。
- 配套web后台管理,方便更新管理。可通过api实现对插件的热加载,与配置切换。
- 对接Webhook流量补获服务端,可以实时补捉可疑的漏洞场景。
实战效果图
1.发现漏洞后 webhook通知
2.设置白名单域名 防止无脑乱插
3.记录请求详情 用于控制测试间隔、观察污染报文
4.控制台输出
5.污染报文查看