该工具为被动扫描Log4j2漏洞CVE-2021-44228
的BurpSuite插件,具有多DNSLog(后端)平台支持,支持异步并发检测、内网检测、延迟检测等功能。
一、安装方法
建议使用BurpSuite 2020
或以上更高版本,低版本BurpSuite未经严格测试可能会产生未知异常,安装需导航至BurpSuite的Extender->Extensions
界面,点击Add
按钮,在弹出的窗口中点击Select file ...
按钮,在文件打开页面中找到插件的jar文件,安装即可。
在安装、设置完成后推荐使用vulfocus测试靶场,或公开靶场:http://d63bb2586.lab.aqlab.cn/测试插件是否工作正常。
在正常状况下,使用DnslogCN后端平台检测http://d63bb2586.lab.aqlab.cn/
靶场的登录接口,从检测开始至首次获取DNSLog结果,用时应在5秒以内。
二、插件特性说明
本插件相较于传统Log4j检测插件有几点特殊功能,此处单独说明。
并发
本插件在开启Enable Ex-request设置项后将会支持并发检测,并发量目前默认为10线程并发,后续将会开发并发相关的开启/关闭、并发量的设置界面。
内网检测
本插件的内网检测仅支持RevSuitRMI的后端平台,即基于RMI协议的TCP回连机制,需要在内网环境中访问性较好的服务器中搭建revsuit服务,设置相关参数后即可使用。
延迟检测
由于部分后端平台在接收到漏洞服务器发来的请求后并不会立即更新至Dnslog记录中、或漏洞服务器的网络状态导致的网络延迟,导致在旧版本的Log4j2Scan插件中,常常会出现插件无法正常检测到实际存在的漏洞,而在稍后登录相关平台的网站页面中才能看到Dnslog的查询记录。
在v0.13更新中,对该情况做了特殊处理,当首次查询DNSLog记录未能检测到漏洞的检测点,将会保存至插件缓存。同时为了避免条目过多导致内存泄漏,目前缓存时间设置为5分钟,在这5分钟之内,插件将会每30s查询一次后端平台,重新检查漏洞点是否触发,并在检测到触发后在BurpSuite中生成漏洞条目,以避免大部分情况下的漏报问题。
三、使用
该插件安装完成后,建议根据需要修改插件设置,插件设置位于BurpSuite的Log4j2Scan选项卡,本插件默认使用BurpSuite内嵌的后端平台BurpCollaborator
,建议切换至DnslogCN
或DigPm
,扫描发现的漏洞将会生成漏洞条目出现在BurpSuite首页的Issue activity
中。
本插件具有如下设置项:
Backend
该设置界面用户修改当前使用的后端平台,目前支持的平台如下表所示:
POC
设置启用的POC类型,根据WAF拦截情况与补丁绕过提供了多种POC类型,但是设置启用的数量过多将会导致流量激增、检测速度变慢。
Fuzz
修改模糊测试的相关配置。
Fuzz Mode
修改模糊测试的测试模式,测试模式分为两种,EachFuzz
与Crazy
,默认为EachFuzz
,两者区别如下。
Scan Mode
修改扫描的触发机制,分为两种Passive
、Active
,默认为Passive
,两者区别如下。
建议日常设置为Active
,仅在人工判断请求为漏洞常见特征时,再发送至插件进行扫描,以降低出现未授权攻击的可能性。
Enable Ex-request
开启插件自实现的POC请求机制(强烈建议开启),在开启该选项的情况下,将会支持并发检测,并且将不再会使用BurpSuite提供的API发送请求(在Logger选项卡中将没有请求记录)以绕过其无法设置超时时间的限制,并在发送完POC请求后不会等待服务端响应,大幅提升检测速度。
Fuzz漏洞点设置
四、效果截图
五、项目地址
https://github.com/whwlsfb/Log4j2Scan