weblogic反序列化复现
Oracle Fusion Middleware(Oracle融合中间件)是美国甲骨文(Oracle)公司的一套面向企业和云环境的业务创新平台。该平台提供了中间件、软件集合等功能。Oracle WebLogic Server是其中的一个适用于云环境和传统环境的应用服务器组件。
Oracle Fusion Middleware中的Oracle WebLogic Server组件的WLS Security子组件存在安全漏洞。攻击者可利用该漏洞控制组件,影响数据的可用性、保密性和完整性。
0x01 影响版本
Oracle WebLogic Server 10.3.6.0.0版本,12.1.3.0.0版本,12.2.1.1.0版本,12.2.1.2.0版本
构造如下Payload:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> |
使用burp进行抓包 请求头中添加以下字段:
SOAPAction: |
写入准备好的payload POST方式发送即可
nc 监听1234端口反弹shell
Weblogic命令执行漏洞(CVE-2018-2628)
.漏洞咋产生的?
漏洞的核心是WebLogic处理T3协议数据时的“无脑拆包”机制。T3协议是WebLogic默认开启的通信协议,用于服务器和Java程序之间的数据传输。但它在解析数据时,会直接对序列化数据(类似打包的快递)进行反序列化(拆包),而没有严格检查包裹里是否有危险物品(恶意代码)
T3协议默认开放:WebLogic的7001端口默认开启T3服务,相当于给黑客留了个后门
反序列化黑名单不全:之前Oracle通过黑名单拦截危险类(比如java.rmi.registry.Registry
),但攻击者换了个接口(如java.rmi.activation.Activator
),就绕过了检查
依赖危险库:WebLogic使用了存在漏洞的Apache Commons Collections库,黑客可通过这个库触发代码执行
攻击步骤拆解
分四步走:
第一步:搭“指挥中心”(JRMP Server)
- 攻击者在自己电脑上开个“指挥中心”(JRMP监听服务),等着服务器主动联系。
- 相当于黑客建了个秘密电台,准备发号施令。
第二步:伪造“通行证”(构造Payload)
用工具生成一个
“假通行证”
(Payload),里面写着:
- “指挥中心”地址(攻击者IP和端口)。
- “见到指挥中心后,按它的指令办事!”
这个通行证本质是一串伪装成正常数据的代码,但暗藏玄机。
第三步:快递“炸弹”(发送Payload)
- 通过WebLogic的T3快递通道(7001端口),把假通行证寄给服务器。
- 因为T3通道默认开放且安检不严,包裹顺利送达。
第四步:引爆“炸弹”(触发漏洞)
- 服务器拆开包裹(反序列化Payload),发现要联系“指挥中心”。
- 服务器主动连接攻击者的JRMP监听服务,“指挥中心”立刻下发最终指令(比如:“执行命令
rm -rf /*
删库”)。 - 此时服务器完全被控制,攻击者想干啥就干啥。
T3协议:WebLogic的专属快递通道,默认开放且效率高,但安检不严
RMI绕过黑名单:Oracle用黑名单拦截已知危险类,但攻击者改用RMI协议的其他接口(如Activator
),换汤不换药绕过了检查
反序列化漏洞:服务器无脑拆包裹(readObject
方法),把恶意代码当正常指令执行
JRMP协议:攻击者用JRMP监听服务做“远程指挥”,让服务器主动连接并接收攻击指令
攻击就是利用CVE-2018-2628漏洞工具包(检测工具在其中)
首先有一个监测工具需要将txt文件改成目标及ip检测
检测成功之后
利用ysoserial去生成payload然后启动JRMP的监听
然后利用工具伪造payload 反弹shell到我的攻击机
染红通过T3通道把payload传递给服务器进行反序列化解析连接jRMP建立通讯
然后JRMP发送反弹shell 的命令,拿下攻击机