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

    Docker容器逃逸

    原文首发在:奇安信攻防社区 https://forum.butian.net/share/2638 作者:凝 前言: 我认为docker容器逃逸也算是提权的一种手法,要更好的理解容器逃逸的手法,应该知道从本质上看容器内的进程只是一个受限的普通 Linux 进程,而容器逃逸的过程我们完全可以将其理解... 前言: 我认为docker容器逃逸也算是提权的一种手法,要更好的理解容器逃逸的手法,应该知道从本质上看容器内的进程只是一个受限的普通 Linux 进程,而容器逃逸的过程我们完全可以将其理解为在一个受限进程中进行一些操作来获取未受限的完整权限 privileged 特权容器的权限其实有很多,所以也有很多不同的逃逸方式,挂载设备读写宿主机文件是特权容器最常见的逃逸方式之一 如何判断当前容器是以Privileged 特权模式启动的呢? main(void) { int *a = NULL; *a = 1; return 0; } gcc ning.c -o ning chmod 777 ning 紧接着我们在攻击机上起监听

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

    Docker容器逃逸

    ,要更好的理解容器逃逸的手法,应该知道从本质上看容器内的进程只是一个受限的普通 Linux 进程,而容器逃逸的过程我们完全可以将其理解...前言:我认为docker容器逃逸也算是提权的一种手法,要更好的理解容器逃逸的手法 限制权限的进程获取更多权限,当清晰的理解了这一点,接下来的容器逃逸学习将会易如反掌容器逃逸环境搭建作者这里选择的是Ubuntu-18.04和Ubuntu22.04,推荐使用Ubuntu18.04首先安装 docker容器的环境,我们便要尝试容器逃逸Docker配置不当导致的容器逃逸这里我们再次提到NameSpace和cgroupsLinux 命名空间(NameSpace):实现文件系统、网络、进程、主机名等方面的隔离 privileged 特权容器的权限其实有很多,所以也有很多不同的逃逸方式,挂载设备读写宿主机文件是特权容器最常见的逃逸方式之一如何判断当前容器是以Privileged 特权模式启动的呢? stdio.h>int main(void) { int *a = NULL; *a = 1; return 0;}gcc ning.c -o ningchmod 777 ning紧接着我们在攻击机上起监听于此同时

    1.4K21编辑于 2023-12-25
  • 如何防止容器逃逸攻击?腾讯云容器安全深度解析与实战指南

    随着容器化技术普及,容器逃逸攻击已成为云原生环境的核心威胁。 本文基于腾讯云容器安全服务(TCSS)的能力,系统阐述容器逃逸攻击的防御策略,通过技术解析与实战案例结合的方式,为企业提供可落地的安全建设方案。 一、容器逃逸攻击:云原生时代的隐形杀手容器逃逸攻击是指攻击者通过漏洞利用或配置缺陷,突破容器沙箱限制,获取宿主机权限的恶性行为。 按集群节点数计费 合规能力 内置金融/医疗等8大行业基线 等保2.0基础版 限制容器特权模式 设置文件读写白名单 基线治理 导入CIS Kubernetes Benchmark模板 自动修复高风险配置项 周期性合规巡检 应急演练 模拟容器逃逸攻击场景 测试日志溯源完整性

    46310编辑于 2025-09-29
  • 来自专栏Khan安全团队

    带你玩转docker容器逃逸

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

    3.4K10编辑于 2023-11-28
  • 来自专栏编程技术向北,人生删除指南

    利用容器逃逸实现远程登录k8s集群节点

    李国宝:边缘计算k8s集群SuperEdge初体验​zhuanlan.zhihu.com 照着上一篇文章来说,我这边边缘计算集群有一堆节点。 每个节点都在不同的网络环境下。 于是开始研究了一下怎么实现在只有kubectl环境的机器上, 直接登录k8s容器集群的node节点。 搜了一波之后首先发现的是这个项目。 ---- 这个脚本使用busybox镜像启动了容器实例, 通过chroot到 /host + 把宿主机所有文件挂在到容器实例的方式, 实现了在容器实例直接对宿主机系统一对一“Copy”(可能表达不太准确 所谓, 这就是容器逃逸。 然后.... 我们的目的确实也达到了。 通过这种方式确实可以直接实现登录任意一台k8s node节点, 再也不需要密码和授权。 ---- 总结。 很好玩。 参考资料: docker 容器逃逸漏洞(CVE-2020-15257)风险通告 容器逃逸技术概览 - DockOne.io rambo1412:容器逃逸技术概览

    1.9K40发布于 2021-05-21
  • 来自专栏云原生实验室

    Runc 容器初始化和容器逃逸

    容器逃逸 "特权"容器 "特权"在 runc 及基于 containerd 的 docker 中, 对应选项是--privileged,在 K8S 中对应的是pod.Spec.privileged: true =0),这时候就有了逃逸的机会。 所谓容器逃逸,就是容器中的进程通过某种方式改写主机环境,从容器这个平行世界中“逃脱”,改变主世界。 CVE-2019-14271: 通过 docker-cp 容器逃逸 这个漏洞是指当运行 docker 的环境中调用docker cp时,如果访问的是一个恶意容器容器中的用户就可以在主机中运行任意代码。 K8S 和 docker/crio 的特权模式一定慎用,可以把它跟 root 等同审慎对待,绝对不能开放给普通用户。 关注容器生态安全漏洞,及时发现预警,避免修复不及时造成损失。

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

    云原生安全 | docker容器逃逸

    docker是目前主流的容器技术,今天我们来探讨一下docker逃逸的3种常见方式:内核漏洞引起的逃逸、相关程序漏洞引起的逃逸和docker配置不当引起的逃逸。 由于容器共享宿主机内核,可在容器中利用VDSO(Virtual Dynamic Shared Object,虚拟动态共享对象)内存空间中的clock_gettime() 函数对宿主机存在的脏牛漏洞发起攻击 攻击者可以通过特定的容器镜像或者exec操作获取到宿主机runc执行时的文件句柄并修改掉runc的二进制文件,从而获取到宿主机的root执行权限。 将该payload拷贝到docker容器中(此时可以模拟攻击者获取了docker容器权限,在容器中上传payload进行docker逃逸) ? 容器运行时安全:容器在运行时也会产生安全问题,包括有磁盘资源限制问题,容器逃逸问题,容器DoS攻击与流量限制问题等等。

    3K20发布于 2020-08-13
  • 来自专栏深度学习与python

    微软云服务爆出 FabricScape 容器逃逸漏洞,攻击者可接管 Linux 集群

    作者 | Tina 微软在 Service Fabric (SF) 应用程序托管平台爆出了一个名为 FabricScape 的容器逃逸漏洞,攻击者可利用此漏洞将权限提升到 root,夺取主机节点的控制权 微软建议客户持续审查一切有权访问其主机集群的容器化工作负载(包括 Linux 与 Windows)。 微软表示,“默认情况下,SF 集群是单租户环境,因此应用程序之间没有隔离。

    82620编辑于 2023-03-29
  • 来自专栏架构驿站

    基于 Cilium 和 eBPF 检测容器逃逸

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

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

    基于 Cilium 和 eBPF 检测容器逃逸

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

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

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

    高危启动参数 privileged 特权模式 挂载敏感目录 相关启动参数存在的安全问题 3、Docker 软件设计引起的逃逸 Shocker攻击 runC容器逃逸漏洞(CVE-2019-5736) Docker 3.1 Shocker 攻击容器逃逸案例中,最为著名的是shocker攻击,其通过调用open_by_handle_at函数对宿主机文件系统进行暴力扫描,以获取宿主机的目标文件内容。 3.2 runC容器逃逸漏洞(CVE-2019-5736) 漏洞简述: Docker 18.09.2之前的版本中使用了的runc版本小于1.0-rc6,因此允许攻击者重写宿主机上的runc 二进制文件 /main 248f8b7d3c45:/tmp 3、模仿攻击者,在容器中执行payload # 进入容器sudo docker exec -it 248f8b7d3c45 /bin/bash # 修改权限 ---- 3.3 Docker cp命令可导致容器逃逸攻击漏洞(CVE-2019-14271) 漏洞描述: 当Docker宿主机使用cp命令时,会调用辅助进程docker-tar,该进程没有被容器化,

    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
  • 【漏洞通报】NVIDIA Container Toolkit 容器逃逸漏洞

    漏洞情况近期,火山信安实验室监测发现,Container Toolkit 组件存在一个高危容器逃逸漏洞(CVE-2025-23266),攻击者可利用该漏洞突破容器隔离限制,获取宿主机的系统级权限,进而执行任意代码或窃取敏感数据 0x01漏洞利用方式漏洞源于 NVIDIA Container Toolkit 在处理 GPU 设备挂载时未对容器配置实施严格校验,攻击者可利用这一缺陷通过构造恶意容器镜像或动态篡改运行时参数(如 -- )与容器运行时交互过程中存在的竞态条件及缓冲区溢出漏洞,攻击者能够触发内核态内存越界写入,最终实现宿主系统内核代码的任意执行;此外,通过恶意修改 NVIDIA Container Runtime 配置文件 (如 libnvidia-container.conf)中的关键参数(如 device.allow 或 kernel.modules.load),攻击者可强制容器以非预期的高权限模式启动,最终达成完全的容器逃逸与宿主机提权  Kubernetes 中使用 NetworkPolicy 限制逃逸容器的网络访问来源自:广州盈基信息官网

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

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

    开宗明义,本文将「容器逃逸」限定在一个较为狭窄的范围,并围绕此展开讨论: 「容器逃逸」指这样的一种过程和结果:首先,攻击者通过劫持容器化业务逻辑,或直接控制(CaaS等合法获得容器控制权的场景)等方式, 如果用户为不完全受控的容器提供了某些危险的配置参数,就为攻击者提供了一定程度的逃逸可能性。 例如,攻击者可以直接在容器内部挂载宿主机磁盘,然后将根目录切换过去: ? 至此,攻击者已经基本从容器逃逸出来了。 下图[8]较为完整地展示了除底层操作系统外的容器容器集群环境的程序组件。本节涉及到的相关漏洞均分布在这些程序当中。 ? 攻击者可以凭借此特点拓展容器逃逸的思路(一旦有新的内核漏洞产生,就可以考虑它是否能够用于容器逃逸),防守者则能够针对此特征进行防护(为宿主机内核打补丁就阻止了这种逃逸手段)和检测(内核漏洞利用有什么特点

    3.6K10发布于 2020-02-25
  • 来自专栏Bypass

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

    有在关注容器逃逸漏洞,最近在github上发现了一款零依赖Docker/K8s渗透工具包,集成了多个漏洞PoC/EXP,可轻松逃脱容器并接管K8s集群。 CDK- 零依赖Docker/K8s渗透工具包 CDK是一款为容器环境定制的渗透测试工具,在已攻陷的容器内部提供零依赖的常用命令及PoC/EXP。 集成Docker/K8s场景特有的 逃逸、横向移动、持久化利用方式,插件化管理。 ---- 漏洞简述: 当在docker使用–net=host参数启动,与宿主机共享net namespace时,容器中的攻击者可以绕过访问权限访问 containerd 的控制API 进而导致权限提升。 (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存在内部文件描述符泄露,本地攻击者可以通过多种方式进行容器逃逸 : runc将包括宿主机 /sys/fs/cgroup的几个文件描述符泄漏到runc init中,攻击者可以利用这一漏洞欺骗具有特权的用户执行恶意容器镜像,导致pid1进程在宿主机挂载命名空间中拥有一个工作目录 一旦容器进程执行了容器镜像中的可执行文件,可以绕过PR_SET_DUMPABLE保护,之后攻击者可以通过打开 /proc/$exec_pid/cwd 来访问主机文件系统。 利用此问题可能会导致容器逃逸到底层主机操作系统,无论是通过执行恶意映像还是使用恶意 Dockerfile 或上游映像构建映像(即使用时FROM方式) Affected Versions v1.0.0-rc93 ,以及感谢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:从内核提权到容器逃逸

    本文将沿着上文的思路,主要从Linux内核漏洞的角度对容器逃逸进行深度介绍,包括攻击原理、自动化利用和防御思路等内容。 攻击者利用内核漏洞可以达到本地提权的目的。容器技术本身依赖于Linux内核提供的Namespaces和Cgroups机制,利用内核漏洞,攻击者可以绕过Namespaces对资源的隔离,达到逃逸的目的。 基于以上的了解,本文提出了一套流程以辅助攻击者利用内核漏洞进行容器逃逸。同时,进一步思考利用Linux内核漏洞进行逃逸能否实现工程化利用,这其中的难点是什么。 该漏洞恰好位于user namespaces的实现中,攻击者在容器内读取到宿主机中的密码文件等敏感文件,间接实现了容器逃逸。 本文的重点在攻击,但也是想帮助防御者理解容器逃逸攻击方法,毕竟,未知攻,焉知防?

    2.2K20编辑于 2022-04-14
  • 来自专栏Bypass

    K8s攻击案例:Privileged特权容器导致节点沦陷

    01、概述 特权容器(Privileged Container)是一种比较特殊的容器,在K8s中运行特权容器,需要将 Privileged 设为 true ,容器可以执行几乎所有可以直接在主机上执行的操作 基于此,利用容器的特权配置可以获取容器所在节点的权限,甚至从节点权限提升至集群管理员权限。 02、攻击场景 编写yaml文件,在securityContext中加入参数,将privileged设置为true,使用特权模式运行Pod。 name: pod1 command: ['/bin/sh','-c','sleep 24h'] securityContext: privileged: true 02、攻击过程 下载kubecrl命令行工具, 收集信息为进一步攻击K8s集群提供必要的条件。

    1.8K10编辑于 2023-12-24
领券