
Exploit de prueba de concepto para la divulgación de tokens de cuenta de servicio en Kubernetes mediante montajes hostPath; incluye un pod YAML vulnerable y un script en Python para el robo de tokens.
# 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 monta el directorio de tokens de cuenta de servicio de Kubernetes a través de hostPath en lugar del volumen proyectado predeterminado. Esto expone el token a otros pods en el mismo nodo si pueden leer el sistema de archivos del host, lo que permite el movimiento lateral y el compromiso del clúster.
hostPath para montar el directorio de tokens SA evita la proyección de tokens en memoria y convierte el token en un archivo persistente en el nodo.Despliega el pod vulnerable y, desde otro pod con acceso al host, ejecuta:
python exploit_sa_token.py
El token se lee y puede usarse para autenticarse en el servidor de API.