CVE-2018-2628

哈哈哈,终于等到我复现一个CVE漏洞了。Open-mouthed smile

漏洞描述

Oracle Fusion Middleware(Oracle融合中间件)是美国甲骨文(Oracle)公司的一套面向企业和云环境的业务创新平台。该平台提供了中间件、软件集合等功能。Oracle WebLogic Server是其中的一个适用于云环境和传统环境的应用服务器组件。

攻击者可以在未授权的情况下,通过T3协议在WebLogic Server中执行反序列化操作,最终造成远程代码执行漏洞。
Oracle官方将该漏洞等级定义为“高危”

CVE-2018-2628漏洞影响范围

受影响的版本:

  • Weblogic 10.3.6.0
  • Weblogic 12.1.3.0
  • Weblogic 12.2.1.2
  • Weblogic 12.2.1.3

受影响的区域

根据NTI(绿盟威胁情报中心)统计结果,在全球范围内对互联网开放Weblogic服务的资产数量多达19,229,其中归属中国地区的受影响资产数量为1,787。

由于此漏洞产生于Weblogic T3服务,当开放Weblogic控制台端口(默认为7001端口)时,T3服务会默认开启,因此会造成较大影响,结合曾经爆出的Weblogic WLS 组件漏洞(CVE-2017-10271),不排除会有攻击者利用挖矿的可能,因此,建议受影响企业用户尽快部署防护措施。

漏洞复现

第一步发送测试PoC,PoC中远程连接的服务器地址就是第二步中所使用的服务器,攻击的ip是192.168.3.103的7001端口上的T3服务,该服务会解包Object结构,通过一步步的readObject去第二步服务器上的1099端口请求恶意封装的代码,然后在本地弹出计算器。

image

第二步在远程服务器上启用ysoserial.exploit.JRMPListener,JRMPListener会将含有恶意代码的payload发送回请求方。

image

查看weblogic的日志,可以看到如下错误,此时已经弹出计算器:


image

分析:

Weblogic已经将互联网暴露的PoC都已经加入了黑名单,如果要绕过他的黑名单的限制就只能自己动手构造。来看看InboundMsgAbbrev中resolveProxyClass的实现,resolveProxyClass是处理rmi接口类型的,只判断了java.rmi.registry.Registry,其实随便找一个rmi接口即可绕过。

其实核心部分就是JRMP(Java Remote Method protocol),在这个PoC中会序列化一个RemoteObjectInvocationHandler,它会利用UnicastRef建立到远端的tcp连接获取RMI registry,加载回来再利用readObject解析,从而造成反序列化远程代码执行。

参考资料:

【高危漏洞】Weblogic反序列化远程代码执行漏洞

【处置建议】Oracle WebLogic反序列化漏洞(CVE-2018-2628)安全处置建议

posted @ 2018-04-18 21:22  Tu9oh0st  阅读(494)  评论(0编辑  收藏  举报