
Exploit de preuve de concept pour la divulgation de jetons de compte de service Kubernetes via des montages hostPath ; inclut un YAML de pod vulnérable et un script Python de vol de jetons.
# 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
Un pod monte le répertoire du jeton de compte de service Kubernetes via hostPath au lieu du volume projeté par défaut. Cela expose le jeton à d'autres pods sur le même nœud s'ils peuvent lire le système de fichiers de l'hôte, permettant un mouvement latéral et un compromis du cluster.
hostPath pour monter le répertoire du jeton SA contourne la projection du jeton en mémoire et fait du jeton un fichier persistant sur le nœud.Déployez le pod vulnérable, puis depuis un autre pod avec accès à l'hôte, exécutez :
python exploit_sa_token.py
Le jeton est lu et peut être utilisé pour s'authentifier auprès du serveur API.