
Эксплойт proof-of-concept для раскрытия токена сервисного аккаунта Kubernetes через hostPath-монтирования; включает YAML-манифест уязвимого пода и Python-скрипт для кражи токена.
# vulnerable-pod.yaml - Pod that mounts /var/run/secrets/kubernetes.io/serviceaccount into a hostPath
apiVersion: v1
kind: Pod
metadata:
name: sa-token-leak
spec:
containers:
- name: app
image: nginx
volumeMounts:
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
name: sa-token
volumes:
- name: sa-token
hostPath:
path: /var/run/secrets/kubernetes.io/serviceaccount # Writable by container? Not needed.
type: Directory
Под монтирует каталог токена сервисного аккаунта Kubernetes через hostPath вместо стандартного проецируемого тома. Это позволяет другим подам на том же узле прочитать токен через файловую систему хоста, что открывает возможности для латерального перемещения и компрометации кластера.
hostPath для монтирования каталога токена сервисного аккаунта обходит проецирование токена в памяти и превращает токен в постоянный файл на узле.Разверните уязвимый под, затем из другого пода с доступом к хосту выполните:
python exploit_sa_token.py
Токен считывается и может быть использован для аутентификации на API-сервере.