影响版本
- Docker Version <=
18.09.2
- runC Version <=
1.0-rc6
环境
Ubuntu 16.04.7 LTS
Kali
环境搭建
1、获取Ubuntu 16.04.7 LTS。
2、添加更新源到 /etc/apt/source.list
文件中,并更新apt软件包索引。
3、安装软件包,以允许apt通过HTTPS使用镜像仓库。
4、添加Docker的官方GPG密钥。
5、置稳定存储库,直接写入到/etc/apt/source.list
文件中。
6、再次更新apt软件包索引,可以看出新增docker镜像仓库。
漏洞复现
1、卸载已经安装的docker,选择低于18.09.2版本进行安装,启动docker并查看docker和runc版本(均在漏洞影响范围内)。
2、下载CVE-2019-5736漏洞POC并修改main.go中的payload内容。
3、编译payload
4、启动环境
5、执行以下命令将生成的main脚本cp到docker容器中(模拟攻击者获取了docker容器权限,在容器中上传payload进行docker逃逸)
docker cp /home/luyifei/CVE-2019-5736-PoC/main 7d10a92534eb:/home
执行如下命令,进入容器,查看脚本是否拷进容器并启动main脚本
docker exec -it 7d10a92534eb /bin/bash
6、启用kali进行监听,并运行ifconfig,从ip可知为受害者机,漏洞利用成功。