GCP - Cloudbuild Privesc
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)
Für weitere Informationen über Cloud Build siehe:
GCP - Cloud Build Enumcloudbuild.builds.create
Mit dieser Berechtigung kannst du einen Cloud-Build einreichen. Die Cloudbuild-Maschine wird standardmäßig in ihrem Dateisystem ein Token des Cloudbuild-Servicekontos haben: <PROJECT_NUMBER>@cloudbuild.gserviceaccount.com
. Du kannst jedoch jedes Servicekonto innerhalb des Projekts in der Cloudbuild-Konfiguration angeben.
Daher kannst du die Maschine einfach dazu bringen, das Token an deinen Server zu exfiltrieren oder einen Reverse-Shell innerhalb davon zu erhalten und dir das Token zu holen (die Datei, die das Token enthält, könnte sich ändern).
Du kannst das ursprüngliche Exploit-Skript hier auf GitHub finden (aber der Ort, von dem es das Token abruft, hat bei mir nicht funktioniert). Überprüfe daher ein Skript zur Automatisierung der Erstellung, Ausnutzung und Bereinigung einer verwundbaren Umgebung hier und ein Python-Skript, um einen Reverse-Shell innerhalb der Cloudbuild-Maschine zu erhalten und es hier zu stehlen (im Code kannst du finden, wie man andere Servicekonten angibt).
Für eine detailliertere Erklärung besuche https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/
cloudbuild.builds.update
Potentiell wirst du mit dieser Berechtigung in der Lage sein, einen Cloud-Build zu aktualisieren und einfach das Token des Servicekontos zu stehlen, wie es mit der vorherigen Berechtigung durchgeführt wurde (aber leider konnte ich zum Zeitpunkt des Schreibens keinen Weg finden, diese API aufzurufen).
TODO
cloudbuild.repositories.accessReadToken
Mit dieser Berechtigung kann der Benutzer das Lesezugriffs-Token erhalten, das zum Zugriff auf das Repository verwendet wird:
cloudbuild.repositories.accessReadWriteToken
Mit dieser Berechtigung kann der Benutzer das Lese- und Schreibzugriffstoken abrufen, das zum Zugriff auf das Repository verwendet wird:
cloudbuild.connections.fetchLinkableRepositories
Mit dieser Berechtigung können Sie die Repos abrufen, auf die die Verbindung Zugriff hat:
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)