Helm er pakkebehandler for Kubernetes, noe sånt som apt-get
for Ubuntu. I dette notatet vil vi se den forrige versjonen av ror (v2) med rorkulttjenesten installert som standard, som vi får tilgang til klyngen gjennom.
La oss forberede klyngen; for å gjøre dette, kjør kommandoen:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash
Demonstrasjon
- Hvis du ikke konfigurerer noe ekstra, starter helm v2 rorkulttjenesten, som har RBAC med fulle klyngeadministratorrettigheter.
- Etter installasjon i navneområdet
kube-system
visestiller-deploy
, og åpner også port 44134, bundet til 0.0.0.0. Dette kan sjekkes ved hjelp av telnet.
$ telnet tiller-deploy.kube-system 44134
- Nå kan du koble til rorkulttjenesten. Vi vil bruke rorbinæren til å utføre operasjoner når vi kommuniserer med rorkulttjenesten:
$ helm --host tiller-deploy.kube-system:44134 version
- La oss prøve å få Kubernetes-klyngehemmelighetene fra navneområdet
kube-system
:
$ kubectl get secrets -n kube-system
- Nå kan vi lage vårt eget diagram, der vi oppretter en rolle med administratorrettigheter og tilordner denne rollen til standardtjenestekontoen. Ved å bruke tokenet fra denne tjenestekontoen fikk vi full tilgang til klyngen vår.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Nå når
pwnchart
distribuert, har standardtjenestekontoen full administrativ tilgang. La oss sjekke igjen hvordan du kan få hemmeligheter frakube-system
kubectl get secrets -n kube-system
Vellykket utførelse av dette skriptet avhenger av hvordan tiller ble distribuert; noen ganger distribuerer administratorer det i et eget navneområde med forskjellige privilegier. Helm 3 er ikke utsatt for slike sårbarheter fordi... det er ingen rorkult i den.
Oversetterens notat: Bruk av nettverkspolicyer for å filtrere trafikk i en klynge bidrar til å beskytte mot denne typen sårbarheter.
Kilde: www.habr.com