Docker逃逸漏洞

2021-03-24 14:51:04 浏览数 (1)

Docker逃逸漏洞复现(CVE-2019-5736)

因为Docker所使用的是隔离技术,就导致了容器内的进程无法看到外面的进程,但外面的进程可以看到里面,所以如果一个容器可以访问到外面的资源,甚至是获得了宿主主机的权限,这就叫做“Docker逃逸”。

Ubuntu安装指定版本的docker

sudo apt-get installdocker-ce=18.03.0~ce-0~ubuntu 报错:

E: Version '18.03.0~ce-0~ubuntu' for 'docker-ce'was not found

sudo apt-get update sudo apt-get install apt-transport-httpsca-certificates curl software-properties-common curl -fsSLhttps://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64]https://download.docker.com/linux/ubuntu xenial stable"

查看可用的docker版本:

apt-cache madison docker-ce 输出结果:

sudo apt-get install docker-ce=18.06.1~ce~3-0~ubuntu

随便起个服务

dockersearch redis

dockerpull redis

dockerrun -p 6379:6379 -d redis

Docker容器进入

安装go环境编译payload

下载go环境

wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz

解压 tar -C /usr/local -zxvf go1.11.5.linux-amd64.tar.gz

添加环境变量

vim/etc/profile

最后一行添加

export GOROOT=/usr/local/go

exportPATH=PATH:GOROOT/bin

保存

source/etc/profile

cat/proc/1/cgroup

CGO_ENABLED=0GOOS=linux GOARCH=amd64 go build main.go

上传脚本到docker里面

dockercp /root/main 7529741a9265: /root/main

模拟黑客运行payload

0 人点赞