Docker逃逸详解(三)

admin 2025年1月7日08:55:52评论25 views字数 1086阅读3分37秒阅读模式

接上篇。

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
Docker逃逸详解(三)

1.4.4 漏洞复现

1、访问网站,shiro站点。

Docker逃逸详解(三)

2、快速拿到站点服务器权限。

Docker逃逸详解(三)

3、判断是否是Docker环境。

4、通过命令【ls -al】如果在根目录中有【.dockerenv】文件的话,那么说明是在Docker容器当中,如果是虚拟机的话,根目录下会有【Vmware.tools】文件。

 5、发现该服务器是通过docker启动。

Docker逃逸详解(三)

6、判断是否是提权模式启动的容器。

cat /proc/self/status | grep Cap
Docker逃逸详解(三)

7、容器卷挂载攻击。查看系统磁盘分区信息【fdisk -l】或【df -h】

Docker逃逸详解(三)

8、磁盘挂载,容器内,创建一个文件用于磁盘映射。

mkdir /colamount /dev/vda3 /cola  (将宿主机的/dev/vda1文件系统挂载到容器的/cola文件夹下)

利用方法:修改密码(vim /etc/passwd或  vim /etc/shadow)、写公私钥、写计划任务,写Webshell等等。。

或者通过chroot。

chroot /colapasswd root

原文始发于微信公众号(安全攻防屋):Docker逃逸详解(三)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月7日08:55:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Docker逃逸详解(三)http://cn-sec.com/archives/3599400.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息