GCP - Containers & GKE Enum
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
In GCP-Containern findest du die meisten der containerbasierten Dienste, die GCP anbietet. Hier siehst du, wie du die häufigsten auflisten kannst:
Auf der folgenden Seite können Sie überprüfen, wie Sie Containerberechtigungen missbrauchen, um Privilegien zu eskalieren:
GCP - Container PrivescDies sind die Maschinenpools (Knoten), die die Kubernetes-Cluster bilden.
Für Informationen darüber, was Kubernetes ist, siehe diese Seite:
Kubernetes PentestingZuerst können Sie überprüfen, ob in Ihrem Projekt Kubernetes-Cluster vorhanden sind.
Wenn Sie einen Cluster haben, kann gcloud
automatisch Ihre ~/.kube/config
-Datei konfigurieren. Diese Datei wird verwendet, um Sie zu authentifizieren, wenn Sie kubectl verwenden, die native CLI zur Interaktion mit K8s-Clustern. Versuchen Sie diesen Befehl.
Dann schauen Sie sich die Datei ~/.kube/config
an, um die generierten Anmeldeinformationen zu sehen. Diese Datei wird verwendet, um Zugriffstoken automatisch basierend auf derselben Identität zu aktualisieren, die Ihre aktive gcloud
-Sitzung verwendet. Dies erfordert natürlich die richtigen Berechtigungen.
Sobald dies eingerichtet ist, können Sie den folgenden Befehl ausprobieren, um die Clusterkonfiguration abzurufen.
Sie können mehr über gcloud
für Container hier lesen.
Dies ist ein einfaches Skript zur Enumeration von Kubernetes in GCP: https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_k8s_enum
Ursprünglich erlaubte diese Privilegieneskalationstechnik, privesc innerhalb des GKE-Clusters durchzuführen, was es einem Angreifer ermöglichte, es vollständig zu kompromittieren.
Das liegt daran, dass GKE TLS Bootstrap-Anmeldeinformationen in den Metadaten bereitstellt, die von jedem zugänglich sind, der nur einen Pod kompromittiert.
Die verwendete Technik wird in den folgenden Beiträgen erklärt:
Und dieses Tool wurde erstellt, um den Prozess zu automatisieren: https://github.com/4ARMED/kubeletmein
Die Technik missbrauchte jedoch die Tatsache, dass mit den Metadatenanmeldeinformationen es möglich war, eine CSR (Zertifikatsanfrage) für einen neuen Knoten zu generieren, die automatisch genehmigt wurde. In meinem Test habe ich überprüft, dass diese Anfragen nicht mehr automatisch genehmigt werden, daher bin ich mir nicht sicher, ob diese Technik noch gültig ist.
In diesem Beitrag wurde eine Kubelet-API-Adresse entdeckt, die von innerhalb eines Pods in GKE zugänglich ist und die Details der laufenden Pods bereitstellt:
Auch wenn die API keine Änderungen an Ressourcen zulässt, könnte es möglich sein, sensible Informationen in der Antwort zu finden. Der Endpunkt /pods wurde mit Kiterunner gefunden.
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)