GCP - Storage Privesc

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Speicher

Grundlegende Informationen:

pageGCP - Storage Enum

storage.objects.get

Diese Berechtigung ermöglicht es Ihnen, Dateien herunterzuladen, die im Cloud-Speicher gespeichert sind. Dies kann potenziell dazu führen, dass Sie Privilegien eskalieren, da in einigen Fällen sensible Informationen dort gespeichert sind. Darüber hinaus speichern einige GCP-Dienste ihre Informationen in Buckets:

  • GCP Composer: Wenn Sie eine Composer-Umgebung erstellen, wird der Code aller DAGs in einem Bucket gespeichert. Diese Aufgaben können interessante Informationen in ihrem Code enthalten.

  • GCR (Container Registry): Das Image der Container wird in Buckets gespeichert, was bedeutet, dass Sie, wenn Sie die Buckets lesen können, die Bilder herunterladen und nach Lecks und/oder Quellcode suchen können.

storage.objects.setIamPolicy

Mit dieser Berechtigung können Sie sich die Erlaubnis geben, eine der vorherigen Szenarien dieses Abschnitts zu missbrauchen.

storage.buckets.setIamPolicy

Für ein Beispiel, wie Berechtigungen mit dieser Berechtigung geändert werden können, überprüfen Sie diese Seite:

pageGCP - Public Buckets Privilege Escalation

storage.hmacKeys.create

Die Funktion "Interoperabilität" des Cloud-Speichers, die für Cross-Cloud-Interaktionen wie mit AWS S3 konzipiert ist, beinhaltet die Erstellung von HMAC-Schlüsseln für Service-Konten und Benutzer. Ein Angreifer kann dies ausnutzen, indem er einen HMAC-Schlüssel für ein Service-Konto mit erhöhten Berechtigungen generiert und somit Berechtigungen im Cloud-Speicher eskaliert. Während benutzerbezogene HMAC-Schlüssel nur über die Weboberfläche abrufbar sind, bleiben sowohl der Zugriffs- als auch der geheime Schlüssel dauerhaft zugänglich, was potenziellen Backup-Zugriff ermöglicht. Im Gegensatz dazu sind Service-Konto-verknüpfte HMAC-Schlüssel über die API abrufbar, aber ihre Zugriffs- und geheimen Schlüssel sind nach der Erstellung nicht abrufbar, was eine zusätzliche Komplexität für den kontinuierlichen Zugriff darstellt.

# Create key
gsutil hmac create <sa-email>

# Configure gsutil to use it
gsutil config -a

# Use it
gsutil ls gs://[BUCKET_NAME]

Ein weiteres Exploit-Skript für diese Methode finden Sie hier.

storage.objects.create, storage.objects.delete = Schreibberechtigungen für Speicher

Um ein neues Objekt in einem Eimer zu erstellen, benötigen Sie storage.objects.create und laut der Dokumentation benötigen Sie auch storage.objects.delete, um ein vorhandenes Objekt zu ändern.

Eine sehr häufige Ausnutzung von Eimern, in denen Sie in der Cloud schreiben können, besteht darin, dass der Eimer Webserverdateien speichert. Möglicherweise können Sie neuen Code speichern, der von der Webanwendung verwendet wird.

Composer

Composer ist Apache Airflow, der in GCP verwaltet wird. Es hat mehrere interessante Funktionen:

  • Es läuft in einem GKE-Cluster, sodass der SA, den der Cluster verwendet, vom im Composer ausgeführten Code zugänglich ist.

  • Es speichert den Code in einem Eimer, daher wird jeder mit Schreibzugriff auf diesen Eimer in der Lage sein, einen DGA-Code zu ändern/hinzuzufügen (den Code, den Apache Airflow ausführen wird). Dann, wenn Sie Schreibzugriff auf den Eimer haben, den Composer verwendet, um den Code zu speichern, können Sie zu dem SA eskalieren, der im GKE-Cluster ausgeführt wird.

Cloud Functions

  • Der Code von Cloud Functions wird im Speicher gespeichert, daher ist es möglich, durch Überschreiben davon beliebigen Code auszuführen.

App Engine

  • Der Quellcode von App Engine wird in Eimern gespeichert, durch Überschreiben des Codes könnte es möglich sein, beliebigen Code auszuführen. DAS IST NICHT MÖGLICH

  • Es scheint, dass Container-Schichten im Eimer gespeichert sind, vielleicht diese ändern?

GCR

  • Google Container Registry speichert die Images in Eimern, wenn Sie diese Eimer beschreiben können, könnten Sie möglicherweise seitlich zu dem Ort wechseln, an dem diese Eimer ausgeführt werden.

  • Der von GCR verwendete Eimer hat eine URL ähnlich wie gs://<eu/usa/asia/nothing>.artifacts.<project>.appspot.com (Die Top-Level-Subdomains sind hier angegeben).

Referenzen

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated