接上篇。
1.4 举例 : Privileged特权模式逃逸
1.4.1 漏洞简介
Privileged模式逃逸原理指的是在Docker容器中利用--privileged
特权模式的权限,突破容器的隔离性,从而获取宿主机的控制权限或执行恶意操作的过程。特权模式给容器对宿主机内核的几乎完全访问权限,因此攻击者可以利用这个模式进行容器逃逸。
在Docker中,--privileged
标志会使容器拥有更高的权限,使容器能够访问宿主机的一些设备、内核模块、挂载点等。容器会被授予访问宿主机的更多资源和控制权限,基本上关闭了Docker默认的容器隔离机制。
-
访问宿主机的所有设备。 -
加载和卸载内核模块。 -
访问宿主机的 /proc
和/sys
等虚拟文件系统。 -
完全控制 cgroups 和 namespaces。 -
访问宿主机的网络堆栈。
特权启动方式:
Docker启动:Docker run --privileged -d -P 镜像id
--privileged :以超级管理员权限启动该容器
1.4.2 漏洞环境搭建
以特权模式启动容器
docker run --privileged -d -p 8080:8080 431217c1f2b1
1.4.3 漏洞检测
判断是否是特权模式启动的容器,如果是以特权模式启动的话,CapEff 对应的掩码值应该为 0000003fffffffff 或者是 0000001fffffffff
如果是普通模式则是其他的。
cat /proc/self/status | grep Cap
1.4.4 漏洞复现
1、访问网站,shiro站点。
2、快速拿到站点服务器权限。
3、判断是否是Docker环境。
4、通过命令【ls -al】如果在根目录中有【.dockerenv】文件的话,那么说明是在Docker容器当中,如果是虚拟机的话,根目录下会有【Vmware.tools】文件。
5、发现该服务器是通过docker启动。
6、判断是否是提权模式启动的容器。
cat /proc/self/status | grep Cap
7、容器卷挂载攻击。查看系统磁盘分区信息【fdisk -l】或【df -h】
8、磁盘挂载,容器内,创建一个文件用于磁盘映射。
mkdir /colamount /dev/vda3 /cola (将宿主机的/dev/vda1文件系统挂载到容器的/cola文件夹下)
利用方法:修改密码(vim /etc/passwd或 vim /etc/shadow)、写公私钥、写计划任务,写Webshell等等。。
或者通过chroot。
chroot /colapasswd root
原文始发于微信公众号(安全攻防屋):Docker逃逸详解(三)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论