Briser un cluster Kubernetes à l'aide de la barre Helm v2

Briser un cluster Kubernetes à l'aide de la barre Helm v2

Helm est un gestionnaire de paquets pour Kubernetes, quelque chose comme apt-get pour Ubuntu. Dans cette note, nous verrons la version précédente de helm (v2) avec le service tiller installé par défaut, via lequel nous accéderons au cluster.

Préparons le cluster ; pour cela, exécutez la commande :

kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash

Briser un cluster Kubernetes à l'aide de la barre Helm v2

Démonstration

  • Si vous ne configurez rien de plus, helm v2 démarre le service Tiller, qui dispose de RBAC avec tous les droits d'administrateur de cluster.
  • Après l'installation dans l'espace de noms kube-system apparaît tiller-deploy, et ouvre également le port 44134, lié à 0.0.0.0. Cela peut être vérifié en utilisant Telnet.

$ telnet tiller-deploy.kube-system 44134

Briser un cluster Kubernetes à l'aide de la barre Helm v2

  • Vous pouvez maintenant vous connecter au service Tiller. Nous utiliserons le binaire helm pour effectuer des opérations lors de la communication avec le service Tiller :

$ helm --host tiller-deploy.kube-system:44134 version

Briser un cluster Kubernetes à l'aide de la barre Helm v2

  • Essayons d'obtenir les secrets du cluster Kubernetes à partir de l'espace de noms kube-system:

$ kubectl get secrets -n kube-system

Briser un cluster Kubernetes à l'aide de la barre Helm v2

  • Nous pouvons maintenant créer notre propre graphique, dans lequel nous allons créer un rôle avec des droits d'administrateur et attribuer ce rôle au compte de service par défaut. En utilisant le jeton de ce compte de service, nous avons reçu un accès complet à notre cluster.

$ helm --host tiller-deploy.kube-system:44134 install /pwnchart

Briser un cluster Kubernetes à l'aide de la barre Helm v2

  • Maintenant, quand pwnchart déployé, le compte de service par défaut dispose d’un accès administratif complet. Voyons à nouveau comment obtenir des secrets de kube-system

kubectl get secrets -n kube-system

Briser un cluster Kubernetes à l'aide de la barre Helm v2

L'exécution réussie de ce script dépend de la manière dont Tiller a été déployé ; parfois les administrateurs le déploient dans un espace de noms distinct avec des privilèges différents. Helm 3 n'est pas sensible à de telles vulnérabilités car... il n'y a pas de barre dedans.

Note du traducteur: L'utilisation de stratégies réseau pour filtrer le trafic dans un cluster permet de se protéger contre ce type de vulnérabilités.

Source: habr.com

Ajouter un commentaire