docker逃逸到宿主机

it2022-12-30  62

1.环境准备CVE-2019-5736验证环境需要的文件

1.1准备docker

docker18.03 docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm docker-ce-cli-19.03.9-3.el7.x86_64.rpm docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm container-selinux-2.9-4.el7.noarch.rpm  

参考以下文章完成docker搭建

https://www.jianshu.com/p/764ec08196e0

 

1.2准备镜像

由于制作的docker服务里面一个镜像都没有,所以我们还需要制作基础镜像

参考以下文章制作镜像

一种docker基础镜像制作方法  https://blog.csdn.net/hjh00/article/details/51437815

 

1.3准备Go环境

目标:go1.9

参考该篇完成golang环境的部署

https://blog.csdn.net/weixin_30521161/article/details/99596704?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-1-99596704.nonecase&utm_term=go%20rpm%E5%AE%89%E8%A3%85%E5%8C%85&spm=1000.2123.3001.4430

 

1.4POC文件准备

对应的poc文件在github上可以直接下载:https://github.com/Frichetten/CVE-2019-5736-PoC 

采用以下命令编译poc文件

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

 

1.5复现操作

启动镜像 docker run test01:1.0 'tail -f /dev/null'  生成容器:ae477e005288;将该payload拷贝到docker容器中 docker cp main ae477e005288:/home;进入容器 docker exec -it ae477e005288 ;运行poc,cd /home , ./main ,到这里poc运行成功,已成功替换宿主机上runc二进制文件,等待下次启动镜像的时候就会直接执行poc里面的命令操作宿主机上的文件;

1.6防范

将采用18.09以后版本的docker版本即可避免这个问题

 

所有文件均可在网上找到,嫌麻烦的在以下包中也可下载到

https://download.csdn.net/download/philip502/12979713

 

最新回复(0)