返回首页

CVE-2024-21182漏洞深度分析:Oracle WebLogic Server T3/IIOP反序列化RCE

CVE-2024-21182漏洞深度分析:Oracle WebLogic Server T3/IIOP反序列化RCE

WebLogic的T3协议反序列化漏洞已经成了安全圈的"老朋友",但CVE-2024-21182的利用链比以往更隐蔽。本文从协议层面拆解这个漏洞。

漏洞档案

字段
CVE编号 CVE-2024-21182
CVSS评分 9.8(Critical)
攻击向量 Network
攻击复杂度 Low
所需权限 None
影响组件 Oracle WebLogic Server
影响版本 12.2.1.4.0, 14.1.1.0.0
修复CPU 2024年4月Critical Patch Update

T3协议与反序列化

T3协议概述

T3是WebLogic的私有RMI传输协议,用于服务器间通信和客户端连接。默认监听7001端口,与HTTP共用。

Client → T3 Handshake → WebLogic Server
  ↓
T3 Header (10 bytes)
  ↓
Serialized Java Objects (Stubs, DGC messages)

T3协议的核心问题在于:协议层直接反序列化Java对象,无类型白名单限制。这与Java RMI的JRMP协议类似,但WebLogic的实现更加复杂。

漏洞触发路径

T3 Connection → IncomingMessage → readObject()
  → ClusterMasterRemote_Stub (恶意构造)
  → Method.invoke() via Proxy
  → Runtime.exec()

攻击者通过T3协议发送精心构造的序列化数据,利用WebLogic内部的ClusterMasterRemote_Stub类作为Gadget,绕过已有的反序列化过滤器。

与历史漏洞对比

CVE 年份 利用链 补丁绕过
CVE-2015-4852 2015 commons-collections 首次T3反序列化
CVE-2017-3248 2017 JRMP 绕过黑名单
CVE-2018-2628 2018 JRMP2 绕过resolveClass
CVE-2020-2555 2020 Coherence 新Gadget链
CVE-2023-21931 2023 ClusterMaster 绕过白名单
CVE-2024-21182 2024 ClusterMaster_V2 绕过过滤器

利用工具

公开的利用工具包括:

  • CVE-2024-21182-Exploit:Python实现,支持命令执行和内存马注入
  • weblogic-framework:Java实现,支持多种利用模式
# 使用Python exploit
python3 exploit.py -t 192.168.1.100:7001 -c "id"

# 使用weblogic-framework
java -jar weblogic-framework.jar -t 192.168.1.100:7001 -m shell

检测方案

网络层检测

# 检测T3协议握手
tcpdump -i eth0 port 7001 -A | grep "t3 "

# 检测IIOP协议
tcpdump -i eth0 port 7001 -A | grep "GIOP"

日志检测

# WebLogic日志路径
tail -f /opt/weblogic/user_projects/domains/base_domain/servers/AdminServer/logs/AdminServer.log | grep -i "deserialize\|ClassNotFound\|InvalidClass"

Yara规则

rule WebLogic_T3_Deserialization {
    meta:
        description = "Detects T3 protocol deserialization exploitation"
        author = "Security Research"
    strings:
        $t3_header = "t3 " ascii
        $java_serial = {ac ed 00 05}
        $runtime = "java.lang.Runtime" ascii
    condition:
        $t3_header at 0 and ($java_serial or $runtime)
}

修复方案

临时缓解

禁用T3协议(如果业务允许):

# WebLogic控制台
# Environment → Servers → AdminServer → Protocols
# 取消勾选 "Enable T3 Protocol"

# 或通过WLST
connect('weblogic', 'password', 't3://localhost:7001')
edit()
startEdit()
cd('/Servers/AdminServer/WebServer/AdminServer/WebServer')
set('FrontendHost', '')
set('FrontendHTTPPort', '')
set('FrontendHTTPSPort', '')
save()
activate()

过滤T3/IIOP流量

# iptables规则
iptables -A INPUT -p tcp --dport 7001 -m string --string "t3 " --algo bm -j DROP
iptables -A INPUT -p tcp --dport 7001 -m string --string "GIOP" --algo bm -j DROP

根本修复

安装2024年4月CPU补丁:

# 下载补丁
# Oracle Support → Patches & Updates → Search: 36422487

# 应用补丁
cd $ORACLE_HOME
opatch apply

# 重启WebLogic
$DOMAIN_HOME/bin/stopWebLogic.sh
$DOMAIN_HOME/bin/startWebLogic.sh

企业级防御策略

网络分段

  • WebLogic服务器部署在独立VLAN
  • T3端口仅允许管理网段访问
  • 使用堡垒机进行远程管理

运行时保护

  • 部署RASP(Runtime Application Self-Protection)
  • 启用Java Security Manager
  • 配置反序列化白名单

持续监控

  • SIEM集成WebLogic日志
  • 网络流量异常检测
  • 定期漏洞扫描

总结

CVE-2024-21182再次证明了WebLogic T3协议的攻击面之广。从2015年至今,T3反序列化漏洞已经出现了至少10个变种,每次都通过不同的Gadget Chain绕过补丁。

对运维团队的建议:

  1. 立即评估是否需要T3协议,不需要则禁用
  2. 72小时内安装2024年4月CPU补丁
  3. 部署网络层T3/IIOP流量过滤
  4. 建立WebLogic反序列化攻击的检测规则
  5. 长期考虑迁移到Spring Boot等更现代的应用服务器

数据来源与声明

评论