weblogic CVE-2020-2555 反序列化RCE 复现

前言

本教程及工具仅供技术学习交流、请勿用于非法行为、否则后果自负

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

环境安装教程自行百度比较简单

JDK安装包下载

Weblogic安装包下载地址

利用的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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章