Aufbrechen eines Kubernetes-Clusters mit Helm v2-Tiller

Aufbrechen eines Kubernetes-Clusters mit Helm v2-Tiller

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

Aufbrechen eines Kubernetes-Clusters mit Helm v2-Tiller

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-deployund öffnet außerdem Port 44134, gebunden an 0.0.0.0. Dies kann per Telnet überprüft werden.

$ telnet tiller-deploy.kube-system 44134

Aufbrechen eines Kubernetes-Clusters mit Helm v2-Tiller

  • 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

Aufbrechen eines Kubernetes-Clusters mit Helm v2-Tiller

  • Versuchen wir, die Geheimnisse des Kubernetes-Clusters aus dem Namespace abzurufen kube-system:

$ kubectl get secrets -n kube-system

Aufbrechen eines Kubernetes-Clusters mit Helm v2-Tiller

  • 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

Aufbrechen eines Kubernetes-Clusters mit Helm v2-Tiller

  • Jetzt, wenn pwnchart Bei der Bereitstellung verfügt das Standarddienstkonto über vollständigen Administratorzugriff. Schauen wir uns noch einmal an, wie man Geheimnisse erhält kube-system

kubectl get secrets -n kube-system

Aufbrechen eines Kubernetes-Clusters mit Helm v2-Tiller

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

Kommentar hinzufügen