预警名称:WebLogic反序列化漏洞(CVE-2018-2628)安全预警 级别: 高危
预警描述
一.漏洞概述
Oracle WebLogic Server存在反序列化远程命令执行漏洞,允许远程攻击者在存在漏洞的Oracle WebLogic上执行任意代码,且不需要进行身份认证。
此漏洞在最新版本中已经修复,预计于美国太平洋时间2018年4月17日1:00PM发布。
漏洞评分 S0947640/CVE-2018-2628: 主题:ACTIVATOR UNICASTREF对象 JAVA RMI反序列化远程代码执行 CVSSv3 基础评分:9.8 CVSS vector:CVS3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
二.影响范围
受影响的版本
lWebLogic 10.3.6.0
lWebLogic 12.1.3.0
lWebLogic 12.2.1.2
lWebLogic 12.2.1.3
受影响的区域
根据NTI(绿盟态势感知平台)反馈的结果,在全球范围内对互联网开放weblogic服务的资产数量多达19229,其中归属中国地区的受影响资产为1787。
对应中国归属各省市的的分布情况如下图所示,北京地区开放的资产数量较多。
由于此漏洞产生于Weblogic T3服务,当开放Weblogic控制台端口(默认为7001端口)时,T3服务会默认开启,因此会造成较大影响,结合曾经爆出的Weblogic WLS 组件漏洞(CVE-2017-10271),不排除会有攻击者利用挖矿的可能,因此,建议受影响企业用户尽快部署防护措施。
三.漏洞影响排查
3.1版本检查
使用如下命令对WebLogic版本进行排查
$ cd /lopt/bea92sp2/weblogic92/server/lib $ java -cp weblogic.jar weblogic.version |
查看版本是否在受影响范围内。如果当前版本在受影响范围内,在检测是否对外开放了Weblogic端口(默认为7001端口),如果Weblogic服务可被远程访问。则存在漏洞风险,请受影响的用户及时进行加固。
3.2脚本检测
针对该漏洞,绿盟科技提供检测脚本请相关企业用户联系绿盟科技对应的客户经理索取。
3.3互联网资产影响排查
绿盟科技威胁情报中心提供对互联网开放网络资产信息查看的功能,企业用户可通过在NTI上检索自有资产信息端口开放情况,查看企业资产是否受此漏洞影响。
绿盟科技威胁情报中心为企业客户提供互联网资产核查服务,使得企业客户能够及时掌握自身资产的安全态势以及资产变动情况,服务详情可咨询:NTI@nsfocus.com,或者咨询对应的客户经理。
四.漏洞防护
4.1官方升级
Oracle已经在发布的WebLogic 12.2.1.2版本中修复了此漏洞,请受影响的用户尽快升级,以保证长期有效的防护。请参考以下链接:
http://www.oracle.com/technetwork/security-advisory/cpujan2017-2881727.html
4.2安全产品防护方案
已经部署绿盟网络入侵防护系统(NIPS)、绿盟网络入侵检测系统(NIDS)或绿盟下一代防火墙(NF)的用户,可通过规则升级进行有效的防护,规则号为【23614 Oracle Weblogic Server Java反序列化漏洞】,请相关用户及时升级规则库,并关注绿盟科技官网进行升级。
规则升级的详细操作步骤见附录A部分内容。
4.3临时解决方案
CVE-2018-2628漏洞利用的第一步是与Weblogic服务器开放在服务端口上的T3服务建立socket连接,可通过控制T3协议的访问来临时阻断攻击行为。WebLogic Server 提供了名为weblogic.security.net.ConnectionFilterImpl 的默认连接筛选器。此连接筛选器接受所有传入连接,可通过此连接筛选器配置规则,对t3及t3s协议进行访问控制。。
1.进入Weblogic控制台,在base_domain的配置页面中,进入“安全”选项卡页面,点击“筛选器”,进入连接筛选器配置。
2.在连接筛选器中输入:weblogic.security.net.ConnectionFilterImpl,在连接筛选器规则中输入:* * 7001 deny t3 t3s
3.保存后规则即可生效,无需重新启动。
使用检测脚本,可看到防护效果已经生效:
连接筛选器规则格式如:target localAddress localPort action protocols,其中: ltarget 指定一个或多个要筛选的服务器。 llocalAddress 可定义服务器的主机地址。(如果指定为一个星号 (*),则返回的匹配结果将是所有本地 IP 地址。) llocalPort 定义服务器正在监听的端口。(如果指定了星号,则匹配返回的结果将是服务器上所有可用的端口)。 laction 指定要执行的操作。(值必须为“allow”或“deny”。) lprotocols 是要进行匹配的协议名列表。(必须指定下列其中一个协议:http、https、t3、t3s、giop、giops、dcom 或 ftp。) 如果未定义协议,则所有协议都将与一个规则匹配。 |
五.漏洞简析
该服务会解包Object结构,通过一步步的readObject去第二步服务器上的1099端口请求恶意封装的代码。
然后在本地弹出计算器。
Weblogic已经将互联网暴露的PoC都已经加入了黑名单,如果要绕过他的黑名单的限制就只能自己动手构造。来看看InboundMsgAbbrev中resolveProxyClass的实现,resolveProxyClass是处理rmi接口类型的,只判断了java.rmi.registry.Registry,其实随便找一个rmi接口即可绕过。
protected Class> resolveProxyClass(String[] interfaces) throws IOException, ClassNotFoundException { String[] arr$ = interfaces; int len$ = interfaces.length; for(int i$ = 0; i$ < len$; ++i$) { String intf = arr$[i$]; if(intf.equals(java.rmi.registry.Registry)) { throw new InvalidObjectException(Unauthorized proxy deserialization); } } return super.resolveProxyClass(interfaces); } |
六.声明
本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。
绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。
附录A NIPS规则包升级操作
1.从官网下载最新的NIPS升级包,以5.6.10版本为例,访问以下链接可获得最新的规则升级包:
http://update.nsfocus.com/update/listNewidsDetail/v/rule5.6.10
2.在系统升级中点击离线升级,选择系统规则库,选择对应的文件,点击上传。
3.更新成功后,在系统默认规则库中查找规则编号:23614,即可查询到对应的规则详情。