Kubernetes Namespace Escalation
In Kubernetes è abbastanza comune che in qualche modo riesci ad entrare in un namespace (rubando alcune credenziali utente o compromettendo un pod). Tuttavia, di solito sarai interessato a scalare verso un diverso namespace in quanto potrebbero esserci cose più interessanti lì.
Ecco alcune tecniche che puoi provare per sfuggire a un diverso namespace:
Abuso dei privilegi di K8s
Ovviamente, se l'account che hai rubato ha privilegi sensibili sul namespace a cui vuoi scalare, puoi abusare di azioni come creare pod con service account nel NS, eseguire una shell in un pod già esistente all'interno del ns, o leggere i token secret SA.
Per ulteriori informazioni su quali privilegi puoi abusare, leggi:
pageAbusing Roles/ClusterRoles in KubernetesSfuggire al nodo
Se riesci a sfuggire al nodo, sia perché hai compromesso un pod e puoi sfuggire, sia perché puoi creare un pod privilegiato e sfuggire, potresti fare diverse cose per rubare altri token SA:
Verifica la presenza di token SA montati in altri container Docker in esecuzione nel nodo
Verifica la presenza di nuovi file kubeconfig nel nodo con permessi extra assegnati al nodo
Se abilitato (o abilitalo tu stesso), prova a creare pod speculativi di altri namespace in quanto potresti ottenere accesso a quei token di account predefiniti dei namespace (non ho ancora testato questo)
Tutte queste tecniche sono spiegate in:
pageAttacking Kubernetes from inside a PodLast updated