首页
下载应用
提交文章
关于我们
🔥 热搜 🔥
1
上海
2
习近平
3
新疆
4
鄂州父女瓜
5
乌鲁木齐
6
疫情
7
H工口小学生赛高
8
习明泽
9
芊川一笑图包
10
印尼排华
分类
社会
娱乐
国际
人权
科技
经济
其它
首页
下载应用
提交文章
关于我们
🔥
热搜
🔥
1
上海
2
习近平
3
新疆
4
鄂州父女瓜
5
乌鲁木齐
6
疫情
7
H工口小学生赛高
8
习明泽
9
芊川一笑图包
10
印尼排华
分类
社会
娱乐
国际
人权
科技
经济
其它
这样的洞庭湖决堤,实在让人同情不起来
李尚福、魏凤和双双被拿下,与美国一份报告是否有关?
抗洪靠嘴,堵漏靠沙?印度官员真是绝了!
有的人走了,却永远活着
圈内疯传某谣言
生成图片,分享到微信朋友圈
2022年11月5日
2023年7月4日
2023年7月5日
2023年7月5日
2023年7月6日
2023年7月7日
2023年7月7日
2023年7月8日
2023年7月8日
2023年7月9日
2023年7月9日
2023年7月10日
2023年7月10日
2023年7月11日
查看原文
其他
蓝队第2篇 | Weblogic反序列化攻击不依赖日志溯源攻击时间
Original
abc123info
网络安全abc123
2022-11-05
收录于合集
#蓝队
5 个
#溯源
5 个
#weblogic反序列化
1 个
#T3回显
1 个
#应急响应
3 个
Part1 前言
WebLogic是美国Oracle公司出品一款中间件产品,在国内使用也比较广泛。从2015年开始至今,接连爆出过10几个可直接利用的Java反序列化漏洞,相关漏洞的原理也越来越复杂。每次应急响应过程中,遇到Oracle公司的产品都会特别头疼,因为其日志结构太过繁杂,相关介绍文档也很少,想弄明白是需要下一番功夫的。
在日常的应急响应过程中,为了解决这个问题,我曾经反复搭建环境,反编译各种Weblogic攻击工具,跟踪其源代码,研究可以不依赖日志分析去快速解决Weblogic中间件应急响应的方法,流量监控设备通常会有各种报警,混杂在一起的时候,也很难确定准确的攻击时间。
对于早期Weblogic反序列化攻击,我做应急响应的时候,ls -lah看一下Weblogic几个目录下新增的文件及文件时间属性,就能判断出攻击者用的是哪一款Weblogic漏洞利用工具,而且还可以确定准确的攻击时间,根本就不用去看日志。
下面分享一下这个技巧,后续也会花很大篇幅讲讲Weblogic的日志结构及各种漏洞的应急溯源技巧,因为牵扯到Oracle公司的产品,都会很复杂。花很大精力:
Part2 具体研究过程
虚拟机下测试
本地搭建Weblogic的环境如下:
使用Weblogic反序列化工具进行攻击,查看服务器的/temp/目录,会生成一个.tmp格式的临时文件,然后查看此文件属性,得知攻击者执行命令的准确时间。
将此tmp文件拷贝出来,改扩展名为.jar,使用jadx-gui工具反编译,即可看到攻击代码,证明此文件确实是攻击者遗留下来的。
很多weblogic反序列化利用工具为了能通过T3协议回显命令执行结果,都有类似的文件落地,也有的weblogic反序列化利用工具为了实现无文件落地回显,是通过defineClass方法,从byte[]字节码中还原一个Class对象,实现无文件落地注入构造回显,这种应急方法不再适用。
Weblogic回显的实现原理:
应急方法讲完之后,接下来看一下相关工具为什么会向/temp/目录写文件,首先要大体讲一下T3反序列化回显的原理:
Weblogic对外提供Web服务,会开放7001等端口,这个端口是Web协议、T3协议、IIOP协议并存的,而T3协议允许客户端远程调用Weblogic服务端的类,然后把执行结果再传输给客户端。因此攻击者会在本地事先编译好一个具有执行命令、上传文件等功能的java类,
接着将编译好的文件上传至服务器上
,通过URLClassLoader加载这个编译文件,在服务端绑定一个实例,进而实现T3下的Weblogic反序列化回显,其实有点类似于RMI远程方法调用的过程。
这里要指出,有的Weblogic利用工具向服务器写入临时文件时,并没有关闭文件句柄,导致文件会一直存在服务器上。
常见Weblogic利用工具特征
1
首先看第一款实现Weblogic反序列化回显的利用工具,是由冰蝎作者rebeyond大牛编写的。
我记得大概是15年年底时,冰
蝎作者rebeyond第一个公布出Weblogic T3反序列化回显方法,而且给出了相关的代码
。
后续的研究者的回显方法基本上与rebeyond的差不多,通过加载字节码方式实现无文件落
地回显。
我们反编译一下rebeyond的工具,看看代码的具体实现过程:
通过Connect按钮事件跟进,一直跟到GenPayload类的Gen方法,很明显可以看到,这款工具会向服务器的临时目录写入1vBLBK.tmp临时文件:
之后再通过URLClassLoader类加载这个tmp文件,在服务端绑定一个实例,进而实现T3回显。
2
接下来看另一款Weblogic反序列化利用工具:
利用成功后,会在服务器上生成H3y5ec.tmp临时文件。
之后同样使用URLClassLoader类加载,实现T3回显。
3
接下来看第3款Weblogic反序列化利用工具:
可以看到,也会向服务器写一个临时文件
同样是使用URLClassLoader类加载,实现T3回显:
Part3 总结
1
.
早期的Weblogic反序列化利用工具,为了实现T3协议回显,都会向服务器上写入一个临时文件。近几年随着无文件落地的流行,Weblogic的回显基本上都是找一个实现了defineClass方法的类,通过还原字节码方式实现回显,这种应急方法不再适用。
2
.
应急溯源过程中,日志量通常浩如烟海,而且容易被攻击者删掉。在此情况,研究一下攻击者常用工具的原理,总结一些小技巧,在日常应急溯源工作中,会事半功倍,省去很大的工作量。
专注于红队、蓝队技术分享
每周一篇,敬请关注
您可能也对以下帖子感兴趣
{{{title}}}
文章有问题?点此查看未经处理的缓存