Helm je správce balíčků pro Kubernetes, něco jako apt-get
pro Ubuntu. V této poznámce uvidíme předchozí verzi kormidla (v2) se standardně nainstalovanou službou kormidla, přes kterou budeme ke clusteru přistupovat.
Pojďme připravit cluster; k tomu spusťte příkaz:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash
Ukázka
- Pokud nenakonfigurujete nic navíc, helm v2 spustí službu omezovače, která má RBAC s plnými právy správce clusteru.
- Po instalaci do jmenného prostoru
kube-system
se zobrazítiller-deploy
a také otevře port 44134, vázaný na 0.0.0.0. To lze zkontrolovat pomocí telnetu.
$ telnet tiller-deploy.kube-system 44134
- Nyní se můžete připojit ke službě kultivátoru. Binární soubor kormidla použijeme k provádění operací při komunikaci se službou kormidla:
$ helm --host tiller-deploy.kube-system:44134 version
- Zkusme získat tajemství clusteru Kubernetes z oboru názvů
kube-system
:
$ kubectl get secrets -n kube-system
- Nyní si můžeme vytvořit vlastní graf, ve kterém vytvoříme roli s administrátorskými právy a tuto roli přiřadíme výchozímu servisnímu účtu. Pomocí tokenu z tohoto účtu služby jsme získali plný přístup k našemu clusteru.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Teď kdy
pwnchart
nasazen, výchozí účet služby má plný přístup pro správce. Podívejme se znovu, jak získat tajemství zkube-system
kubectl get secrets -n kube-system
Úspěšné provedení tohoto skriptu závisí na tom, jak byl kultivátor nasazen; někdy jej administrátoři nasadí do samostatného jmenného prostoru s různými oprávněními. Helm 3 není náchylný k takovým zranitelnostem, protože... není v něm kormidlo.
Poznámka překladatele: Použití síťových zásad k filtrování provozu v clusteru pomáhá chránit před tímto typem zranitelnosti.
Zdroj: www.habr.com