Helm je upravitelj paketa za Kubernetes, nešto slično apt-get
za Ubuntu. U ovoj bilješci vidjet ćemo prethodnu verziju helma (v2) sa standardno instaliranom uslugom tiller preko koje ćemo pristupati klasteru.
Pripremimo klaster; da biste to učinili, pokrenite naredbu:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash
demonstracija
- Ako ne konfigurirate ništa dodatno, helm v2 pokreće uslugu upravljanja, koja ima RBAC s punim pravima administratora klastera.
- Nakon instalacije u imenski prostor
kube-system
Činitiller-deploy
, a također otvara port 44134, vezan za 0.0.0.0. Ovo se može provjeriti pomoću telneta.
$ telnet tiller-deploy.kube-system 44134
- Sada se možete spojiti na uslugu kormila. Koristit ćemo binarnu datoteku kormila za izvođenje operacija kada komuniciramo s uslugom upravljanja:
$ helm --host tiller-deploy.kube-system:44134 version
- Pokušajmo dobiti tajne Kubernetes klastera iz prostora imena
kube-system
:
$ kubectl get secrets -n kube-system
- Sada možemo izraditi vlastiti grafikon u kojem ćemo stvoriti ulogu s administratorskim pravima i tu ulogu dodijeliti zadanom servisnom računu. Koristeći token s ovog servisnog računa, dobili smo puni pristup našem klasteru.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Sad kad
pwnchart
postavljen, zadani račun usluge ima puni administrativni pristup. Provjerimo ponovno kako dobiti tajne odkube-system
kubectl get secrets -n kube-system
Uspješno izvođenje ove skripte ovisi o tome kako je tiller postavljen; ponekad ga administratori postavljaju u zasebnom prostoru imena s različitim privilegijama. Helm 3 nije osjetljiv na takve ranjivosti jer... u njemu nema kormila.
Napomena prevoditelja: Korištenje mrežnih pravila za filtriranje prometa u klasteru pomaže u zaštiti od ove vrste ranjivosti.
Izvor: www.habr.com