Helm je menadžer paketa za Kubernetes, nešto slično apt-get
za Ubuntu. U ovoj napomeni ćemo vidjeti prethodnu verziju kormila (v2) sa standardno instaliranom uslugom tiller, preko koje ćemo pristupiti klasteru.
Hajde da pripremimo klaster; da biste to uradili, pokrenite naredbu:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash
Demonstracija
- Ako ne konfigurišete ništa dodatno, helm v2 pokreće servis tiller, koji ima RBAC sa punim administratorskim pravima klastera.
- Nakon instalacije u imenskom prostoru
kube-system
pojavljuje setiller-deploy
, a također otvara port 44134, vezan na 0.0.0.0. Ovo se može provjeriti pomoću telneta.
$ telnet tiller-deploy.kube-system 44134
- Sada možete da se povežete sa servisom rude. Koristit ćemo binarnu datoteku kormila za obavljanje operacija kada komuniciramo sa servisom rude:
$ helm --host tiller-deploy.kube-system:44134 version
- Pokušajmo dobiti tajne Kubernetes klastera iz imenskog prostora
kube-system
:
$ kubectl get secrets -n kube-system
- Sada možemo kreirati vlastiti grafikon, u kojem ćemo kreirati ulogu s administratorskim pravima i dodijeliti ovu ulogu zadanom servisnom računu. Koristeći token s ovog servisnog računa, dobili smo potpuni pristup našem klasteru.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Sada kada
pwnchart
raspoređen, podrazumevani servisni nalog ima potpuni administrativni pristup. Provjerimo ponovo kako doći do tajni odkube-system
kubectl get secrets -n kube-system
Uspješno izvršavanje ove skripte ovisi o tome kako je tiller raspoređen; ponekad ga administratori implementiraju u zasebnom imenskom prostoru s različitim privilegijama. Helm 3 nije podložan takvim ranjivostima jer... u njemu nema freze.
Napomena prevodioca: Korištenje mrežnih politika za filtriranje prometa u klasteru pomaže u zaštiti od ove vrste ranjivosti.
izvor: www.habr.com