
Helm — en pakkestyrer til Kubernetes, noget lignende apt-get til Ubuntu. I denne note vil vi se på den tidligere version af helm (v2) med tjenesten tiller forudinstalleret, som giver os adgang til klyngen.
Lad os forberede klyngen ved at køre kommandoen:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash![]()
Demonstration
- Hvis der ikke foretages yderligere indstillinger, starter helm v2 tjenesten tiller, som har RBAC med fulde administratorrettigheder til klyngen.
- Efter installationen i namespace
kube-systemvisestiller-deploy, åbnes port 44134, bundet til 0.0.0.0. Dette kan kontrolleres ved hjælp af telnet.
$ telnet tiller-deploy.kube-system 44134
- Nu kan vi oprette forbindelse til tjenesten tiller. Vi vil bruge binæren helm til at udføre operationer ved kommunikation med tjenesten tiller:
$ helm --host tiller-deploy.kube-system:44134 version![]()
- Lad os forsøge at hente hemmeligheder fra Kubernetes-klyngen i namespace
kube-system:
$ kubectl get secrets -n kube-system![]()
- Nu kan vi oprette vores eget chart, hvor vi opretter en rolle med administratorrettigheder og tildeler denne rolle til den standard servicekonto. Ved at bruge tokenet fra denne servicekonto fik vi fuld adgang til vores klynge.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Nu, når
pwncharter blevet implementeret, har standard servicekontoen fuld administrative rettigheder. Lad os kontrollere hæmtning af hemmeligheder igen frakube-system
kubectl get secrets -n kube-system
En vellykket udførelse af dette script afhænger af, hvordan tiller er blevet implementeret, nogle gange implementerer administratorer det i et separat namespace med andre privilegier. Helm 3 er ikke udsat for sådanne sårbarheder, da den ikke har tiller.
Oversætterens note: brugen af netværkspolitikker til at filtrere trafik i klyngen hjælper med at beskytte mod sårbarheder af denne type.
Kilde: habr.com
