avatar
文章
9
标签
18
分类
7
主页
博文
  • 分类
  • 标签
  • 归档
生活
  • 分享
  • 相册
  • 音乐
  • 影视
友链
留言板
关于笔者
hanblogdocker&k8s云原生逃逸一次过大集合
主页
博文
  • 分类
  • 标签
  • 归档
生活
  • 分享
  • 相册
  • 音乐
  • 影视
友链
留言板
关于笔者

docker&k8s云原生逃逸一次过大集合

发表于2025-06-26|更新于2025-06-26|docker&k8s云原生逃逸
|浏览量:
文章作者: han
文章链接: http://example.com/2025/06/26/docker&k8s%E4%BA%91%E5%8E%9F%E7%94%9F%E9%80%83%E9%80%B8%E4%B8%80%E6%AC%A1%E8%BF%87%E5%A4%A7%E9%9B%86%E5%90%88/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 hanblog!
dockerk8s
cover of previous post
上一篇
HTB-Artificial
...
cover of next post
下一篇
HTB-Puppy
...
avatar
han
不要再打了呜呜呜。我不想再被打崩了
文章
9
标签
18
分类
7
Follow Me
公告
Noobs Love Documenting Everything
目录
  1. 1. docker&k8s云原生逃逸一次过大集合
    1. 1.1. 前言:
  2. 2. docker逃逸的方法种类
    1. 2.1. 前置知识
      1. 2.1.1. docker主要组件
      2. 2.1.2. docker运行简单分析
    2. 2.2. 如何快速判断是否在容器环境
    3. 2.3. CDK工具简单介绍–逃逸工具
    4. 2.4. 特权模式(–privileged)的逃逸
      1. 2.4.1. 逃逸的三种情况(
        1. 2.4.1.1. 第一种
        2. 2.4.1.2. 第二种
        3. 2.4.1.3. 第三种
    5. 2.5. [Docker UNIX Socket] 挂载逃逸
      1. 2.5.0.1. Docker Daemon 的连接方式
  3. 2.6. procfs危险挂载
    1. 2.6.0.1. user namespace讲解
  4. 2.6.1. 利用方法一:
  5. 2.6.2. 利用方法二:
    1. 2.6.2.1. 搭建
    2. 2.6.2.2. 检测
    3. 2.6.2.3. 复现
  • 2.7. docker远程API未授权访问逃逸
    1. 2.7.1. 环境搭建
      1. 2.7.1.1. 判断是否存在该漏洞
    2. 2.7.2. 逃逸方式
  • 2.8. Docker用户组特性权限提升
    1. 2.8.1. 环境搭建
    2. 2.8.2. 提权方法
  • 2.9. 文章一Cgroup执行宿主机系统命令
    1. 2.9.0.1. cgroup
    2. 2.9.0.2. notify_on_release
  • 2.10. 文章二Cgroup 危险挂载
    1. 2.10.0.1. 1. Cgroup 挂载原理
    2. 2.10.0.2. 2. Cgroup 探测方法
    3. 2.10.0.3. 3. Cgroup 利用方法
  • 2.11. 文章三:cgroup原理深入分析:
    1. 2.11.1. 分析
      1. 2.11.1.1. 1. 简介
      2. 2.11.1.2. 2. 逃逸原理
    2. 2.11.2. 环境配置
    3. 2.11.3. 复现
    4. 2.11.4. 关于复现里的命令讲解和分析:
    5. 2.11.5. 使用CDK攻击
  • 2.12. lxcfs cgroup错误配置容器逃逸漏洞
    1. 2.12.1. 漏洞介绍
      1. 2.12.1.1. LXCFS简介
    2. 2.12.2. 漏洞利用
      1. 2.12.2.1. cdk关于该漏洞的exp
      2. 2.12.2.2. 漏洞复现
  • 3. CVE的docker漏洞
    1. 3.1. runC逃逸-CVE-2019-5736
      1. 3.1.1. 影响版本
    2. 3.2. docker cp 符号链接漏洞(CVE‑2019‑14271)
      1. 3.2.1. CVE-2019-14271:加载不受信任的动态链接库
        1. 3.2.1.1. 原理
        2. 3.2.1.2. 利用思路
          1. 3.2.1.2.1. 定位动态链接库
          2. 3.2.1.2.2. 构建动态链接库
          3. 3.2.1.2.3. 实现逃逸
          4. 3.2.1.2.4. 复现成功
          5. 3.2.1.2.5. 遇到问题
    3. 3.3. containerd‑shim 漏洞(CVE‑2020‑15257)
    4. 3.4. 内核漏洞提权和逃逸CVE
      1. 3.4.1. 前置条件查看
      2. 3.4.2. 1. Dirty Pipe(CVE‑2022‑0847)
      3. 3.4.3. 2. Dirty COW(CVE‑2016‑5195)
      4. 3.4.4. 3. Polkit 提权(CVE‑2021‑4034 PwnKit)
  • 4. Kubernetes的逃逸
  • 5. 前置知识(基础):
    1. 5.1. K8s 介绍
    2. 5.2. 基础知识
      1. 5.2.1. 容器概念
      2. 5.2.2. Pod概念
      3. 5.2.3. Node概念
      4. 5.2.4. Namespace
      5. 5.2.5. Service概念
    3. 5.3. 架构概览
      1. 5.3.1. 架构源起
      2. 5.3.2. 架构模型
    4. 5.4. 核心组件
      1. 5.4.1. kubelet和dashboard的区别
    5. 5.5. K8s 组件所面临的风险
    6. 5.6. 渗透路径
    7. 5.7. 信息收集
      1. 5.7.1. 环境信息
      2. 5.7.2. 容器检测
      3. 5.7.3. 内核版本
      4. 5.7.4. Token类或者说信息,数据的恶意利用
      5. 5.7.5. Secret类或者说信息,数据的恶意利用
    8. 5.8. 安全策略
    9. 5.9. 端口服务
    10. 5.10. 内部网络
    11. 5.11. 补充分析概念分析:
      1. 5.11.1. Master节点:
        1. 5.11.1.1. 补充:
      2. 5.11.2. master节点和worker节点的组件都有什么
      3. 5.11.3. dashboard组件
  • 6. 关于token和secret以及configmap等等配置文件和安全认证流程等等的更详细偏向基础的讲解和分析(Service Account等等)
    1. 6.0.1. configmap和secret:
  • 6.1. 安全认证流程:
    1. 6.1.1. 一 认证(Authentication)
      1. 6.1.1.1. (1) 需要被认证的访问类型:
      2. 6.1.1.2. (2)安全性说明:
      3. 6.1.1.3. (3)证书颁发:
      4. 6.1.1.4. (4)kubeconfig
      5. 6.1.1.5. (5)Service Account
      6. 6.1.1.6. (6)Secret 与 SA 的关系
      7. 6.1.1.7. (7)Service Account 包含三部分:
      8. 6.1.1.8. (8)挂载查看
      9. 6.1.1.9. (9)认证框架图
      10. 6.1.1.10. (10)认证方式
    2. 6.1.2. 二 鉴权(Authorization)
      1. 6.1.2.1. 1 API Server 目前支持以下几种授权策略:
      2. 6.1.2.2. 2 RBAC 相对其它访问控制方式,拥有以下优势:
      3. 6.1.2.3. 3 BAC 的 API 资源对象说明,4 个新的顶级资源对象:
        1. 6.1.2.3.1. ① 角色
        2. 6.1.2.3.2. ② 角色绑定
        3. 6.1.2.3.3. ③ 主体(subject)
        4. 6.1.2.3.4. ④ Role and ClusterRole
        5. 6.1.2.3.5. Role 示例:
        6. 6.1.2.3.6. ClusterRole 示例:
        7. 6.1.2.3.7. RoleBinding 示例1:
        8. 6.1.2.3.8. RoleBinding 示例2:
        9. 6.1.2.3.9. ClusterRoleBinding 示例:
        10. 6.1.2.3.10. Resources
        11. 6.1.2.3.11. 允许某主体读取 pods 同时访问这些 Pod 的 log 子资源的 Role 案例:
        12. 6.1.2.3.12. 关于上面的补充讲解Kubernetes RBAC 权限管理通俗指南
    3. 6.1.3. 三 准入控制(Admission Control)
      1. 6.1.3.1. 1 列举几个插件的功能:
      2. 6.1.3.2. 2 创建一个用户只能管理指定的命名空间
      3. 6.1.3.3. 3 用这个用户进行资源操作
      4. 6.1.3.4. 4 创建连接到 API Server 所需的证书和 kubeconfig 文件
      5. 6.1.3.5. 5 API Server 会把客户端证书的 CN 字段作为 User,把 names.O 字段作为 Group
      6. 6.1.3.6. 6 /etc/kubernetes/pki/ 目录中会生成 zhangsan-key.pem、zhangsan.pem、zhangsan.csr
      7. 6.1.3.7. 7查看证书
      8. 6.1.3.8. 8 RBAC授权
      9. 6.1.3.9. 9 切换用户,测试操作权限
      10. 6.1.3.10. 10 访问 svc 资源就会被拒绝
      11. 6.1.3.11. 11 fault 命名空间
      12. 6.1.3.12. 12 使用 root 用户查看
      13. 6.1.3.13. 13 也可以通过绑定 admin 角色,来获得管理员权限
  • 7. 漏洞简单的初步了解
    1. 7.1. 1、组件接口存在的风险
      1. 7.1.1. API Server
      2. 7.1.2. Kubelet
      3. 7.1.3. Dashboard
      4. 7.1.4. etcd
    2. 7.2. 2、集群网络存在的风险
    3. 7.3. 3、访问控制机制存在的风险
    4. 7.4. 4、无法根治的软件漏洞
    5. 7.5. K8S基础命令
    6. 7.6. K8S 配置泄露利用
    7. 7.7. K8S API未授权利用
    8. 7.8. K8S kubelet未授权利用
  • 8. 更深入的漏洞利用讲解
    1. 8.1. master节点K8s API Server未授权
    2. 8.2. master节点ETCD端口未授权
      1. 8.2.0.1. 1.查找token
      2. 8.2.0.2. 2.验证token有效性
      3. 8.2.0.3. 3.使用 kebuctl 去执行命令
    3. 8.2.1. 补充(感觉这个文章更好):
  • 8.3. worker节点的Kubelet端口未授权类
    1. 8.3.1. 补充:
    2. 8.3.2. 基本介绍
    3. 8.3.3. 利用过程
      1. 8.3.3.1. Step 1:获得token
      2. 8.3.3.2. Step 2:基础信息确定
      3. 8.3.3.3. Step 3:执行命令
      4. 8.3.3.4. Step 4:检索Token信息
      5. 8.3.3.5. Step 5:获得master访问权
      6. 8.3.3.6. Step 6:获取node里pod的shell
      7. 8.3.3.7. Step 7:连接K8s Master地址
  • 8.4. kube-proxy配置错误
  • 8.5. worker节点但是能控制master节点的Dashboard未授权访问
    1. 8.5.1. 利用方法二
    2. 8.5.2. 补充:为什么worker节点能实现master节点的控制
  • 8.6. Dashboard Config登录
  • 8.7. Cgroup逃逸(CAP_SYS_ADMIN配置逃逸)
    1. 8.7.0.0.1. 漏洞概述
    2. 8.7.0.0.2. 利用前提
    3. 8.7.0.0.3. 前置知识
    4. 8.7.0.0.4. 漏洞利用
  • 8.8. CAP_DAC_READ_SEARCH危害
    1. 8.8.0.0.1. 影响范围
    2. 8.8.0.0.2. 场景描述
    3. 8.8.0.0.3. 环境构建
    4. 8.8.0.0.4. 漏洞复现
  • 8.9. 内核漏洞
    1. 8.9.0.1. 影响范围
    2. 8.9.0.2. 漏洞描述
    3. 8.9.0.3. 漏洞复现
  • 8.10. 危险挂载
    1. 8.10.0.1. HostPath目录挂载
      1. 8.10.0.1.1. 场景描述
      2. 8.10.0.1.2. 具体实现
    2. 8.10.0.2. /var/log危险挂载
      1. 8.10.0.2.1. 场景介绍
      2. 8.10.0.2.2. 原理简介
      3. 8.10.0.2.3. 环境搭建
      4. 8.10.0.2.4. 漏洞复现
      5. 8.10.0.2.5. 敏感文件
      6. 8.10.0.2.6. 漏洞EXP
    3. 8.10.0.3. Procfs挂载目录逃逸类
      1. 8.10.0.3.1. 场景介绍
      2. 8.10.0.3.2. 环境搭建
      3. 8.10.0.3.3. 漏洞复现
  • 8.11. 横向渗透
    1. 8.11.1. 重温一下pod和node节点的关系可以按需要跳过
    2. 8.11.2. 污点和容忍的概念分析
    3. 8.11.3. 横向渗透的思路小总结:个人笔记(理解):
    4. 8.11.4. 横向渗透的文章+具体例子分析
      1. 8.11.4.1. 基础知识
      2. 8.11.4.2. 基本原理
      3. 8.11.4.3. 横向移动
        1. 8.11.4.3.1. 扩展技巧
  • 8.12. 权限提升
    1. 8.12.1. 基本介绍
    2. 8.12.2. 简易实例
    3. 8.12.3. 补充:
    4. 8.12.4. 补充:
  • 8.13. 权限维持
    1. 8.13.1. Deployment特性
      1. 8.13.1.1. 基本概述
      2. 8.13.1.2. 手动实现
      3. 8.13.1.3. 工具实现
    2. 8.13.2. Shadow API利用
      1. 8.13.2.1. 基本概述
      2. 8.13.2.2. 手动实现
      3. 8.13.2.3. 工具实现
    3. 8.13.3. K8s CronJob
      1. 8.13.3.1. 基本概述
      2. 8.13.3.2. 具体实现
      3. 8.13.3.3. 工具实现
  • 8.14. 工具推荐Nebula
    1. 8.14.1. k0otkit
    2. 8.14.2. CDK Tools
    3. 8.14.3. Kubesploit:
    4. 8.14.4. container-escape-check
  • 8.15. 清理痕迹(危险操作)
    1. 8.15.1. 补充:
      1. 8.15.1.1. Kubernetes逃逸痕迹清理
      2. 8.15.1.2. 高级痕迹清理技术
      3. 8.15.1.3. 监控和告警清理
      4. 8.15.1.4. 集群恢复正常状态
      5. 8.15.1.5. 预防被发现的技巧
  • 8.16. 补充:
    1. 8.16.1. 特殊环境逃逸
    2. 8.16.2. 1. macOS 容器逃逸
    3. 8.16.3. 2. Windows 容器逃逸
  • 8.17. 容器逃逸风险一览
  • 9. ——————–
  • 10. 下面是ai部分属于杂物区了,可以方便理解的
  • 11. mount挂载参数讲解
    1. 11.1. /proc/mounts 的作用
    2. 11.2. 容器逃逸中的利用方式
      1. 11.2.1. 1. 挂载宿主机设备
      2. 11.2.2. 2. 通过设备文件操作宿主机
      3. 11.2.3. 3. 后续操作
    3. 11.3. 检测方法
    4. 11.4. Mount命令输出格式
    5. 11.5. 挂载结果后面括号中的属性讲解
  • 12. 命令分解
    1. 12.0.1. 1. -H unix://var/run/docker.sock
    2. 12.0.2. 2. -v /:/test
    3. 12.0.3. 3. 其他参数
  • 12.1. 攻击场景
    1. 12.1.1. 1. Docker Socket暴露
    2. 12.1.2. 2. 利用方式
  • 12.2. 攻击效果
    1. 12.2.1. 1. 访问宿主机文件系统
    2. 12.2.2. 2. 修改宿主机文件
    3. 12.2.3. 3. 植入持久化后门
  • 12.3. 检测方法
    1. 12.3.1. 1. 监控Docker命令
    2. 12.3.2. 2. 检查挂载情况
    3. 12.3.3. 3. 监控Docker socket访问
  • 12.4. 防护建议
    1. 12.4.1. 1. 保护Docker Socket
    2. 12.4.2. 2. 避免Socket挂载
    3. 12.4.3. 3. 使用Docker安全配置
  • 最新文章
    HTB-Puppy
    HTB-Puppy2025-07-02
    HTB-Artificial
    HTB-Artificial2025-06-26
    docker&k8s云原生逃逸一次过大集合
    docker&k8s云原生逃逸一次过大集合2025-06-26
    fastjson多个版本超级大综合总结一次过(黑盒&白盒&原生反序列化)
    fastjson多个版本超级大综合总结一次过(黑盒&白盒&原生反序列化)2025-06-05
    请求走私笔记(HTTP/2降级,绕过clte,请求隧道,响应投毒,缓存投毒,缓存欺骗)
    请求走私笔记(HTTP/2降级,绕过clte,请求隧道,响应投毒,缓存投毒,缓存欺骗)2025-05-25
    ©2019 - 2025 By han
    框架 Hexo 7.3.0|主题 Butterfly 5.3.5