docker逃逸到宿主机

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搭建

centos7 rpm 离线安装 docker - 简书

1.2准备镜像

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

参考以下文章制作镜像

一种docker基础镜像制作方法  一种docker基础镜像制作方法_hjh00的博客-CSDN博客

1.3准备Go环境

目标:go1.9

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

CentOS7 编译安装golang和rpm安装golang_weixin_30521161的博客-CSDN博客

1.4POC文件准备

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

采用以下命令编译poc文件

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

1.5复现操作

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

1.6防范

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

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

CVE-2019-5736-PoC验证环境需要的文件docker18.03,go1.9-系统安全文档类资源-CSDN下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码者人生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值