type
status
date
slug
summary
tags
category
icon
password
0x00 云原生技术-docker
docker容器和虚拟机的对比:前者是将运行环境打包,封装一个环境。后者是将整个系统打包,封装一个系统。在操作使用上来说各有利弊。
0x01 docker容器的三种逃逸类型
- 特权模式启动(不安全的启动方式)
- 危险挂载启动(危险配置启动)
- docker自身漏洞
- 主机系统漏洞
0x02 容器环境对比主机环境的渗透区别
当你获取到了一个shell,如果对方是以容器环境搭建起来的,那么你便是获取了容器环境的shell权限,下面通过拉取一个容器环境获取shell后,观察其与宿主机的区别:
观察到获取到docker搭建的容器shell与真实主机是有区别的,也就是我们存在于docker环境的shell中,不管在内容如何去操作,都只是在容器环境中,这个时候就需要突破容器环境,搭建容器逃逸,控制对方真实主机。
0x03 如何识别自己在对方的docker环境中?
拿到shell后需要判断是否是处于docker环境中,上面图片我用了很简单的一个方法,查看ls -al下的根目录,看是否存在dockerenv文件,如果存在,则大概率为docker环境,下面还有其他的一些方法,在实战可以多个结合参考
1.ls -al / 查看是否存在dockerenv
2.检查/proc/1/cgroup内是否包含"docker"等字符串,或者像下面一样(左边是docker,右边是主机)
暂时列举上面的几种方法,网上此类的文章也有很多,大家可以随时随地的去翻阅
0x04 特权模式下的docker逃逸(危险启动)
docker的启动中,有选项为以特权模式启动,如果使用该特权启动就有会特权逃逸的危险参数为(--privileged=true )
下面以这种模式启动一个docker环境
我们启动一个docker环境,进入后直接获取到shell,首先判断是否为docker环境,查看是否存在dockerenv文件如下
创建环境:docker run --rm --privileged=true -it alpine
cat /proc/self/status | grep CapEff
判断是否为特权模式,下面是左边的真实主机与docker环境输出的结果对比
fdisk -l的区别
通过fdisk的路径,创建逃逸的目录
能看到主机的passwd即为逃逸成功
0x05 危险挂载逃逸-socket(守护进程等)逃逸
socket是干嘛的?
它是 Docker守护进程 (Docker daemon) 默认监听的 Unix域套接字 (Unix domain socket) ,容器中的进程可以通过它与Docker守护进程进行通信。
判断环境是否为docker
挂载逃逸,并且在docker中创建新的容器环境(将docker的shell中继续安装一个docker),将主机环境挂载到里面,实现逃逸
逃逸成功
0x06 危险挂载逃逸-procfs(伪文件系统)逃逸
procfs是干嘛的?
procfs是一个伪文件系统,它动态反映着系统内进程及其他组件的状态,其中有许多十分敏感重要的文件。因此,将宿主机的procfs挂载到不受控的容器中也是十分危险的,尤其是在该容器内默认启用root权限,且没有开启UserNamespace时。
以procfs启动docker环境
docker run -it -v /proc/sys/kernel/core_pattern:/host/proc/sys/kernel/core_pattern ubuntu
检测环境:find / -name core_pattern
查找路径:(workdir) cat /proc/mounts | grep docker
写入文件:
gcc x.c -o x
执行文件:
./x
nc -lvvp xxxx
安装gcc:apt-get update -y && apt-get install gcc -y
通过检测环境:find / -name core_pattern得到路径加载到下面中:
vps监听反弹即可
0x07 关于逃逸的失败需要注重的点
在线创建docker的st2靶场和dvwa靶场,都使用特权模式开启,可以发现通过dvwa无法逃逸成功,
这里需要注意,逃逸的前提也会受web的初始启动权限来决定,也就是说如果环境进去它本身就是地权限,类似于windows的普通data权限这种,无法逃逸,st2和shiro这种java一般来说启动程序都是以高权限启动,php等都是普通的权限启动会导致逃逸失败。
-特权模式启动导致(不安全启动 适用于java jsp高权限无需提权 还要提权才能逃逸)-危险挂载启动导致(危险启动 适用于java jsp高权限无需提权 还要提权才能逃逸)
相关文章