Razbijamo Kubernetes klaster putem Helm v2 tiller

Razbijamo Kubernetes klaster putem Helm v2 tiller

Helm — paket menadžer za Kubernetes, nešto poput apt-get za Ubuntu. U ovoj noti ćemo vidjeti prethodnu verziju helma (v2) s servisom tiller, koji je unaprijed postavljen, kroz koji ćemo dobiti pristup klasteru.

Pripremimo klaster, zato pokrenimo naredbu:

kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash

Razbijamo Kubernetes klaster putem Helm v2 tiller

Demonstracija

  • Ako ništa dodatno ne konfiguriramo, helm v2 pokreće servis tiller, koji ima RBAC s punim administratorskim pravima na klasteru.
  • Nakon instalacije u namespace kube-system javlja tiller-deploy, također se otvara port 44134, povezan sa 0.0.0.0. To se može provjeriti koristeći telnet.

$ telnet tiller-deploy.kube-system 44134

Razbijamo Kubernetes klaster putem Helm v2 tiller

  • Sada se možemo povezati sa servisom tiller. Koristit ćemo binarnu datoteku helm za izvođenje operacija prilikom komunikacije sa servisom tiller:

$ helm --host tiller-deploy.kube-system:44134 version

Razbijamo Kubernetes klaster putem Helm v2 tiller

  • Pokušajmo dobiti tajne klastera Kubernetes iz namespace kube-system:

$ kubectl get secrets -n kube-system

Razbijamo Kubernetes klaster putem Helm v2 tiller

  • Sada možemo stvoriti naš vlastiti chart, u kojem ćemo stvoriti ulogu s pravima administratora i dodijeliti tu ulogu podrazumevanom servisnom računu. Koristeći token iz ove servisne račun, dobili smo potpuni pristup našem klasteru.

$ helm --host tiller-deploy.kube-system:44134 install /pwnchart

Razbijamo Kubernetes klaster putem Helm v2 tiller

  • Sada, kada je pwnchart implementiran, podrazumna servisna račun ima potpuni pristup kao administrator. Provjerimo još jednom dobivanje tajni iz kube-system

kubectl get secrets -n kube-system

Razbijamo Kubernetes klaster putem Helm v2 tiller

Uspešno izvršenje ovog scenarija zavisi od toga kako je tiller implementiran, ponekad ga administratori implementiraju u odvojenom namespace-u s drugim privilegijama. Helm 3 nije podložan takvim ranjivostima, jer ne sadrži tiller.

Napomena prevodioca: korištenje mrežnih politika za filtriranje prometa u klasteru pomaže u zaštiti od ranjivosti ovog tipa.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster