# activeMQ
前言:不知道改学些什么,就按 vulhub 里面的 CVE 漏洞来复现算了
# CVE-2015-5254:jmet
这里就是主页,可以进行扫目录,有 admin,然后就是 admin/admin 弱密码登录
在 /admin/queues.jsp 这里就有反序列化漏洞,用 jmet 这个工具即可直接反序列化,但是需要点击这个 id 才会有反序列化生成
# jmet 安装 (使用得用 jdk8)
#下载jmet的jar包
wget https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar
#创建external目录
mkdir external
使用 | |
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/sucess" -Yp ROME 192.200.30.72 61616 |
【命令解释】:调用java -jar 运行 jmet的jar包,-Q是插入一个名为event的队列,-I 是选择装载ActiveMQ模块 ,-s 是选择ysoserial payload ,-Y 是攻击模式和内容, -Yp 是选择攻击利用链,这里的选择是ROME, 之后带上IP加端口。
-Q 比如我修改event为hack 就成为插入一个名为hack的队列。
生成这样的就好了
在这里就会有一个队列 event 生成
得点击里面的 id 才能触发
复现成功
# 补充:
我开的这个 docker 容器的东西不是和我本身的机器共享的
进入我开的这个容器的指令:
docker exec -it [容器ID] bash
容器id怎么拿:
docker ps
第一个 id 就是了
# CVE-2016-3088 任意文件写入
背景简述:
Acctive 的 web 控制台分为三个应用,admin,api 和 fileserver,其中 admin 是管理员页面,api 是接口,fileserver 是储存文件的接口;admin 和 api 都需要登录后才能使用,fileserver 无需登录。
fileserver 是一个 ESful API 接口,我们可以通过 GET,PUT,DELETE 等 HTTP 请求对其中存储的文件进行读写操作,其设计目的是为了弥补消息队列操作不能传输,存储二进制文件的缺陷,但后来发现:
其使用率不高
文件操作容易出现漏洞
所以,ActiveMQ 在 5.12.x->5.13.x 版本中,已经默认关闭了 file server 这个应用(可以在 conf/jetty。xml 中开启);在 5.14.0 版本以后,彻底删除了 fileserver 这个应用
在测试过程中,可以关注 ActiveMQ 的版本,避免走弯路。
# 漏洞详情:
本漏洞出现在 fileserver 应用中,fileserver 支持写入文件(但是不解析 jsp),同时是吃移动文件(MOVE 请求),所以,我们只需要写入一个文件,然后使用 MOVE 请求将其移动到人难以位置,造成任意文件写入漏洞。
# 文件写入的几种利用方法
写入webshell 方便,但是这里不解析,而且admin和api两个应用都需要登录才能访问
写入cron或sshj key等文件 直接反弹拿shell,但是需要root权限
写入jar或jetty.xml等库和配置文件 麻烦,但是靠谱
# 知识扩展:
cron是什么
反弹shell是什么
cron或ssh key和反弹shell的关系
jetty和jetty.xml是什么
linux文件权限
复现失败,原因是上传不上去,只有将 jsp 一句话木马 url 一下后才能上传,但是这个网页不解码,就离谱,我们直接下一个,这个以后才说
【vulhub 漏洞复现】CVE-2016-3088 ActiveMQ 任意文件写入漏洞 - CSDN 博客
CVE-2016-3088(ActiveMQ 任意文件写入漏洞) - toby123 - 博客园
# CVE-2022-41678:远程 rce
介绍:CVE-2022-41678 是一个 Apache ActiveMQ 中的远程代码执行漏洞,其主要原理是利用 Jolokia 服务中的不当配置。Jolokia 是一个 JMX 通过 HTTP 的桥接服务,允许通过 HTTP 请求来操作 JMX MBEANS。在手影响的 Apache ActiveMQ 版本中,经过身份验证的用户可以通过 /api/jolokia/ 接口操作 MBean。
# 理论:
漏洞核心是 FlightRecorder MBean,这是 JDK11 及以上版本中提供的一个功能,用于记录内存,垃圾回收,调用栈等等信息。攻击者可以利用一下方法进行攻击:
newRecording - 新键一个记录绘画
setConfiguration - 更改记录会话的配置
startRecording - 开始记录
stopRecording - 结束记录
copyTo - 将记录的数据导出到文件。
攻击者可以通过 setConfiguration 方法修改配置,将一些键名改为 JSP 段代码。这样,在记录的数据中就会包含攻击者注入的 JSP 代码。然后,攻击者使用 copyTo 方法将包含恶意代码的记录导出到 ActivveMQ 的 web 目录中,从而在服务器上执行远程代码。
# 要求:
需要我们能登录后台管理界面,通常是 8161 端口登录,admin/admin
# 漏洞复现:
# 1. 查看所有 Mbean
使用 Bp 进行抓包,访问 “/api/jolokia/list” 这个 api 可以查看当前服务器里所有的 MBeans(路径改为 **/api/jolokia/list**, 然后添加 Request-header:Origin:http://ip)
注意后面必须要有两行空行,不然回显不了
获取 MBean 值: