Apache Solr 8.1.1和8.2.0版本 JMX服务远程代码执行漏洞(CVE-2019-12409)
0x01 漏洞简介
Apache Solr是美国阿帕奇(Apache)软件基金会的一款基于Lucene(一款全文搜索引擎)的搜索服务器。该产品支持层面搜索、垂直搜索、高亮显示搜索结果等。
Apache Solr 8.1.1版本和8.2.0版本中存在安全漏洞,该漏洞源于程序没有安全地设置默认solr.in.sh配置文件的ENABLE_REMOTE_JMX_OPTS配置选项。攻击者可利用该漏洞向Solr服务器上传恶意代码。
0x02 影响版本
Apache Solr 8.2.0 for Ubuntu;
Apache Solr 8.1.1 for ubuntu。
0x03 环境搭建
docker下载搭建环境:docker run -d -p 8983:8983 -p 18983:18983 vulfocus/solr-cve_2019_12409
8983 所映射的端口为网站主页端口
0x04 漏洞分析
进入solr-8.1.0/bin目录下,查看cat solr.in.sh.orig
,发现ENABLE_REMOTE_JMX_OPTS=“true”,该版本存在漏洞
默认的配置文件solr.in.sh的选项ENABLE_REMOTE_JMX_OPTS字段值被设置为”true”,这会启用JMX监视服务并会在公网中监听一个18983的RMI端口,没有任何认证,也就是说在无需身份验证情况下,攻击者结合使用JMX RMI就会造成远程代码攻击。
在开放的端口上,利用 javax.management.loading.MLet的getMBeansFromURL 方法来加载一个远端恶意的 MBean,就可以造成远程代码执行了。 远端的恶意MBean来自于metasploit提供的exploit/multi/misc/java_jmx_server,具体的payload攻击载荷是meterpreter。
0x05 漏洞复现
用nmap可以看到18983端口上的JMX服务开启中。
利用msf 上exploit/multi/misc/java_jmx_server远程代码执行模块进行漏洞利用,指定rhost和rport进行攻击,然后就看到反弹回来的shell