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

    Docker容器逃逸

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

    1.1K30编辑于 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.4K21编辑于 2023-12-25
  • 来自专栏Khan安全团队

    带你玩转docker容器逃逸

    Part01 简述docker容器逃逸什么是docker? 容器是完全使用沙箱机制,相互之间不会有任何接口。什么是Docker容器逃逸? Docker容器逃逸指的是攻击者通过劫持容器化业务逻辑或直接控制等方式,已经获得了容器内某种权限下的命令执行能力;攻击者利用这种命令执行能力,借助一些手段进而获得该容器所在的直接宿主机上某种权限下的命令执行能力 在特定网络条件下,攻击者可通过访问containerd-shimAPI,从而实现Docker容器逃逸。 成功接受到shellPart04 如何防止docker逃逸1、避免使用特权模式启动容器,或者限制容器所需的最小权限;2、避免将宿主机上的敏感文件或目录挂载到容器内部,或者使用只读模式挂载;3、避免将Docker

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

    Runc 容器初始化和容器逃逸

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

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

    云原生安全 | docker容器逃逸

    docker是目前主流的容器技术,今天我们来探讨一下docker逃逸的3种常见方式:内核漏洞引起的逃逸、相关程序漏洞引起的逃逸和docker配置不当引起的逃逸。 0x02 相关程序漏洞引起的逃逸 第二种逃逸方式,利用相关程序漏洞进行逃逸,所谓相关程序漏洞,指的是那些参与到容器生态中的服务端、客户端程序自身存在的漏洞,相关程序组件如下图所示: ? 将该payload拷贝到docker容器中(此时可以模拟攻击者获取了docker容器权限,在容器中上传payload进行docker逃逸) ? 0x03 配置不当引起的逃逸 第三种逃逸方式,利用容器配置不当进行逃逸,包括remote api 未授权访问、特权模式等方式。 容器运行时安全:容器在运行时也会产生安全问题,包括有磁盘资源限制问题,容器逃逸问题,容器DoS攻击与流量限制问题等等。

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

    基于 Cilium 和 eBPF 检测容器逃逸

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

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

    基于 Cilium 和 eBPF 检测容器逃逸

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

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

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

    ---- Docker 容器逃逸案例: 1、判断是否处于docker容器里 2、配置不当引起的逃逸 Docker Remote API 未授权访问 docker.sock 挂载到容器内部 docker 高危启动参数 privileged 特权模式 挂载敏感目录 相关启动参数存在的安全问题 3、Docker 软件设计引起的逃逸 Shocker攻击 runC容器逃逸漏洞(CVE-2019-5736) Docker ---- 2.3 docker 高危启动参数 docker中存在一些比较高危的启动命令,给予容器较大的权限,允许执行一些特权操作,在一定的条件下,可以导致容器逃逸。 函数的能力,导致容器逃逸的发生。 容器逃逸,获得root权限的shell。

    3.4K10发布于 2020-08-09
  • 来自专栏Khan安全团队

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

    Docker 枚举、特权升级和容器逃逸 (DEEPCE) 为了使其与最大数量的容器兼容,DEEPCE 是纯编写的sh,没有依赖性。 枚举都不应该触及磁盘,但是大多数漏洞利用会创建新的容器,这将导致磁盘写入,并且一些漏洞利用会覆盖 runC,这可能具有破坏性,所以要小心! 可以使用以下单行之一将 DEEPCE 下载到主机或容器上。提示:下载到/dev/shm避免接触磁盘。 容器 ID 和名称(通过反向 DNS) 容器 IP / DNS 服务器 码头工人版本 有趣的坐骑 普通文件中的密码 环境变量 密码哈希 容器中存储的常见敏感文件 同一网络上的其他容器 端口扫描其他容器, 利用特权容器在主机操作系统上创建新的 root 用户: .

    69821编辑于 2023-02-23
  • 来自专栏信安百科

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

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

    1.2K10编辑于 2024-02-22
  • 来自专栏绿盟科技研究通讯

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

    我们谈「容器逃逸」,搜索引擎中输入这四个字也能找到为数不多的解读和研究。那么什么是「容器逃逸」?我们如何定义「容器逃逸」?对这个问题的深入理解有助于研究的展开。 开宗明义,本文将「容器逃逸」限定在一个较为狭窄的范围,并围绕此展开讨论: 「容器逃逸」指这样的一种过程和结果:首先,攻击者通过劫持容器化业务逻辑,或直接控制(CaaS等合法获得容器控制权的场景)等方式, 后文的组织结构如下: • 介绍容器环境检测技术 • 介绍危险配置导致的容器逃逸 • 介绍危险挂载导致的容器逃逸 • 介绍相关程序漏洞导致的容器逃逸 • 介绍内核漏洞导致的容器逃逸 二、 容器环境探测检查 放到本文的语境下,我们要清楚目标环境是不是容器,然后才谈得上容器逃逸。 runc程序的容器逃逸漏洞。

    3.6K10发布于 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 限制逃逸容器的网络访问来源自:广州盈基信息官网

    38110编辑于 2025-09-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.8K10发布于 2021-01-05
  • 来自专栏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存在内部文件描述符泄露,本地攻击者可以通过多种方式进行容器逃逸 一旦容器进程执行了容器镜像中的可执行文件,可以绕过PR_SET_DUMPABLE保护,之后攻击者可以通过打开 /proc/$exec_pid/cwd 来访问主机文件系统。 利用此问题可能会导致容器逃逸到底层主机操作系统,无论是通过执行恶意映像还是使用恶意 Dockerfile 或上游映像构建映像(即使用时FROM方式) Affected Versions v1.0.0-rc93 其将eBPF hook绑定到内核和用户级函数以及包检测器上,从而能够报告容器构建和运行容器的调用,如果它们匹配任何可能存在利用尝试的模式。 Docker,感谢acmcoder的lifubang发现了如何复现(攻击3a)以覆盖主机二进制文件,以及感谢SUSE的Aleksa Sarai发现了如何复现(攻击2和3b)通过runc exec方向实现容器逃逸

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

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

    0X1 漏洞详情 Docker、containerd或者其他基于runc的容器运行时存在安全漏洞,攻击者可以通过特定的容器镜像或者exec操作可以获取到宿主机的runc执行时的文件句柄并修改掉runc的二进制文件 然后进入容器内: ? 到root目录下,运行run.sh脚本 ? kali下开启另一个终端进行端口监听: ? 退出容器然后再重新进入容器,漏洞被触发,shell反弹过来 ? ? 至此,漏洞复现完毕!

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

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

    前言 绿盟科技研究通讯曾经发表过容器逃逸的技术文章《【云原生攻防研究】容器逃逸技术概览》[1],该文中探讨了已有的容器逃逸技术。 相比于容器引擎漏洞造成的逃逸,Linux内核漏洞危害更大、威胁更广。 本文接下来会首先介绍利用内核漏洞进行逃逸的思路,重点不在于内核漏洞的利用手法,而是在于提权过后如何进行容器逃逸。 一、如何利用内核漏洞进行容器逃逸 为了能够更好地展示利用内核漏洞进行容器逃逸的原理,本文将以经典的内核提权漏洞CVE-2017-7308进行阐述。 该原理也可用于容器逃逸,由于shellcode的调用者是宿主机上的进程,即使在没有切换namespaces的条件下也可以实现容器逃逸。 下一节将从逃逸的角度给出内核漏洞的分析思路,不聚焦于漏洞利用的手段,而是主要关注内核漏洞和容器逃逸的关系。 三、分析思路 在验证漏洞利用程序可以进行本地提权后,应当如何进行容器逃逸

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

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

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

    安全容器也存在逃逸风险

    作为一种轻量级虚拟化技术,传统容器与宿主机共享内核,这意味着系统内核权限提升漏洞往往也可用来实施容器逃逸。为了彻底解决这一问题,在轻量与安全性之间达到较好的平衡,安全容器应运而生。 从上图可以得出结论,在不考虑其他因素的情况下,如果Kata Containers内部的攻击者想要逃逸到宿主机上,他必须至少经过两次逃逸——「容器逃逸」和「虚拟机逃逸」,才能达到目的。 漏洞分析 如「简介」部分所述,从容器到宿主机的逃逸涉及三个漏洞的使用,由「容器逃逸」和「虚拟机逃逸」两部分组成。 其中,容器逃逸涉及到的漏洞是CVE-2020-2023,虚拟机逃逸涉及到的漏洞是CVE-2020-2025和CVE-2020-2026。 总结 纵观云计算与虚拟化技术发展可以发现,从虚拟机到容器再到安全容器,每一种技术都曾出现过逃逸情况。笔者相信,未来还会不断有新的逃逸方式出现。

    2.7K30发布于 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 对象存储攻防 原文链接

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

    runC 是一款通用容器运行时,也是 OCI 认证的容器运行参考实现。它负责执行创建容器进程、配置命名空间、挂载点和控制组等底层操作,供 Docker、Kubernetes 等上层工具调用。 若攻击者在容器初始化期间将 /dev/null 替换为符号链接,runC 可能会将攻击者控制的目标以可读写模式绑定挂载到容器内,进而允许写入 /proc 目录,实现容器逃逸。 这同样会暴露关键 procfs 目录项的可写权限,为逃逸提供可能。CVE-2025-52881攻击者可诱骗 runC 向 /proc 目录写入数据,且该写入操作会被重定向到攻击者控制的目标。 可利用性与风险云安全公司 Sysdig 的研究人员表示,利用这三个漏洞的前提是"攻击者能够启动带有自定义挂载配置的容器",而攻击者可通过恶意容器镜像或 Dockerfile 实现这一条件。 缓解措施runC 开发者分享了以下缓解措施:为所有容器启用用户命名空间,且不将主机 root 用户映射到容器命名空间中。

    53820编辑于 2025-11-10
领券