Apache ActiveMQ 未授权访问&弱口令漏洞
简介
ActiveMQ 是 Apache 研发的开源消息服务器,它支持Java消息服务、集群、Spring Framework等。
ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现
随着中间件的启动,会打开两个端口,61616是工作端口,消息在这个端口进行传递;8161是Web管理页面端口
ActiveMQ的web控制台分三个应用,admin、api和fileserver
其中admin是管理员页面,api是接口,fileserver是储存文件的接口。
admin和api都需要登录后才能访问,fileserver无需登录
漏洞原理
默认情况下,ActiveMQ服务是没有配置安全参数。恶意人员可以利用默认配置弱点发动远程命令执行攻击,获取服务器权限,从而导致数据泄露
影响版本
- Apache ActiveMQ 全版本
环境复现
下载地址:http://activemq.apache.org/components/classic/download/
解压文件夹
启动
1 | ActiveMQ/bin/ActiveMQ.bat |
访问
1 | http://127.0.0.1:8161/admin/ |
漏洞特征
端口:61616(工作端口),8161(Web端口)
Apache ActiveMQ 在默认情况下,未做安全配置,没有登录验证,导致可以未授权访问
存在弱口令账号密码 admin/admin
漏洞利用
通过未授权或者弱口令admin/admin
登录Apache ActiveMQ
ActiveMQ默认开启PUT请求,当开启PUT时,访问不存在的目录,Response会返回相应的物理路径信息
如果存在未授权或默认口令,以下页面同样可以获取到物理路径
1 | http://127.0.0.1:8161/admin/test/systemProperties.jsp |
在 ActiveMQ 5.12.x~5.13.x 版本中,默认关闭 fileserver 目录,可以在conf/jetty.xml
中开启;
在5.14.0版本以后,彻底删除了fileserver应用
若服务器存在 fileserver 目录,则可以通过 PUT 请求写入文件
返回204说明上传成功,返回404或者500说明上传失败
但 fileserver 下的文件默认不解析,通过MOVE方法请求移动文件
把文件移动到可以被解析的admin/
下或者api/
下
1 | MOVE /fileserver/1.txt |
防御措施
- 修改
conf/jetty.xml
文件,bean id
为securityConstraint
下的authenticate
修改值为true
,重启服务即可 - 修改
conf/jetty.xml
文件,bean id
为securityLoginService
下的conf
值获取用户properties,修改用户名密码,重启服务即可