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

责声明">
作者:知道创宇404实验室1. 背景概述ActiveMQ 是 Apache 软件基金会下的一个开源消息驱动中间件软件。Jetty 是一个开源的 servlet 容器,它为基于 Java 的 web 容…
作者:知道创宇404实验室 背景概述 ActiveMQ是Apache Software Foundation下的一个开源消息驱动的中间件软件。 Jetty是一个开源servlet容器,为基于Java的Web容器(如JSP和servlet)提供运行时环境。 ActiveMQ 5.0及更高版本默认集成了jetty。提供启动后监视ActiveMQ的Web应用程序。 2016年4月14日,外国安全研究员Simon Zuckerbraun将Apache ActiveMQ Fileserver暴露给多个安全漏洞,这些漏洞可能允许远程攻击者用恶意代码替换Web应用程序并在受影响的系统上执行远程代码(CVE-2016-3088)。 2.原理分析 ActiveMQ中的FileServer服务允许用户通过HTTP PUT方法将文件上载到指定的目录。下载ActiveMQ 5.7.0源代码。您可以看到后台处理PUT的关键代码如下: 1 用户可以将文件上传到指定目录,该目录在conf/jetty.xml中定义如下 2 有趣的是,我们伪造了一个可以弹出绝对路径的特殊上传路径。 3 按照PUT方法进行跟踪,可以看到调用以下函数。 4 同时,后台处理MOVE的密钥代码如下。可以看出,该方法不对目标路径施加任何限制或过滤。 5 因此,我们可以构造一个PUT请求,将webshell上传到fileserver目录,然后通过Move方法将其移动到具有执行权限的admin /目录。 3.攻击的多重姿势 根据上述漏洞原则,我们可以想到各种利用姿势。 (注意:以下结果在ActiveMQ 5.7.0中重现。在重复过程中,MOVE方法非常不稳定。) 上传Webshell模式 首先将Jsp Webshell放到fileserver目录中 6 Webshell在fileserver /目录中没有执行权限 7 爆炸绝对路径 8 然后使用MOVE方法将Webshell移动到admin /目录中(您也可以使用相对路径) 9 访问http://localhost: 8161/admin/1.jsp?cmd=ls,命令执行成功,效果如下 10 上传SSH公钥 由于您可以上传和移动任何文件,因此上传我们的ssh公钥以通过SSH登录是很自然的。 首先生成密钥对。 (如果已经存在,则不需要) 11 然后上传,移至/root/.ssh/并将其重命名为authorized_keys 12 13 之后,您可以直接登录ssh。 14 4.漏洞影响 漏洞影响版本:Apache ActiveMQ 5.x~5.14.0 在ZoomEye上使用日期和ActiveMQ作为关键字,我们检测到2015年1月1日(爆发前一年)和2017年1月1日(爆发后一年)互联网上的ActiveMQ总量。如下。 15 16 可以看出,在漏洞爆发之前和之后,ActiveMQ的数量已大大减少。由此我们可以粗略地猜测,许多ActiveMQ Web服务限制了爆发后公共网络的访问。 5.脆弱性保护计划 1.在5.14.0及更高版本中已删除ActiveMQ Fileserver的功能。建议用户升级到5.14.0及更高版本。 2.通过从conf \ jetty.xml中删除以下配置来禁用ActiveMQ Fileserver功能 17 6.参考链接 [1]http://activemq.apache.org/security-advisories.data/CVE-2016-3088-announcement.txt [2]https://www.seebug.org/vuldb/ssvid-96268 [原文地址:https://paper.seebug.org/346/ 作者:知道创宇404实验室    ]
  • 发表于 2017-08-22 08:00
  • 阅读 ( 621 )
  • 分类:黑客技术

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
黑客

2107 篇文章

作家榜 »

  1. 黑客 2107 文章