Interruzione di un cluster Kubernetes utilizzando il timone Helm v2

Interruzione di un cluster Kubernetes utilizzando il timone Helm v2

Helm è un gestore di pacchetti per Kubernetes, qualcosa del genere apt-get per Ubuntu. In questa nota vedremo la versione precedente di helm (v2) con il servizio tiller installato di default, attraverso il quale accederemo al cluster.

Prepariamo il cluster; per fare ciò eseguiamo il comando:

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

Interruzione di un cluster Kubernetes utilizzando il timone Helm v2

Демонстрация

  • Se non si configura nulla in più, helm v2 avvia il servizio del timone, che dispone di RBAC con diritti di amministratore del cluster completi.
  • Dopo l'installazione nello spazio dei nomi kube-system появляется tiller-deploy, e apre anche la porta 44134, legata a 0.0.0.0. Questo può essere verificato utilizzando telnet.

$ telnet tiller-deploy.kube-system 44134

Interruzione di un cluster Kubernetes utilizzando il timone Helm v2

  • Ora puoi connetterti al servizio timone. Utilizzeremo il binario del timone per eseguire operazioni durante la comunicazione con il servizio del timone:

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

Interruzione di un cluster Kubernetes utilizzando il timone Helm v2

  • Proviamo a ottenere i segreti del cluster Kubernetes dallo spazio dei nomi kube-system:

$ kubectl get secrets -n kube-system

Interruzione di un cluster Kubernetes utilizzando il timone Helm v2

  • Ora possiamo creare il nostro grafico, in cui creeremo un ruolo con diritti di amministratore e assegneremo questo ruolo all'account di servizio predefinito. Utilizzando il token di questo account di servizio, abbiamo ricevuto l'accesso completo al nostro cluster.

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

Interruzione di un cluster Kubernetes utilizzando il timone Helm v2

  • Ora quando pwnchart distribuito, l'account di servizio predefinito dispone dell'accesso amministrativo completo. Controlliamo di nuovo come ottenere segreti da kube-system

kubectl get secrets -n kube-system

Interruzione di un cluster Kubernetes utilizzando il timone Helm v2

La corretta esecuzione di questo script dipende da come è stato distribuito tiller; a volte gli amministratori lo distribuiscono in uno spazio dei nomi separato con privilegi diversi. Helm 3 non è suscettibile a tali vulnerabilità perché... non c'è alcuna barra del timone in esso.

Nota del traduttore: L'utilizzo di policy di rete per filtrare il traffico in un cluster aiuta a proteggersi da questo tipo di vulnerabilità.

Fonte: habr.com

Aggiungi un commento