Apache solr 远程命令执行漏洞(CVE-2019-12409)
漏洞简介
在开放的端口上, 利用 javax.management.loading.MLet 的 getMBeansFromURL 方法来加载一个远端恶意的 MBean,就可以造成远程代码执行了。
漏洞利用方法 待补充
流量检测规则
suricata 检测规则
alert tcp any any -> any any (msg: "Apache Solr RCE(CVE-2019-12409)";content:"java.rmi.server.RemoteObject";content:"JmxMBeanServert";content:"ObjectInstance";sid:30000139;reference: cve, 2019-12409;rev:1;)
原理分析:
java.rmi.server.RemoteObject
java.rmi.server
方法用于提供支持服务器端 RMI 的类和接口。该漏洞的利用需要通过rmi
从远端加载恶意的MBean
类。因此首先检测流量中是否存在对rmi
进行的操作
jmx.mbeanserver.JmxMBeanServert
这是在代理端进行 MBean 操作的基类。它包含创建,注册和删除 MBean 所必需的方法,以及已注册 MBean 的访问方法。
ObjectInstance
用于表示 MBean 对象名及其类名,通过检测ObjectInstance
可以判断是否成功加载Mbean
备注:
该规则只可检测从远程 rmi 服务器加载 MBean 类的流量,并没有对是否存在恶意行为进行检测,所以可能在极特殊情况下会存在误报