vlambda博客
学习文章列表

vulhub系列(一)ActiveMQ任意文件写入漏洞

0x00 漏洞详解

此漏洞出现在Fileserver应用程序中,该漏洞的原理实际上非常简单,即文件服务器支持写入文件(但不解析JSP),同时支持移动文件(MOVE请求)。因此,我们只需要编写一个文件,然后使用移动请求将其移动到任何位置,就会导致任意文件写入漏洞。

写入文件,例如cronssh key

1.  编写Webshell

2.  写入文件,例如cronssh key

3.  编写库和配置文件,例如jarjetty.xml

编写webshell的优点是方便,但是文件服务器不需要解析jspadminapi都需要登录才能访问,因此有点徒劳。编写cronssh键的优点是直接反转Shell,这也很方便,缺点是您需要root特权;写jar,有点麻烦(需要jar后门),写xml配置文件,这种方法比较可靠,但是有一个徒劳的观点:我们需要知道ActiveMQ的绝对路径。

0x01  实验步骤

  1. 开启靶场

点击Manage ActiveMQ broker”,登录,账号密码都是admin

vulhub系列(一)ActiveMQ任意文件写入漏洞

    2. 编写Webshell

Webshell需要使用Admin或Api应用程序编写,并且两个应用程序都必须登录才能访问。

       首先,我们查看ActiveMQ的绝对路径:

http://your-ip:8161/admin/test/systemProperties.jsp

vulhub系列(一)ActiveMQ任意文件写入漏洞

也可以进入fileserver文件夹

vulhub系列(一)ActiveMQ任意文件写入漏洞

    3. 上传webshell

Bp抓包,send to repeater,修改为Put方法,然后把shell写上去

vulhub系列(一)ActiveMQ任意文件写入漏洞

若返回的响应包中状态码为204,说明上传成功:

vulhub系列(一)ActiveMQ任意文件写入漏洞

此时,我们可以进入相应的目录查看写入的shell文件,但是我们知道txt文件不会执行,前面有讲过文件服务器支持移动文件(MOV请求)使用移动请求将其移动到任何位置,就会导致任意文件写入漏洞。

vulhub系列(一)ActiveMQ任意文件写入漏洞

继续抓包,改包方法为MOVE 路径为

Destination:file:///opt/activemq/webapps/api/ali.jsp


vulhub系列(一)ActiveMQ任意文件写入漏洞

响应包:

vulhub系列(一)ActiveMQ任意文件写入漏洞

访问webshell

vulhub系列(一)ActiveMQ任意文件写入漏洞

    4. 执行ls和whoami

0x02  总结

写入webshell门槛低且方便,但是fileserver这个目录是没有jsp的执行权限的,想要执行jsp的webshell需要将jsp文件放入admin或者api目录中,这两个目录是具有jsp解析执行权限的,但是这两个目录又需要登录才能进入。所以当收到响应是4XX时,需要登录。

       流程:写入文件(put方法)——>移动文件(move方法)——>执行文件

另外

1写入文件,例如cronssh key

2编写库和配置文件,例如jarjetty.xml

这两种方法目前还未测试,未完待续………



请遵循网络安全法,本篇文章只提供学习研究之用


文章部分内容来源:

vulhub官方文档

csdn博客

另外:vulhub靶机漏洞复现会出一个系列