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 zu erhalten.
You can read more about gcloud
for containers here.
This is a simple script to enumerate kubernetes in GCP: https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_k8s_enum
Initially this privilege escalation technique allowed to privesc inside the GKE cluster effectively allowing an attacker to fully compromise it.
This is because GKE provides TLS Bootstrap credentials in the metadata, which is accessible by anyone by just compromising a pod.
The technique used is explained in the following posts:
Ans this tool was created to automate the process: https://github.com/4ARMED/kubeletmein
However, the technique abused the fact that with the metadata credentials it was possible to generate a CSR (Certificate Signing Request) for a new node, which was automatically approved. In my test I checked that those requests aren't automatically approved anymore, so I'm not sure if this technique is still valid.
In this post wurde eine Kubelet API-Adresse entdeckt, die von innerhalb eines Pods in GKE zugänglich ist und die Details der laufenden Pods anzeigt:
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)