工具介绍此工具是由团队SRC组f0ng(f神)开发的一款针对log4j漏洞CVE-2021-44228的BurpSuite扫描插件。其个人微信公众号only security,会经常更新自写的工具。
工具优势
- 可主动扫描,也可被动扫描
- 可自定义jndi字段,dns协议字段,dnslog地址,后缀参数
- 可自定义header头
- 可自定义白名单,防止扫到敏感网站
1-如何使用
0x01 去releases下载最新插件
0x02 加载完插件后,如果提示默认dnslog可以访问https://log.xn--9tr.com,则可以不用设置其他dnslog
0x03 如果默认dnslog访问不了,那么就需要去配置ceye.io,记得将isceye设置为true,然后填上token、ceye.io的地址,保存配置
0x04 如果需要内网dnslog,那么将isceye设置为false, 将内网dnslog填入privatednslogurl,内网dnslog查看的地址填入privatednsResponseurl,保存配置
2-自定义ceye发现没有效果?
0x01 可能由于对界面处理得不是很好,导致按钮那里可能按下去没有触发事件,多按几次,可以去Extender→output页面查看保存是否成功
![图片[1]-工具 | 高度自定义Burp插件log4j2burpscanner-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-192081-1669282151.png)
0x02 isceye参数需要改为true
![图片[2]-工具 | 高度自定义Burp插件log4j2burpscanner-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-192081-1669282152.png)
3-默认dnslog平台访问不了是否影响结果?
只要配置了ceye,默认dnslog访问不了不会影响结果
![图片[3]-工具 | 高度自定义Burp插件log4j2burpscanner-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-192081-1669282153.png)
![图片[4]-工具 | 高度自定义Burp插件log4j2burpscanner-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-192081-1669282154.png)
4-为什么有些站点检测不出来?
0x01 有些时候由于添加的请求头过多,导致服务器处理请求过慢,或造成无法响应,可以通过控制请求头参数进行控制,如自定义参数全部不勾选
0x02 由于网络环境与dnslog的问题,导致请求不能及时响应,可以更换自定义dnslog尝试
0x03 目标机器的dns查询较慢,导致dnslog平台没有及时收到请求,从而不报告漏洞
0x04 如果都不是以上原因,且在logger里没有看到扫描请求包,可以提交issue
5-为什么有些请求不会扫描?(加载了插件,没有进行扫描)
0x01 本插件是通过Passive接口进行扫描,如果第一次扫描过了,第二次再次加载插件,是默认不会扫描的,需要右键数据包,进行send to log4j2 scanner
即可
0x02 检查数据包的host是否在白名单内
0x03 检查passive
是否开启。(Dashborad模块内开启)
0x04 可以点击按钮test dnslog delay
测试当前环境,如果没有配置ceye和自定义dnslog的话,会使用默认dnslog,但是默认dnslog有时会加载不出来,就会导致不进行扫描
6-导入插件报错:java.lang.NullPointerException: Cannot invoke “burp.IHttpRequestResponse.getHttpService()” because “this.currentlyDisplayedItem” is null之类
0x01 burp的jdk版本太高,可以尝试降低burp的jdk版本,位置在Extender→Options→Java Environment→Folder for loading library JAR files(optional)→Select folder,作者的jdk版本在1.8_231
0x02 自行编译插件即可,下载源码,输入命令mvn package
7-如何编译?(编译导入报错与启动burp的jdk版本、Burp Extender模块jdk版本都有关系)
下载源码至本地,命令行输入,mvn package,即可在target得到jar,使用burp导入jar即可
![图片[5]-工具 | 高度自定义Burp插件log4j2burpscanner-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-192081-16692821541.png)
image
8-dnslog配图教程
0x01设置域名类型dnslog平台
根据默认dnslog平台,github: DNSLog-Platform-Golang
0x001 获取dnslog与token
首先访问搭建好的dnslog平台这里举例为 http://1.1.1.1
,获取dnslog记录域名,如test.f0ng.cn
,再获取dnslog平台的token,如f0ngf0ng
0x002 填写配置
privatednslogurl
设置为test.f0ng.cn
由于默认dnslog平台特性,获取响应的记录格式为http://域名/yourtoken
,所以这里我设置privatednsResponseurl
为http://1.1.1.1/f0ngf0ng
即可
![图片[6]-工具 | 高度自定义Burp插件log4j2burpscanner-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-192081-1669282155.png)
0x003 保存配置
点击Save按钮,保存配置,即可
0x02设置IP类型dnslog平台
准确一点,应该是IP类型的监控平台。
设置privatednslogurl
为内网可以访问到的域名即可,如127.0.0.1:8001
,记得勾选isip,标明dnslog属性为ip
9-为什么扫到的漏洞没有数字对参数进行标识?
原因:可能设置了isip
属性,导致payload不对参数标识 解决:将isip
的勾选去掉
10-为什么扫描没有动静
或者(send to log4j2 scanner
没有动静)
原因在于jdk版本太高的问题,经测试,和Extender
→Options
→Java Environment
→Folder for loading library JAR files(optional)
→Select folder
的jdk版本有关
0x01 如果Java Environment
的jdk过高,经测试15的jdk是不行的,一些新版本jdk,如14 13可能也不行,换老版本jdk;大版本号低,小版本号高不一定可以,如1.8_301可能也成功不了,可以试试测试成功的指定jdk版本,如1.8_231,1.8_151是可以成功的
jdk15 失败
![图片[7]-工具 | 高度自定义Burp插件log4j2burpscanner-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-192081-1669282160.png)
jdk8 成功
11-dnsldaprmi
参数如何填写
- 可以填写
dns:
的绕过方式,如dns${::-:}
; - 也可以填写
dns://
的绕过方式,如dns${::-:}/${::-}/
12-jndiparams
参数如何填写
- 填写
jndi:
的绕过方式,如j$%7b::-n%7ddi:
等
参数说明
主要是三个模块
dnslog configuration
- 0x01 log4j2 Passive Scanner 为被动扫描开关,勾选就会进行被动扫描,不勾选就不会扫描
- 0x02 isuseceye 是否使用ceye.io的平台
- 0x03 ceyetoken ceye.io的用户token
- 0x04 ceyednslog ceye.io的用户记录域名
- 0x05 isuseprivatedns 是否使用自定义dnslog
- 0x06 isip 自定义dnslog是否为ip(主要针对内网的ip监听)
- 0x07 privatednslogurl 自定义的dnslog记录域名
- 0x08 privatednsResponseurl 自定义dnslog记录域名响应查看地址,详细自定义dnslog配置可以到此处查看
- 0x09 Save configuration 保存配置
- 0x10 Restore/Loading latest params 恢复默认参数
- 0x11 Test dnslog delay 测试与dnslog的延迟
- 0x12 use
[${::-.}]
replace.
是否使用${::-.}
替换.
custom params
- 0x01 jndiparam 传入的jndi参数,可以使用类似于
j${::-n}di:
进行替换,达到bypass效果 - 0x02 dnsldaprmi 可选,传入dns、ldap、rmi三个参数
- 0x03 white lists 白名单,可使用通配符进行配置,如
*.gov.cn
、*.edu.cn
也可以设置成指定的域名后缀结尾,如qq.com
,这样任何以qq.com结尾的域名都不会进行扫描 - 0x04 headers lists 自定义请求头的参数名
- 0x05 test UserAgentTokenXff 是否测试User-Agent、token(包含jwt一些关键字) 、常见XFF头参数等
- 0x06 test Xfflists 是否测试所有xff头参数
- 0x07 test Cookie 是否测试所有Cookie
- 0x08 test RefererOrigin 是否测试Referer、Origin参数
- 0x09 test Contenttype 是否测试Contenttype参数
- 0x010 test Accept 是否测试Accept等参数
custom params2
- 0x01 jndiparams 主动扫描时用到的jndi参数,可以使用类似于
j${::-n}di:
进行替换,达到bypass效果,换行隔开
本文作者:Timeline Sec
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/192081.html
昶之琴![资深玩家 徽章-资深玩家-NGC660 安全实验室](http://ngc660.cn/wp-content/themes/zibll/img/thumbnail-null.svg)
2年前0
我以为只要提交就行了好想告诉你![备受喜爱 徽章-备受喜爱-NGC660 安全实验室](http://ngc660.cn/wp-content/themes/zibll/img/thumbnail-null.svg)
2年前0
花巨资看一下