首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker逃逸漏洞复现(CVE-2019-5736)

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

作者头像
字节脉搏实验室
发布2020-07-24 14:23:46
2.2K0
发布2020-07-24 14:23:46
举报

0x00 概述

2019年2月11日,runc的维护团队报告了一个新发现的漏洞,该漏洞最初由Adam Iwaniuk和Borys Poplawski发现。该漏洞编号为CVE-2019-5736,漏洞影响在默认设置下运行的Docker容器,并且攻击者可以使用它来获得主机上的root级访问权限。

0x01 漏洞原理

漏洞点在于runc,runc是一个容器运行时,最初是作为Docker的一部分开发的,后来作为一个单独的开源工具和库被提取出来。作为“低级别”容器运行时,runc主要由“高级别”容器运行时(例如Docker)用于生成和运行容器,尽管它可以用作独立工具。 像Docker这样的“高级别”容器运行时通常会实现镜像创建和管理等功能,并且可以使用runc来处理与运行容器相关的任务:创建容器、将进程附加到现有容等。 在Docker 18.09.2之前的版本中使用了的runc版本小于1.0-rc6,因此允许攻击者重写宿主机上的runc二进制文件,攻击者可以在宿主机上以root身份执行命令。

0x02 利用方式

宿主机利用攻击者提供的image来创建一个新的container 。 拥有container root权限,并且该container后续被docker exec attach。

一句话描述,docker 18.09.2之前的runc存在漏洞,攻击者可以修改runc的二进制文件导致提权。

0x03 漏洞复现

一、安装漏洞环境。(Ubuntu16.04)

curl https://gist.githubusercontent.com/thinkycx/e2c9090f035d7b09156077903d6afa51/raw -o install.sh && bash install.sh

第一遍安装完Docker后拉取镜像会异常缓慢,可【Ctrl】+【C】终止后添加Docker加速源

systemctl daemon-reload service docker restart

配置完加速源后,再重新运行bash install.sh拉取镜像时就快了,完成后就进入了开启的docker容器中了。

再看下此时的漏洞环境,docker和docker-runc版本如下:

二、编译go脚本生成攻击payload

1.下载POC:

https://github.com/Frichetten/CVE-2019-5736-PoC

切换到root用户或以root用户身份编译main.go文件:sudo gedit main.go

2.修改Payload中的内容,写入一个反弹Shell的代码,其中打码部分是我服务器的IP

编译生成payload CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go

3.将该payload拷贝到docker容器中(此时可以模拟攻击者获取了docker容器权限,在容器中上传payload进行docker逃逸) 并执行

docker cp main c37c910028ae:/home docker exec -it c37c910028ae bash cd /home/ chmod 777 main ./main

4.在服务器上利用NetCat监听8888端口

5.【Ctrl】+【Shift】+【T】新建一个终端,进入Docker容器中,触发Payload

6.运行后可以看到之前的终端中有回显同时服务器处收到反弹Shell

此时查看IP也会发现该IP是运行Docker的ubuntu16.04的IP,所以成功实现了Docker容器的逃逸。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 字节脉搏实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x01 漏洞原理
  • 0x02 利用方式
  • 0x03 漏洞复现
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档