K8s container escape 2
┌────────────────────────────────────────────────────────────────────────────┐
│ │
│ ┌─────────────────┐ │
│ │ │ │
│ │ pod-example │ │
│ │ │ │
│ └────────┬────────┘ │
│ │ │
│ ┌────────────────────────┼────────────────────────┐ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐ │
│ │ │ │ │ │ │ │
│ │ container-example-1 │ │ container-example-2 │ │ container-example-3 │ │
│ │ │ │ │ │ │ │
│ └──────┬──────────────┘ └─────────────────────┘ └─────────────────────┘ │
│ │ │
│ │ │
│ │............................................................ │
│ │ . . . . │
│ ▼ ▼ ▼ ▼ ▼ │
│ ┌─────────────┐ ┌─────────┐ ┌──────────┐ ┌─────────────┐ ┌─────────┐ │
│ │ privileged │ │ hostPID │ │ hostPath │ │ hostNetwork │ │ hostIPC │ │
│ └──────┬──────┘ └─────────┘ └──────────┘ └─────────────┘ └─────────┘ │
│ │ │
│ └─────┬───────────┬────────────────┬─────────────────┐ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌──────┐ ┌───────────┐ ┌──────────────────┐ ┌────────┐ │
│ │ root │ │ SYS_ADMIN │ │ lack an AppArmor │ │ cgroup │ │
│ └──┬───┘ └─────┬─────┘ └─────────┬────────┘ └───┬────┘ │
│ │ │ │ │ │
│ │ │ │ │ │
│ └────────────┴──────────┬──────┴───────────────┘ │
│ | │
│ ▼ │
│ ┌───────────┐ │
│ │ exploit │ │
│ └─────┬─────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │ container escapes │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
│ │
└────────────────────────────────────────────────────────────────────────────┘
Pod / privileged
kubectl get pod <pod-name> --namespace=<namespace> -o json | jq -r '.spec.containers[].securityContext.privileged'
Pod / hostPID
kubectl get pod <pod-name> --namespace=<namespace> -o json | jq -r '.spec.hostPID'
Pod / hostPath
kubectl get pod <pod-name> --namespace=<namespace> -o json | jq -r '.spec.volumes[].hostPath'
Pod / hostNetwork
kubectl get pod <pod-name> --namespace=<namespace> -o json | jq -r '.spec.hostNetwork'
Pod / hostIPC
kubectl get pod <pod-name> --namespace=<namespace> -o json | jq -r '.spec.hostIPC'
SYS_ADMIN
capsh --print | grep sys_admin
Pod / cgroup
grep cgroup /proc/filesystems
Reference