Windows应急响应和系统加固(11)——Weblogic各类漏洞的日志分析和调查取证
Weblogic各类漏洞的日志分析和调查取证
一、WebLogic简介:
1.WebLogic简介:
WebLogic是著名的Oracle公司开发的Application Server,是第一个成功商业化的J2EE中间件、容器,用于开发、集成、部署、管理大型&分布式Web应用、网络应用和数据库应用等;
WebLogic是基于标准化、模块化的组件,提供完整的服务,无需编程即可自动处理应用行为的很多细节;
Weblogic使用独有的T3协议(T3协议:WebLogic最早由 WebLogic Inc. 开发,后并入BEA公司,最终BEA公司又并入Oracle公司,T3协议为BEA公司的内部协议);
Weblogic的市场份额还算比较稳定,主要在大型商用系统使用,高并发,与Oracle的产品线联动配合,如图(2017年Java应用服务市场份额占比):
2.WebLogic漏洞介绍:
<1>.漏洞介绍:
近年来,缝缝补补的Weblogic,深受Java反序列、SSRF、组件Getshell、弱口令等高危漏洞影响,如图(Weblogic反序列化漏洞历史):
漏洞影响:Weblogic 10.3.x、Weblogic 12.1.x、Weblogic 12.2.x等系列产品
序列化与反序列化技术:
序列化和反序列化,是Java引入的数据传输和存储接口技术;
序列化:用于将对象(Object)转换成二进制串数据存储,对应着writeObject方法;
反序列化:洽好相反,将二进制串数据转换成对象(Object),对应着readObject方法,
序列化与反序列化,是让Java对象脱离Java运行环境的一种手段,可以有效的实现多平台之间的通信、对象持久化存储。
反序列化使用场景:
HTTP:多平台之间的通信、管理等;
RMI:Java的一组拥护开发分布式应用程序的API,实现了不同OS之间程序的方法调用(注:RMI传输,100%基于反序列化。Java RMI的默认端口是1099端口;)。
JMX:JMX是一套标准的代理和服务,用户可在任何Java应用程序中使用这些代理和服务实现管理(注:Weblogic管理页面是基于JMX开发的,JBoss整个系统都基于JMX构架。)。
<2>.漏洞分析:
CVE-2015-4852:
Apache commons-collections组件的反序列化漏洞,基于T3;
存在漏洞的Class:
org.apache.commons.collections.functors* *;
com.sun.org.apache.xalan.internal.xsltc.trax* *;
javassist* *;
org.codehaus.groovy.runtime.ConvertedClosure;
org.codehaus.groovy.runtime.ConversionHandler;
org.codehaus.groovy.runtime.MethodClosure;
CVE-2016-0638:
readExternal存在反序列化漏洞;
CVE-2016-3510:
反序列化对象,封装进weblogic.corba.utils.MarshalledObject,可顺利对MarshalledObject序列化;在反序列化时,MarshalledObject对象调用readObject,对 MarshalledObject封装的序列化对象再次反序列化,导致,逃过
黑名单的检查。
CVE-2017-3506:
由于使用了存在反序列化缺陷XMLDecoder导致的漏洞,基于http协议,挖矿主力军;
CVE-2017-10271:
是3506的绕过;
CVE-2017-10352:
XMLDecoder库存在缺陷导致任意代码执行,PoC被泄露,被用于黑产;
CVE-2017-3248:
RMI机制的缺陷,通过JRMP协议,达到执行任意反序列化Payload的目的;
resolveClass和resolveProxyClass都存在漏洞,被用于黑产(挖门罗币等);
CVE-2018-2628:
CVE-2017-3248的绕过,基于StreamMessage封装,利用java.rmi.activation.Activator绕过补丁中对java.rmi.registry.Registry的限制。
CVE-2018-2893:
如下的类被绕过,导致反序列化:
java.rmi.activation.*;
sun.rmi.server.*;
java.rmi.server.RemoteObjectInvocationHandler;
java.rmi.server.UnicastRemoteObject;
应急场景中常见的Weblogic漏洞,还有:
Console弱口令(weblogic/weblogic);
SSRF;
WLS组件命令执行漏洞。
二、日志分析(使用E.L.K处理日志):
Weblogic日志主要分为:Server日志、HTTP日志和DOMAIN日志;
1.Server日志:
主要功能:记录Weblogic Server启动至关闭过程中的运行信息和错误信息
日志结构:时间戳、严重程度、子系统、计算机名、服务器名、线程 ID、用户 ID、事务 ID、诊断上下文 ID、原始时间值、消息 ID 和消息文本。
例如:####<Mar 4, 2019 9:42:07 AM CST> <Warning> <RMI> <localhost.localdomain> <AdminServer> <[ACTIVE]ExecuteThread: "4" for queue: "weblogic.kernel.Default (self-tuning)"> <<WLS Kernel>> <> <> 080003>
<RuntimeException thrown by rmi server:<1551663727980> <BEA-weblogic.common.internal.RMIBootServiceImpl.authenticate(Lweblogic.security.acl.UserInfo;)
2.DOMAIN日志:
主要功能:记录一个DOMAIN下的各个Weblogic Server的启动至关闭过程中的运行信息和错误信息。
日志结构:####<Oct 18, 2018 2:21:11 PM CST> <Notice> <Security> <WIN-L25PQAJM1K1> <AdminServer> <[ACTIVE]ExecuteThread: "9" for queue: "weblogic.kernel.Default (self-tuning)"> <<WLS Kernel>> <> <> <1539843671288> <BEA-090082> <Security initializing using security realm myrealm.>
注:Domain日志中的日志记录不会按照其时间戳顺序写入;
DOMAIN日志中记录的时间戳是发出消息的服务器的时间戳;
有可能服务器在一段时间内无法与域服务器联系,此时,消息会被缓冲在本地并在重新连接服务器之后发送到管理服务器。
3.HTTP日志:
默认情况下,HTTP日志记录处于启用状态;
服务器会将 HTTP 请求保存到单独的日志文件中;
服务器不会将 HTTP 请求存储在服务器日志文件或域日志文件中;
默认按文件大小滚动和轮询,大小是5000KB;
扩展日志记录格式字段:c-ip cs-username date cs-method cs-uri sc-status cs(User-Agent) s-sitename s-port time-taken sc-substatus cs-host cs-version
字段解释:
c-ip: 客户端访问服务端的IP;
cs-username: 客户端访问服务端使用的用户名,匿名访问则使用占位符(-)代替;
date : 访问的日期;
time : 访问的时间;
cs-method : 客户端请求的方法;
cs-uri: 客户端请求服务器的URL;
sc-status: 服务器响应的状态码;
cs(User-Agent) : 浏览器的信息;
s-sitename: 互联网请求的名称,通常是一个占位符;
s-port: 服务的端口号;
time-taken: 完成整个访问请求所花费的时间(秒);
sc-substatus: 子状态吗,通常是一个占位符;
cs-host: 服务器的header头部;
cs-version: 协议的版本号
以上是 Windows应急响应和系统加固(11)——Weblogic各类漏洞的日志分析和调查取证 的全部内容, 来源链接: utcz.com/z/514187.html