内网下(CVE-2021-44228)漏洞的检测及其延伸

其实这篇文章在之前就应该写完了,Log4j2(CVE-2021-44228)漏洞爆发到现在已经一年半了,奈何没有时间、精力去思考在内网环境下如何发现漏洞;过年那段时间看到了一个监听各类协议的项目,参考项目实现了监听端的部分功能,增加了批量端口监听;直到最近在不停地优化,勉强能用,顺便学习了一下go语言编程。

0x01 背景

Log4j2(CVE-2021-44228)漏洞在公网上的暴露面已经不多了,而更多的安全人员把该漏洞的利用方向瞄准在了内网,特别是黑盒环境中(白盒可以看相应的依赖版本),一些不出外网的内网应用上,但是在内网去探测三种协议(ldap、rmi、dns)没有好的方法,ldap、rmi目前没有监听工具方便查看结果;dns比较繁琐,需要在内网进行一系列的配置,如配置dns服务器等,这就导致了没有公开的方法去探测内网的Log4j2漏洞,在这里记录一下。

漏洞扫描端出自笔者的log4j2burpscanner,监听端出自笔者的selistener

0x02 selistener工具介绍

0x001 介绍

selistener,全称为(server listener),像服务器一样监听端口,为方便取名,直接取了selistener为名

0x002 优点

简单点来说,优点如下:

  1. 批量端口监听,支持多种协议
  2. 直观的响应结果呈现形式

0x003 用法

-ps , ports start    端口组监听,开始
-pe , ports end      端口组监听,结束
-pn ,port ,exp:22,3306,8443  指定端口监听
-wp ,wport ,exp: 65535    指定端口运行http服务查看结果
-t, token, exp: f0ng  指定token

由于工具基于cgo,目前还没找到好的办法,所以linux需要安装musl-tools/musl-libc-static才能运行,windows可以直接运行

0x004 示例

1. 场景一

在Log4j2(CVE-2021-44228)利用下,如果防火墙做了端口的限制,一般JNDIExpliot的1389等ldap的端口会禁止,那么可以使用该工具进行批量端口监听,然后在数据包内设置端口号为变量,查看端口通信接收情况(ldap),举例ldap监听情况(rmi同理):

内网下(CVE-2021-44228)漏洞的检测及其延伸
2. 场景二

在windows系统无法上传文件情况下,需要进行文件下载,如certutil落地文件、powershell上线等等,会遇到某些端口无法出网,可以将certuil探测的端口设置为变量,使用本工具进行监听,如下

内网下(CVE-2021-44228)漏洞的检测及其延伸
3. 场景三

在进行反弹shell的时候,有时会禁止一些目的端口访问,可以通过使用该工具进行批量端口监听,查看端口通信接收情况(socket)。

内网下(CVE-2021-44228)漏洞的检测及其延伸
4. 额外场景

还可以在公网上收集payload等等,起到小蜜罐作用,感觉可以完善相应的指纹做到更全面(虽然现在的扫描器都是根据指纹来扫的,但是也有很多随意打的),如下

内网下(CVE-2021-44228)漏洞的检测及其延伸

如果后续有新的漏洞需要内网监听,也可以使用该工具进行组合利用

0x03 联动效果

0x001 工具搭建及配置

使用selistener搭建内网监听服务

./selistener -t onlysecurity (-pn 9999)

不加-pn参数则监听常用端口组

内网下(CVE-2021-44228)漏洞的检测及其延伸

在log4j2burpscanner下设置搭建的selistener记录地址、响应查看地址

10.211.55.2:9999/%20{HOSTURI}

http://10.211.55.2:65535/resp?token=onlysecurity&words={HOSTURI}
内网下(CVE-2021-44228)漏洞的检测及其延伸

这里要注意,设置的协议为ldap://(或者rmi://)

内网下(CVE-2021-44228)漏洞的检测及其延伸

0x002 工具扫描

  • 被动扫描 在漏洞点进行被动扫描
内网下(CVE-2021-44228)漏洞的检测及其延伸

插件页面

内网下(CVE-2021-44228)漏洞的检测及其延伸
  • 主动扫描 在漏洞点进行主动扫描
内网下(CVE-2021-44228)漏洞的检测及其延伸

插件页面

内网下(CVE-2021-44228)漏洞的检测及其延伸

可以看到很精准扫到了漏洞,web页面如下

内网下(CVE-2021-44228)漏洞的检测及其延伸

页面也是采用类似dnslog的形式,查看起来还算方便

0x04 总结

  1. 有目标一定要去实现,立的flag也要去完成
  2. 从底层出发,能解决更多的疑问,如这里直接通过字节去监听流量从而判断协议类型

0x05 引用

https://github.com/fuzz7j/JNDIServer   【工具雏形参考】

https://github.com/f0ng/selistener   【监听项目】

https://github.com/f0ng/log4j2burpscanner 【log4j2-burp扫描插件】

原文始发于微信公众号(only security):内网下(CVE-2021-44228)漏洞的检测及其延伸

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/203946.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!