Kubernetes Namespace Escalation

Soutenez HackTricks

Dans Kubernetes, il est assez courant que d'une manière ou d'une autre vous parveniez à pénétrer dans un espace de noms (en volant des informations d'identification utilisateur ou en compromettant un pod). Cependant, vous serez généralement intéressé par l'élévation vers un espace de noms différent car des choses plus intéressantes peuvent s'y trouver.

Voici quelques techniques que vous pouvez essayer pour vous échapper vers un espace de noms différent :

Abus des privilèges K8s

Évidemment, si le compte que vous avez volé possède des privilèges sensibles sur l'espace de noms vers lequel vous souhaitez vous élever, vous pouvez abuser d'actions telles que la création de pods avec des comptes de service dans le NS, l'exécution d'un shell dans un pod déjà existant à l'intérieur du ns, ou la lecture des secrets des jetons SA.

Pour plus d'informations sur les privilèges que vous pouvez abuser, consultez :

Abusing Roles/ClusterRoles in Kubernetes

Échapper au nœud

Si vous pouvez échapper au nœud soit parce que vous avez compromis un pod et que vous pouvez vous échapper, soit parce que vous pouvez créer un pod privilégié et vous échapper, vous pourriez faire plusieurs choses pour voler d'autres jetons SA :

  • Vérifiez les jetons SA montés dans d'autres conteneurs Docker s'exécutant dans le nœud

  • Recherchez de nouveaux fichiers kubeconfig dans le nœud avec des autorisations supplémentaires accordées au nœud

  • Si activé (ou activez-le vous-même), essayez de créer des pods miroirs d'autres espaces de noms car vous pourriez accéder aux comptes de jetons par défaut de ces espaces de noms (je n'ai pas encore testé cela)

Toutes ces techniques sont expliquées dans :

Attacking Kubernetes from inside a Pod
Soutenez HackTricks

Last updated