
Helm — pakotņu pārvaldnieks Kubernetes, kaut kas līdzīgs apt-get Ubuntu. Šajā piezīmē mēs apskatīsim iepriekšējo helm versiju (v2) ar noklusējuma tiler pakalpojumu, caur kuru mēs iegūsim piekļuvi klasterim.
Sagatavosim klasteri, tam palaidīsim komandu:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash![]()
Demonstrācija
- Ja netiks veiktas papildu konfigurācijas, helm v2 palaidīs tiler pakalpojumu, kas ir ar RBAC pilnām administratora tiesībām uz klasteri.
- Pēc instalācijas nosaukuma telpā
kube-systemparādāstiller-deploy, arī tiek atvērts ports 44134, kas piesaistīts 0.0.0.0. To var pārbaudīt ar telnet.
$ telnet tiller-deploy.kube-system 44134
- Tagad varam pievienoties tiler pakalpojumam. Mēs izmantosim helm bināro failu, lai veiktu operācijas, sazinoties ar tiler pakalpojumu:
$ helm --host tiller-deploy.kube-system:44134 version![]()
- Mēģināsim iegūt Kubernetes klastera slepenos datus no nosaukuma telpas
kube-system:
$ kubectl get secrets -n kube-system![]()
- Tagad mēs varam izveidot savu pašu chart, kurā izveidosim lomu ar administratora tiesībām un piešķirsim šo lomu noklusējuma pakalpojumu kontam. Izmantojot šo pakalpojumu konta žetonu, mēs ieguvām pilnu piekļuvi mūsu klasterim.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Tagad, kad
pwnchartir izvietots, noklusējuma pakalpojumu kontam ir pilnīga administratīvā piekļuve. Pārbaudīsim vēlreiz slepeno datu iegūšanu nokube-system
kubectl get secrets -n kube-system
Šī scenārija veiksmīga izpilde ir atkarīga no tā, kā līdzīgs tika izvietots, dažkārt administratori to izvieto atsevišķā nosaukuma telpā ar citu privilēģiju. Helm 3 nav pakļauts šādām ievainojamībām, jo tajā nav tiler.
Tulkotāja piezīme: tīkla politiku izmantošana, lai filtrētu trafiku klasterī, palīdz aizsargāties pret līdzīgām ievainojamībām.
Avots: habr.com
