Kubernetes Namespace Escalation

Support HackTricks

In Kubernetes ist es ziemlich häufig, dass du es schaffst, in einen Namespace zu gelangen (indem du einige Benutzeranmeldeinformationen stiehlst oder einen Pod kompromittierst). In der Regel wirst du jedoch daran interessiert sein, zu einem anderen Namespace zu eskalieren, da dort interessantere Dinge zu finden sind.

Hier sind einige Techniken, die du ausprobieren kannst, um in einen anderen Namespace zu entkommen:

Missbrauch von K8s-Rechten

Offensichtlich kannst du, wenn das Konto, das du gestohlen hast, sensible Berechtigungen über den Namespace hat, zu dem du eskalieren möchtest, Aktionen wie Pods erstellen mit Dienstkonten im NS, eine Shell in einem bereits existierenden Pod innerhalb des NS ausführen oder die Secret SA-Tokens lesen.

Für weitere Informationen darüber, welche Berechtigungen du missbrauchen kannst, lies:

Abusing Roles/ClusterRoles in Kubernetes

Entkommen zum Knoten

Wenn du zum Knoten entkommen kannst, entweder weil du einen Pod kompromittiert hast und entkommen kannst oder weil du einen privilegierten Pod erstellen und entkommen kannst, könntest du mehrere Dinge tun, um andere SA-Tokens zu stehlen:

  • Überprüfe auf SA-Tokens, die in anderen Docker-Containern laufen, die im Knoten ausgeführt werden

  • Überprüfe auf neue kubeconfig-Dateien im Knoten mit zusätzlichen Berechtigungen, die dem Knoten gegeben wurden

  • Wenn aktiviert (oder aktiviere es selbst), versuche gespiegelte Pods anderer Namespaces zu erstellen, da du möglicherweise Zugriff auf die Standard-Token-Konten dieser Namespaces erhältst (ich habe dies noch nicht getestet)

All diese Techniken sind erklärt in:

Attacking Kubernetes from inside a Pod
Support HackTricks

Last updated