Kubernetes Namespace Escalation
In Kubernetes è abbastanza comune che in qualche modo tu riesca ad entrare in un namespace (rubando alcune credenziali utente o compromettendo un pod). Tuttavia, di solito sarai interessato a scalare verso un namespace diverso poiché lì potrebbero essere presenti cose più interessanti.
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 account di servizio nel NS, eseguire una shell in un pod già esistente all'interno del ns, o leggere i token SA segreti.
Per ulteriori informazioni sui privilegi che puoi abusare, leggi:
Abusing Roles/ClusterRoles in KubernetesFuga verso il nodo
Se riesci a fuggire verso il nodo sia perché hai compromesso un pod e puoi fuggire o perché puoi creare un pod privilegiato e fuggire, potresti fare diverse cose per rubare altri token SA:
Controlla i token SA montati in altri container Docker in esecuzione nel nodo
Controlla i nuovi file kubeconfig nel nodo con permessi extra dati al nodo
Se abilitato (o abilitalo tu stesso) prova a creare pod specchiati di altri namespace poiché potresti ottenere accesso agli account token predefiniti di quei namespace (non l'ho ancora testato)
Tutte queste tecniche sono spiegate in:
Attacking Kubernetes from inside a PodLast updated