
Helm — ein Paketmanager für Kubernetes, ähnlich wie apt-get für Ubuntu. In dieser Notiz werden wir die vorherige Version von Helm (v2) mit dem standardmäßig installierten Tiller-Service sehen, über den wir Zugriff auf den Cluster erhalten.
Bereiten wir den Cluster vor, dafür führen wir den Befehl aus:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash![]()
Demonstration
- Wenn nichts zusätzlich konfiguriert wird, startet Helm v2 den Tiller-Service, der RBAC mit vollständigen Administratorrechten für den Cluster hat.
- Nach der Installation im Namespace
kube-systemerscheinttiller-deploy, wird auch der Port 44134 geöffnet, der an 0.0.0.0 gebunden ist. Dies kann mit Telnet überprüft werden.
$ telnet tiller-deploy.kube-system 44134
- Jetzt können wir uns mit dem Tiller-Service verbinden. Wir verwenden das Helm-Binary, um Operationen bei der Kommunikation mit dem Tiller-Service durchzuführen:
$ helm --host tiller-deploy.kube-system:44134 version![]()
- Wir versuchen, die Geheimnisse des Kubernetes-Clusters aus dem Namespace zu erhalten
kube-system:
$ kubectl get secrets -n kube-system![]()
- Jetzt können wir unser eigenes Chart erstellen, in dem wir eine Rolle mit Administratorrechten erstellen und diese Rolle dem standardmäßigen Dienstkonto zuweisen. Mit dem Token von diesem Dienstkonto haben wir vollen Zugriff auf unseren Cluster.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Jetzt, da
pwnchartbereitgestellt ist, hat das standardmäßige Dienstkonto vollen administrativen Zugriff. Überprüfen wir erneut den Zugriff auf die Geheimnisse vonkube-system
kubectl get secrets -n kube-system
Der erfolgreiche Abschluss dieses Szenarios hängt davon ab, wie Tiller bereitgestellt wurde; manchmal setzen Administratoren ihn in einem separaten Namespace mit anderen Berechtigungen ein. Helm 3 ist nicht anfällig für solche Schwachstellen, da es Tiller nicht enthält.
Hinweis des Übersetzers: Die Verwendung von Netzwerkpolitiken zur Filterung des Verkehrs im Cluster hilft, sich vor derartigen Schwachstellen zu schützen.
Quelle: habr.com
