Helm ist so etwas wie ein Paketmanager für Kubernetes apt-get
für Ubuntu. In diesem Hinweis sehen wir die vorherige Version von Helm (v2) mit standardmäßig installiertem Tiller-Dienst, über den wir auf den Cluster zugreifen.
Bereiten wir den Cluster vor; führen Sie dazu den folgenden Befehl aus:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash
Demonstration
- Wenn Sie nichts weiter konfigurieren, startet Helm v2 den Tiller-Dienst, der über RBAC mit vollständigen Cluster-Administratorrechten verfügt.
- Nach der Installation im Namespace
kube-system
появляетсяtiller-deploy
und öffnet außerdem Port 44134, gebunden an 0.0.0.0. Dies kann per Telnet überprüft werden.
$ telnet tiller-deploy.kube-system 44134
- Jetzt können Sie sich mit dem Pinnendienst verbinden. Wir werden die Helm-Binärdatei verwenden, um Vorgänge bei der Kommunikation mit dem Pinnendienst auszuführen:
$ helm --host tiller-deploy.kube-system:44134 version
- Versuchen wir, die Geheimnisse des Kubernetes-Clusters aus dem Namespace abzurufen
kube-system
:
$ kubectl get secrets -n kube-system
- Jetzt können wir unser eigenes Diagramm erstellen, in dem wir eine Rolle mit Administratorrechten erstellen und diese Rolle dem Standarddienstkonto zuweisen. Mit dem Token dieses Dienstkontos erhielten wir vollen Zugriff auf unseren Cluster.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Jetzt, wenn
pwnchart
Bei der Bereitstellung verfügt das Standarddienstkonto über vollständigen Administratorzugriff. Schauen wir uns noch einmal an, wie man Geheimnisse erhältkube-system
kubectl get secrets -n kube-system
Die erfolgreiche Ausführung dieses Skripts hängt davon ab, wie der Tiller bereitgestellt wurde. Manchmal stellen Administratoren ihn in einem separaten Namespace mit unterschiedlichen Berechtigungen bereit. Helm 3 ist nicht anfällig für solche Schwachstellen, weil ... Es gibt keine Pinne darin.
Anmerkung des Übersetzers: Die Verwendung von Netzwerkrichtlinien zum Filtern des Datenverkehrs in einem Cluster trägt zum Schutz vor dieser Art von Schwachstellen bei.
Source: habr.com