前言
本教程及工具仅供技术学习交流、请勿用于非法行为、否则后果自负
0x01 漏洞说明
2020年3月6日,Oracle Coherence 反序列化远程代码执行漏洞(CVE-2020-2555)的细节被公开,Oracle Coherence为Oracle融合中间件中的产品,在WebLogic 12c及以上版本中默认集成到WebLogic安装包中,攻击者通过t3协议发送构造的序列化数据,能过造成命令执行的效果
0x02 影响版本
- Oracle weblogic 12.1.3.0.0
- Oracle weblogic 12.2.1.1.0
- Oracle weblogic 12.2.1.2.0
- Oracle weblogic 12.2.1.3.0
- Oracle weblogic 12.2.1.4.0
通过研究发现 Weblogic 10.3.6.0 版本不受影响范围内,虽然该版本默认自带了 Coherence(3.7),通过调试发现该版本默认并未启用 Coherence,所以 Weblogic 10.3.6.0 不在受影响范围内。
0x03 漏洞利用
靶机环境
window server 2008 r2
jdk8u202
weblogic 12.2.1.4.0
ip:192.168.2.123
攻击机环境
windows 10
jdk8u73
环境安装教程自行百度比较简单
利用的POC https://github.com/Y4er/CVE-2020-2555
下载完后新建个项目把代码和包都放进去
打开CVE_2020_2555.java修改执行的命令
这里的test.ser 是生成的payload文件位置和名字,可以修改成自己想要的位置和名字, 这里就在桌面生成test.ser文件
这里可以修改成要执行的命令
cmd.exe /c 是执行windows命令
/bin/bash -c 是执行linux命令
这里的T3ProtocolOperation.send("192.168.2.123", "7001", payload);
就是开始攻击
serialize(badAttributeValueExpException);
是序列化生成payload文件
如果只需要生成文件的话可以把发送payload攻击那行注释掉,不然的话如果目标无效就不能生成了
这里我注释掉,然后保存运行
运行完就会在桌面上生成一个test.ser文件了
复制到weblogic_t3.py
目录下
开始攻击
0x04 注意的地方
coherence.jar要使用和目标版本一致的,不然会有serialVersionUID不一致的问题。
coherence.jar位置在这
如何查看版本呢
目标:7001/console/login/LoginForm.jsp
0x05 修复建议
升级补丁,参考oracle官网发布的补丁https://www.oracle.com/security-alerts/cpujan2020.html 如果不依赖T3协议进行JVM通信,禁用T3协议。
进入WebLogic控制台,在base_domain配置页面中,进入安全选项卡页面,点击筛选器,配置筛选器。 在连接筛选器中输入:weblogic.security.net.ConnectionFilterImpl,在连接筛选器规则框中输入 7001 deny t3 t3s 保存生效(需重启)
0x06 时间线
- 2020-03-06 漏洞细节被公开
- 2020-03-06 360-CERT 发布预警
- 2020-03-09 360-CERT 发布分析
0x07 参考链接
- 1.https://cert.360.cn/report/detail?id=15b04e663cc63500a05abde22266b2ee
- 2.https://y4er.com/post/weblogic-cve-2020-2555/
- 3.https://xz.aliyun.com/t/7387#toc-7