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

官方教程:https://github.com/vulhub/vulhub/blob/master/activemq/CVE-2015-5254/README.zh-cn.mdicon-default.png?t=N7T8https://github.com/vulhub/vulhub/blob/master/activemq/CVE-2015-5254/README.zh-cn.md

背景:ActiveMQ是Apache软件基金会所研发开源的消息中间件。Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的Java Message Service(JMS)ObjectMessage对象利用该漏洞执行任意代码。

一、准备工作

1.首先需要进入到目录下/vulhub/activemq/CVE-2015-5254,然后启动docker-compose up -d。

之后就开始下载环境。这里下载的activemq版本为5.11.1

2.环境运行后,将监听61616和8161两个端口。其中61616是工作端口,消息在这个端口进行传递;8161是Web管理页面端口。访问http://your-ip:8161即可看到web管理页面,不过这个漏洞理论上是不需要web(因为可以通过web查看,也可在服务器上查看生成的文件)。

3.activemq查看版本的路径:http://IP:8161/admin/index.jsp?printable=true

登录后台,路径:http://IP:8161/admin/browse.jsp?JMSDestination=event(登录后台时需要输入用户名密码,默认是admin/admin,之前测试遇到过这样的弹窗,那时还不知道是activemq中间件,今日新知识get)

二、复现(基础)

漏洞利用过程如下:

    ①构造(可以使用ysoserial)可执行命令的序列化对象;

    ②作为一个消息,发送给目标61616端口;

    ③访问web管理页面,读取消息,触发漏洞。

1.官方教程推荐使用jmet复现,因为jmet集成了ysoserial(ysoserial是一款java反序列化利用工具),也集成了其他工具。

2.jmet原理是使用ysoserial生成Payload并发送(其jar内自带ysoserial,无需再自己下载),所以我们需要在ysoserial是gadget中选择一个可以使用的,比如ROMEjmet工具下载地址:https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar

3..工具下载完之后,要创建一个external文件夹,与jmet-0.1.0-all.jar放在同一个文件夹下,否则执行过程中可能会爆文件夹不存在的错误。

4.执行命令,可以利用kali虚拟机,也可利用windows物理机。我都试了。

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

命令解释:-Q指定队列消息名(Queues-name中的显示);

                  -I选择要装载的JMS客户端,这里是ActiveMQ,就是对谁进行操作;

                  -s是选择ysoserial payload,-Y指定具体的命令(这里是创建一个文件夹);

                  -Yp指定payload类型,选择的是ROME,其后是ActiveMQ所在机器的ip及工作端口 。

所以这条命令是选择ysoserial工具,使用ROME payload把 touch /success 命令序列化后作为名为event的消息发送给ActiveMQ(对于命令的解释参考自博客https://blog.csdn.net/kinnisoy/article/details/127490168
windows执行过程:

kali执行过程:

5.执行完成后,web页面可以看到消息列表,数量显示4,是因为我执行了4次。

6.另一种验证方式是,靶机上查看success文件是否被成功创建,成功创建就是利用成功了。第一次去查看时,没有创建的success文件,我以为有延迟,其实是需要人为点击web页面消息后,该命令才会被触发。(利用过程第三步有说明,是我没看仔细,又暴露我自身的一个问题,要好好看教程,要仔细呀!!!)

进入靶机漏洞目录,执行docker compose exec activemq bash,进入tmp文件夹,查看相应文件是否创建成功。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值