Helm és un gestor de paquets per a Kubernetes, alguna cosa així apt-get
per a Ubuntu. En aquesta nota veurem la versió anterior d'helm (v2) amb el servei tiller instal·lat per defecte, a través del qual accedirem al clúster.
Preparem el clúster; per fer-ho, executeu l'ordre:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash
Demostració
- Si no configureu res addicional, Helm v2 inicia el servei de tiller, que té RBAC amb drets d'administrador de clúster complets.
- Després de la instal·lació a l'espai de noms
kube-system
apareixtiller-deploy
, i també obre el port 44134, vinculat a 0.0.0.0. Això es pot comprovar mitjançant telnet.
$ telnet tiller-deploy.kube-system 44134
- Ara pots connectar-te al servei de timón. Utilitzarem el binari del timó per realitzar operacions quan ens comuniquem amb el servei de timón:
$ helm --host tiller-deploy.kube-system:44134 version
- Intentem obtenir els secrets del clúster de Kubernetes de l'espai de noms
kube-system
:
$ kubectl get secrets -n kube-system
- Ara podem crear el nostre propi gràfic, en el qual crearem un rol amb drets d'administrador i assignarem aquest rol al compte de servei predeterminat. Amb el testimoni d'aquest compte de servei, vam rebre accés complet al nostre clúster.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Ara quan
pwnchart
desplegat, el compte de servei predeterminat té accés administratiu complet. Comprovem de nou com obtenir secrets dekube-system
kubectl get secrets -n kube-system
L'execució correcta d'aquest script depèn de com s'hagi desplegat el tiller; de vegades els administradors el despleguen en un espai de noms separat amb diferents privilegis. Helm 3 no és susceptible a aquestes vulnerabilitats perquè... no hi ha cap llaç.
Nota del traductor: L'ús de polítiques de xarxa per filtrar el trànsit d'un clúster ajuda a protegir-se de vulnerabilitats d'aquest tipus.
Font: www.habr.com