Weblogic反序列化漏洞?
- Weblogic反序列化漏洞
序列化:将内存中的对象转换成一串字节序列的过程。字节可以方便存储到文件或通过网络传输。
反序列化:将字节恢复成内存对象的过程。
WebLogic的T3和IIOP协议在传输数据时,会对发送过来的序列化Java对象进行反序列化操作。Weblogic服务器在处理来自客户端的序列化数据是,没有进行充分的验证和过滤,攻击者可以通过构造特殊的序列化数据,使用WebLogic在反序列化过程中加载并执行恶意类获取服务器权限等。
在反序列化过程中,会自动调用被序列化对象readObject()方法重建对象。weblogic提供了多个服务器端口(T3协议:7001端口、IIOP互联网对象请求代理间协议、HTTP)来接收客户端发送的序列化数据。
weblogic漏洞时绑定对象后主动进行lookup查询,然后后台触发绑定类再触发lookup执行恶意payload。
T3时WebLogic自有的高性能富内容协议,用于服务器与集群中的其他服务器、控制台、Java客户端等进行通信。
IIOP时CORBA的标准协议,用于跨语言和跨平台的远程调用。
- Weblogic反序列化漏洞利用过程
1、攻击者研究WebLogic中存在的可利用类,构造一条恶意的序列化对象链(payload)。
2、攻击者伪装成一个合法的T3或IIOP客户端,与WebLogic服务器的响应端口(7701)建立连接。
3、通过建立的连接,将构造好的恶意序列化数据流发送给服务器。
4、WebLogic服务器接收到数据后,对其进行反序列化解析。
5、在解析过程中,触发了隐藏在恶意payload中的攻击链,最终导致任意代码在服务器上执行。 - Weblogic反序列化漏洞危害
远程代码执行RCE:在目标服务器上执行任意命令,获取shell,服务器沦陷。
服务器沦陷:窃取、篡改或删除服务器上的敏感数据和应用程序代码;在内网进行横向移动,攻击其他内网系统;
将服务器作为跳板机,发起对其他目标的攻击;植入挖矿木马、勒索软件、后门等恶意程序。
业务中断:
数据泄露:核心数据被窃取,造成合规风险。 - Weblogic反序列化漏洞修复
1、及时更新版本,打补丁修复漏洞。
2、在防火墙阻断来自外部的T3协议。只允许可信IP地址访问7701端口。
3、账户权限最小化。
4、网络隔离:将WebLogic服务器部署在内网,严格限制外网网络的直接访问,只通过前置的反向代理(如Nginx)或负载均衡器暴露必要的web端口(800/443)。
5、添加waf防火墙。 - Weblogic反序列化漏洞告警特征
1、协议特征
T3协议握手头:T3协议通信开始时,客户端会发送一个固定的握手头,内容为t3 12.2.3\nAS:255\nHL:19\nMS:10000000\n\n(版本号可能不同)。任何试图发送此头数据到非标准端口或来自可疑IP的行为都应该被警惕。
IIOP协议头:IIOP流量通常以GIOP魔术字开始。
2、Payload特征:
Java序列化魔术字:所有Java序列化流的开头都是16进制的ac ed 00 05(或Base64表示为rO0AB)。
可疑命令:cmd.exe /c whoami, /bin/sh -c,下载木马的curl或wget命令。
3、异常子进程、服务器出现异常网络连接(反向shell连接到外部C2服务器)或文件创建(如被上传的WebShell或挖矿程序)。