首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏红蓝对抗

    Docker容器逃逸

    原文首发在:奇安信攻防社区 https://forum.butian.net/share/2638 作者:凝 前言: 我认为docker容器逃逸也算是提权的一种手法,要更好的理解容器逃逸的手法,应该知道从本质上看容器内的进程只是一个受限的普通 Linux 进程,而容器逃逸的过程我们完全可以将其理解... 前言: 我认为docker容器逃逸也算是提权的一种手法,要更好的理解容器逃逸的手法,应该知道从本质上看容器内的进程只是一个受限的普通 Linux 进程,而容器逃逸的过程我们完全可以将其理解为在一个受限进程中进行一些操作来获取未受限的完整权限 docker容器的环境,我们便要尝试容器逃逸 Docker配置不当导致的容器逃逸 这里我们再次提到NameSpace和cgroups Linux 命名空间(NameSpace):实现文件系统、网络、进程 privileged 特权容器的权限其实有很多,所以也有很多不同的逃逸方式,挂载设备读写宿主机文件是特权容器最常见的逃逸方式之一 如何判断当前容器是以Privileged 特权模式启动的呢?

    1.5K30编辑于 2023-12-28
  • 来自专栏红蓝对抗

    Docker容器逃逸

    ,要更好的理解容器逃逸的手法,应该知道从本质上看容器内的进程只是一个受限的普通 Linux 进程,而容器逃逸的过程我们完全可以将其理解...前言:我认为docker容器逃逸也算是提权的一种手法,要更好的理解容器逃逸的手法 限制权限的进程获取更多权限,当清晰的理解了这一点,接下来的容器逃逸学习将会易如反掌容器逃逸环境搭建作者这里选择的是Ubuntu-18.04和Ubuntu22.04,推荐使用Ubuntu18.04首先安装 privileged特权逃逸的本质也是因为特权环境打破了容器与宿主机直接的隔离实现了容器逃逸**我们可以详细看一下namespace的几种类型:PID namespace:使得每个进程都有一个独立的进程 docker容器的环境,我们便要尝试容器逃逸Docker配置不当导致的容器逃逸这里我们再次提到NameSpace和cgroupsLinux 命名空间(NameSpace):实现文件系统、网络、进程、主机名等方面的隔离 privileged 特权容器的权限其实有很多,所以也有很多不同的逃逸方式,挂载设备读写宿主机文件是特权容器最常见的逃逸方式之一如何判断当前容器是以Privileged 特权模式启动的呢?

    1.7K21编辑于 2023-12-25
  • 来自专栏Khan安全团队

    带你玩转docker容器逃逸

    Part01 简述docker容器逃逸什么是docker? 容器是完全使用沙箱机制,相互之间不会有任何接口。什么是Docker容器逃逸3、Docker软件设计不当,例如:CVE-2019-5736(runc逃逸)、CVE-2020-15257(DockerContainerd)、CVE-2019-14271(CP缺陷);Part03  是否能获取containerd-shim 监听的 Unix 域套接字:cat /proc/net/unix|grep -a "containerd-shim"3、漏洞利用以--net=host 启动容器直接下载 成功接受到shellPart04 如何防止docker逃逸1、避免使用特权模式启动容器,或者限制容器所需的最小权限;2、避免将宿主机上的敏感文件或目录挂载到容器内部,或者使用只读模式挂载;3、避免将Docker

    3.8K10编辑于 2023-11-28
  • 来自专栏云原生实验室

    Runc 容器初始化和容器逃逸

    =0),这时候就有了逃逸的机会。 所谓容器逃逸,就是容器中的进程通过某种方式改写主机环境,从容器这个平行世界中“逃脱”,改变主世界。 在容器中它可能只是个“村长”,但由于它的 UID 与外面的“国王”相等,一旦逃逸发生,它就等同于拥有“国王”权限,可以对外发布更高权限的命令。 CVE-2019-5736: 改写 runc 容器逃逸 在 2019 年初,爆发了一个容器严重漏洞,运行 docker 的容器环境,普通用户可以通过特殊构建的镜像,运行后改写主机上的 runc,从而进一步进行入侵操作 CVE-2019-14271: 通过 docker-cp 容器逃逸 这个漏洞是指当运行 docker 的环境中调用docker cp时,如果访问的是一个恶意容器容器中的用户就可以在主机中运行任意代码。

    1.3K20发布于 2021-02-25
  • 来自专栏湛卢工作室

    云原生安全 | docker容器逃逸

    docker是目前主流的容器技术,今天我们来探讨一下docker逃逸3种常见方式:内核漏洞引起的逃逸、相关程序漏洞引起的逃逸和docker配置不当引起的逃逸。 0x02 相关程序漏洞引起的逃逸 第二种逃逸方式,利用相关程序漏洞进行逃逸,所谓相关程序漏洞,指的是那些参与到容器生态中的服务端、客户端程序自身存在的漏洞,相关程序组件如下图所示: ? 0x03 配置不当引起的逃逸 第三种逃逸方式,利用容器配置不当进行逃逸,包括remote api 未授权访问、特权模式等方式。 容器运行时安全:容器在运行时也会产生安全问题,包括有磁盘资源限制问题,容器逃逸问题,容器DoS攻击与流量限制问题等等。 参考资料: 1、《金融领域云原生技术与安全研究》 2、《容器时代:数万台服务器下的 Docker 深度安全实践》 3、《技术干货 | Docker 容器逃逸案例汇集》

    3.1K20发布于 2020-08-13
  • 来自专栏架构驿站

    基于 Cilium 和 eBPF 检测容器逃逸

    在这篇博文中,我将向大家展示访问我们的 Kubernetes 集群的攻击者如何进行容器逃逸:运行 Pod 以获得 root 权限,将 Pod 转义到主机上,并通过不可见的 Pod 和无文件执行来持续攻击 问题 在容器逃逸期间,攻击者打破了主机和容器之间的隔离边界,最终逃逸至 Kubernetes 控制平面或工作节点的地方。 让我们进入主机命名空间 在此示例中,我们使用具有主机命名空间配置的特权 Pod 来表示容器逃逸攻击。正如我们在此处演示的那样,这在强化的 Kubernetes 环境中是可能的。 请注意,有多种方法可以执行突破,例如,攻击者也可以利用漏洞获得特权并逃出容器沙箱。 攻击者执行容器逃逸的第一个也是最简单的步骤是使用特权 Pod 规范启动一个 Pod。 在此示例中,我们使用了具有 hostPID 关联的特权容器。在现实世界中,这也可能是一个拥有自己进程命名空间的非特权容器,然后设法利用内核漏洞获得特权并突破。他们能做什么?

    1.5K30编辑于 2021-12-10
  • 来自专栏架构驿站

    基于 Cilium 和 eBPF 检测容器逃逸

    在这篇博文中,我将向大家展示访问我们的 Kubernetes 集群的攻击者如何进行容器逃逸:运行 Pod 以获得 root 权限,将 Pod 转义到主机上,并通过不可见的 Pod 和无文件执行来持续攻击 问题      在容器逃逸期间,攻击者打破了主机和容器之间的隔离边界,最终逃逸至 Kubernetes 控制平面或工作节点的地方。 让我们进入主机命名空间      在此示例中,我们使用具有主机命名空间配置的特权 Pod 来表示容器逃逸攻击。正如我们在此处演示的那样,这在强化的 Kubernetes 环境中是可能的。 请注意,有多种方法可以执行突破,例如,攻击者也可以利用漏洞获得特权并逃出容器沙箱。      攻击者执行容器逃逸的第一个也是最简单的步骤是使用特权 Pod 规范启动一个 Pod。 在此示例中,我们使用了具有 hostPID 关联的特权容器。在现实世界中,这也可能是一个拥有自己进程命名空间的非特权容器,然后设法利用内核漏洞获得特权并突破。他们能做什么?

    1.1K81发布于 2021-11-19
  • 来自专栏Bypass

    技术干货 | Docker 容器逃逸案例汇集

    ---- Docker 容器逃逸案例: 1、判断是否处于docker容器里 2、配置不当引起的逃逸 Docker Remote API 未授权访问 docker.sock 挂载到容器内部 docker 高危启动参数 privileged 特权模式 挂载敏感目录 相关启动参数存在的安全问题 3、Docker 软件设计引起的逃逸 Shocker攻击 runC容器逃逸漏洞(CVE-2019-5736) Docker 函数的能力,导致容器逃逸的发生。 /main 248f8b7d3c45:/tmp 3、模仿攻击者,在容器中执行payload # 进入容器sudo docker exec -it 248f8b7d3c45 /bin/bash # 修改权限 容器逃逸,获得root权限的shell。

    3.5K10发布于 2020-08-09
  • 来自专栏信安百科

    CVE-2024-21626|runc容器逃逸漏洞

    0x00 前言 runc是一个遵循oci标准的用来运行容器的命令行工具。runc的使用非常灵活,可以与各种容器工具和平台集成,如Docker、Kubernetes等。 0x01 漏洞描述 由于内部文件描述符泄漏,本地威胁者可以通过多种方式实现容器逃逸: 通过使新生成的容器进程(来自runc exec)在主机文件系统命名空间中拥有一个工作目录,或诱使特权用户运行恶意镜像并允许容器进程通过 这些攻击还可用于覆盖半任意主机二进制文件,从而实现容器逃逸

    1.3K10编辑于 2024-02-22
  • 来自专栏Khan安全团队

    Docker 枚举、特权升级和容器逃逸 (DEEPCE)

    Docker 枚举、特权升级和容器逃逸 (DEEPCE) 为了使其与最大数量的容器兼容,DEEPCE 是纯编写的sh,没有依赖性。 可以使用以下单行之一将 DEEPCE 下载到主机或容器上。提示:下载到/dev/shm避免接触磁盘。 requests.get("https://github.com/stealthcopter/deepce/raw/main/deepce.sh").content)' > deepce.sh python3 容器 ID 和名称(通过反向 DNS) 容器 IP / DNS 服务器 码头工人版本 有趣的坐骑 普通文件中的密码 环境变量 密码哈希 容器中存储的常见敏感文件 同一网络上的其他容器 端口扫描其他容器, 利用特权容器在主机操作系统上创建新的 root 用户: .

    76621编辑于 2023-02-23
  • 来自专栏Bypass

    发现一款容器逃逸漏洞利用神器!

    有在关注容器逃逸漏洞,最近在github上发现了一款零依赖Docker/K8s渗透工具包,集成了多个漏洞PoC/EXP,可轻松逃脱容器并接管K8s集群。 CDK- 零依赖Docker/K8s渗透工具包 CDK是一款为容器环境定制的渗透测试工具,在已攻陷的容器内部提供零依赖的常用命令及PoC/EXP。 集成Docker/K8s场景特有的 逃逸、横向移动、持久化利用方式,插件化管理。 github项目地址: https://github.com/Xyntax/CDK 下面以最近发布的容器逃逸漏洞 CVE-2020-15257作为演示漏洞利用过程。 (3)通过CDK执行exp,成功反弹shell,实现容器逃逸

    1.9K10发布于 2021-01-05
  • 来自专栏绿盟科技研究通讯

    【云原生攻防研究】容器逃逸技术概览

    基于上述定义,从渗透测试的角度来看,本文理解的容器逃逸或许更趋向于归入后渗透阶段; 3. 同样基于分类讨论的原则,我们仅仅讨论某种技术的可行性,不刻意涉及隐藏与反隐藏,检测与反检测等问题; 4. 检查/proc/1/cgroup内是否包含"docker"等字符串; 3. 检查是否存在container环境变量。 关于容器环境检查,网络上已经存在一些讨论的文章[2][3]。 首先创建一个容器并挂载/var/run/docker.sock; 2. 在该容器内安装Docker命令行客户端; 3. 「绿盟科技研究通讯」曾发表过一篇《容器逃逸成真:从CTF解题到CVE-2019-5736漏洞挖掘分析》,深度讲解了该漏洞的前因后果及作为启发的35C3 CTF题目,推荐感兴趣的读者阅读。 [3].Docker容器环境检测方法【代码】 [4].What are .dockerenv and .dockerinit?

    3.7K10发布于 2020-02-25
  • 【漏洞通报】NVIDIA Container Toolkit 容器逃逸漏洞

    漏洞情况近期,火山信安实验室监测发现,Container Toolkit 组件存在一个高危容器逃逸漏洞(CVE-2025-23266),攻击者可利用该漏洞突破容器隔离限制,获取宿主机的系统级权限,进而执行任意代码或窃取敏感数据 0x01漏洞利用方式漏洞源于 NVIDIA Container Toolkit 在处理 GPU 设备挂载时未对容器配置实施严格校验,攻击者可利用这一缺陷通过构造恶意容器镜像或动态篡改运行时参数(如 -- device 参数),将宿主机 /dev 目录或敏感设备节点(如 /dev/mem、/dev/kvm)非法挂载至容器内部,从而绕过容器隔离机制;进一步结合 NVIDIA 内核驱动(如 nvidia-uvm (如 libnvidia-container.conf)中的关键参数(如 device.allow 或 kernel.modules.load),攻击者可强制容器以非预期的高权限模式启动,最终达成完全的容器逃逸与宿主机提权  Kubernetes 中使用 NetworkPolicy 限制逃逸容器的网络访问来源自:广州盈基信息官网

    56410编辑于 2025-09-23
  • 来自专栏Kubernetes GO

    CVE-2024-21626:runc容器逃逸漏洞

    提权漏洞 CVSS评分: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H - 高风险 (8.6) 由于runc存在内部文件描述符泄露,本地攻击者可以通过多种方式进行容器逃逸 利用此问题可能会导致容器逃逸到底层主机操作系统,无论是通过执行恶意映像还是使用恶意 Dockerfile 或上游映像构建映像(即使用时FROM方式) Affected Versions v1.0.0-rc93 其将eBPF hook绑定到内核和用户级函数以及包检测器上,从而能够报告容器构建和运行容器的调用,如果它们匹配任何可能存在利用尝试的模式。 ,以及感谢SUSE的Aleksa Sarai发现了如何复现(攻击2和3b)通过runc exec方向实现容器逃逸。 /cve-2024-21626/ 3. https://cert.360.cn/warning/detail?

    2.9K10编辑于 2024-02-06
  • 来自专栏安全漏洞环境学习

    CVE-2019-5736 runc容器逃逸漏洞复现

    0X1 漏洞详情 Docker、containerd或者其他基于runc的容器运行时存在安全漏洞,攻击者可以通过特定的容器镜像或者exec操作可以获取到宿主机的runc执行时的文件句柄并修改掉runc的二进制文件 0X3 漏洞复现 首先搭建环境,由于Kali和Ubuntu已经安装了docker,因此重新安装漏洞版本比较麻烦,所以直接使用网上已有的环境进行复现。 然后进入容器内: ? 到root目录下,运行run.sh脚本 ? kali下开启另一个终端进行端口监听: ? 退出容器然后再重新进入容器,漏洞被触发,shell反弹过来 ? ? 至此,漏洞复现完毕!

    4.5K30发布于 2019-09-24
  • 来自专栏绿盟科技研究通讯

    The Route to Host:从内核提权到容器逃逸

    前言 绿盟科技研究通讯曾经发表过容器逃逸的技术文章《【云原生攻防研究】容器逃逸技术概览》[1],该文中探讨了已有的容器逃逸技术。 相比于容器引擎漏洞造成的逃逸,Linux内核漏洞危害更大、威胁更广。 本文接下来会首先介绍利用内核漏洞进行逃逸的思路,重点不在于内核漏洞的利用手法,而是在于提权过后如何进行容器逃逸。 逻辑漏洞导致的提权 相关权限管理和容器实现机制产生的漏洞,需要深入挖掘内核相关的机制,具体案例具体分析。 3逃逸利用 最后即为漏洞利用过程,需要构造payload。 Rootless mode[21] 3. USER containers[22] Userns-remap是指容器的创建位于一个新的User namespaces中。 GitStats - linux(phoronix.com) 3.

    2.4K20编辑于 2022-04-14
  • 如何防止容器逃逸攻击?腾讯云容器安全深度解析与实战指南

    随着容器化技术普及,容器逃逸攻击已成为云原生环境的核心威胁。 本文基于腾讯云容器安全服务(TCSS)的能力,系统阐述容器逃逸攻击的防御策略,通过技术解析与实战案例结合的方式,为企业提供可落地的安全建设方案。 一、容器逃逸攻击:云原生时代的隐形杀手容器逃逸攻击是指攻击者通过漏洞利用或配置缺陷,突破容器沙箱限制,获取宿主机权限的恶性行为。 CVE漏洞库(含CNVD定制规则)、木马病毒查杀、敏感信息检测 阻断带病镜像进入流水线 运行时防御 主机Agent+eBPF技术实现细粒度监控,实时拦截容器逃逸 限制容器特权模式 设置文件读写白名单 基线治理 导入CIS Kubernetes Benchmark模板 自动修复高风险配置项 周期性合规巡检 应急演练 模拟容器逃逸攻击场景 测试日志溯源完整性

    69610编辑于 2025-09-29
  • 来自专栏绿盟科技研究通讯

    安全容器也存在逃逸风险

    Kata Containers在官方介绍中[3]直观地展示了它与传统容器之间的异同: ? 从上图可以得出结论,在不考虑其他因素的情况下,如果Kata Containers内部的攻击者想要逃逸到宿主机上,他必须至少经过两次逃逸——「容器逃逸」和「虚拟机逃逸」,才能达到目的。 漏洞分析 如「简介」部分所述,从容器到宿主机的逃逸涉及三个漏洞的使用,由「容器逃逸」和「虚拟机逃逸」两部分组成。 其中,容器逃逸涉及到的漏洞是CVE-2020-2023,虚拟机逃逸涉及到的漏洞是CVE-2020-2025和CVE-2020-2026。 总结 纵观云计算与虚拟化技术发展可以发现,从虚拟机到容器再到安全容器,每一种技术都曾出现过逃逸情况。笔者相信,未来还会不断有新的逃逸方式出现。

    2.8K30发布于 2020-10-09
  • 来自专栏TeamsSix的网络空间安全专栏

    工具分享 | 一个检测容器逃逸的脚本

    介绍 最近搞了个检测 Docker 容器逃逸的脚本,目前支持以下几种方法的检测: 处于特权模式 挂载了 Docker Socket 挂载了 Procfs 挂载了宿主机根目录 开启了 Docker 远程 container-escape-check 感觉还不错的师傅们可以点个小星星 对于检测的原理可以看我写的这篇文章:https://zone.huoxian.cn/d/990 使用 在 Docker 容器中一键运行 /container-escape-check.s 注意: 这个脚本需要在 Docker 容器中运行 这里的检测方法大多是基于我自己的经验,可能会存在检测误检或者漏检的情况,如果您发现了这种情况,欢迎提 Issue 由于有的逃逸方法需要根据目标 Docker 的版本去判断,这里我暂时还没想到从容器内部获取 Docker 版本的方法,因此脚本暂时还不支持这块儿的检测。 ---- 往期推荐 漏洞复现 | DirtyPipe CVE-2022-0847 Linux 内核提权漏洞复现 云安全 | 容器基础设施所面临的风险学习 云安全 | AWS S3 对象存储攻防 原文链接

    1.1K20编辑于 2022-09-20
  • 危险的 runC 漏洞可能允许黑客逃逸 Docker 容器

    runC 是一款通用容器运行时,也是 OCI 认证的容器运行参考实现。它负责执行创建容器进程、配置命名空间、挂载点和控制组等底层操作,供 Docker、Kubernetes 等上层工具调用。 若攻击者在容器初始化期间将 /dev/null 替换为符号链接,runC 可能会将攻击者控制的目标以可读写模式绑定挂载到容器内,进而允许写入 /proc 目录,实现容器逃逸。 这同样会暴露关键 procfs 目录项的可写权限,为逃逸提供可能。CVE-2025-52881攻击者可诱骗 runC 向 /proc 目录写入数据,且该写入操作会被重定向到攻击者控制的目标。 影响范围CVE-2025-31133 和 CVE-2025-52881:影响所有版本的 runCCVE-2025-52565:影响 runC 1.0.0-rc3 及后续版本目前 runC 1.2.8、1.3.3 、1.4.0-rc.3 及更高版本已提供修复补丁。

    83520编辑于 2025-11-10
领券