Helm är pakethanterare för Kubernetes, något liknande apt-get
för Ubuntu. I den här anteckningen kommer vi att se den tidigare versionen av rodret (v2) med rorkultstjänsten installerad som standard, genom vilken vi kommer åt klustret.
Låt oss förbereda klustret; för att göra detta, kör kommandot:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash
Demonstration
- Om du inte konfigurerar något ytterligare startar helm v2 rorkultstjänsten, som har RBAC med fullständiga klusteradministratörsrättigheter.
- Efter installation i namnutrymmet
kube-system
visastiller-deploy
, och öppnar även port 44134, bunden till 0.0.0.0. Detta kan kontrolleras med telnet.
$ telnet tiller-deploy.kube-system 44134
- Nu kan du ansluta till rorkultstjänsten. Vi kommer att använda rorbinären för att utföra operationer när vi kommunicerar med rorkultens tjänst:
$ helm --host tiller-deploy.kube-system:44134 version
- Låt oss försöka få hem Kubernetes-klustrets hemligheter från namnutrymmet
kube-system
:
$ kubectl get secrets -n kube-system
- Nu kan vi skapa ett eget diagram, där vi skapar en roll med administratörsrättigheter och tilldelar denna roll till standardtjänstkontot. Genom att använda token från detta tjänstkonto fick vi full åtkomst till vårt kluster.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- När nu
pwnchart
installerat har standardtjänstkontot full administrativ åtkomst. Låt oss kolla igen hur man får hemligheter frånkube-system
kubectl get secrets -n kube-system
Framgångsrik exekvering av det här skriptet beror på hur tiller distribuerades; ibland distribuerar administratörer det i ett separat namnområde med olika privilegier. Helm 3 är inte mottaglig för sådana sårbarheter eftersom... det finns ingen rorkult i den.
Översättarens anmärkning: Att använda nätverkspolicyer för att filtrera trafik i ett kluster hjälper till att skydda mot den här typen av sårbarheter.
Källa: will.com