GCP - Cloud Run 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)
Cloud Run ist eine serverlose verwaltete Compute-Plattform, die es dir ermöglicht, Container direkt auf der skalierbaren Infrastruktur von Google auszuführen.
Du kannst deinen Container ausführen oder, wenn du Go, Node.js, Python, Java, .NET Core oder Ruby verwendest, kannst du die quellbasierte Bereitstellungsoption nutzen, die den Container für dich erstellt.
Google hat Cloud Run entwickelt, um gut mit anderen Diensten auf Google Cloud zusammenzuarbeiten, sodass du voll funktionsfähige Anwendungen erstellen kannst.
Auf Cloud Run kann dein Code entweder kontinuierlich als Dienst oder als Job ausgeführt werden. Sowohl Dienste als auch Jobs laufen in derselben Umgebung und können dieselben Integrationen mit anderen Diensten auf Google Cloud nutzen.
Cloud Run-Dienste. Wird verwendet, um Code auszuführen, der auf Webanfragen oder Ereignisse reagiert.
Cloud Run-Jobs. Wird verwendet, um Code auszuführen, der Arbeit (einen Job) verrichtet und beendet wird, wenn die Arbeit erledigt ist.
Google Cloud Run ist ein weiteres serverloses Angebot, bei dem du auch nach Umgebungsvariablen suchen kannst. Cloud Run erstellt standardmäßig einen kleinen Webserver, der auf Port 8080 innerhalb des Containers läuft und darauf wartet, dass eine HTTP GET-Anfrage eingeht. Wenn die Anfrage empfangen wird, wird ein Job ausgeführt und das Jobprotokoll wird über eine HTTP-Antwort ausgegeben.
Standardmäßig ist der Zugriff auf den Webserver öffentlich, kann jedoch auch auf internen Verkehr (VPC...) beschränkt werden. Darüber hinaus kann die Authentifizierung zum Kontakt mit dem Webserver alle zulassen oder eine Authentifizierung über IAM erfordern.
Standardmäßig verwendet die Verschlüsselung einen von Google verwalteten Schlüssel, aber ein CMEK (Customer Managed Encryption Key) von KMS kann ebenfalls ausgewählt werden.
Standardmäßig ist das verwendete Dienstkonto das Standard-Dienstkonto von Compute Engine, das Editor-Zugriff auf das Projekt hat und den Bereich cloud-platform
hat.
Es ist möglich, Klartext-Umgebungsvariablen für die Ausführung zu definieren und sogar Cloud-Secrets zu mounten oder Cloud-Secrets zu Umgebungsvariablen hinzuzufügen.
Es ist auch möglich, Verbindungen mit Cloud SQL hinzuzufügen und ein Dateisystem zu mounten.
Die URLs der bereitgestellten Dienste sind ähnlich wie https://<svc-name>-<random>.a.run.app
Ein Run-Dienst kann mehr als 1 Version oder Revision haben und den Verkehr zwischen mehreren Revisionen aufteilen.
Cloud Run-Jobs sind besser geeignet für Container, die bis zur Vollständigkeit ausgeführt werden und keine Anfragen bedienen. Jobs haben nicht die Fähigkeit, Anfragen zu bedienen oder auf einem Port zu lauschen. Das bedeutet, dass Jobs im Gegensatz zu Cloud Run-Diensten keinen Webserver bündeln sollten. Stattdessen sollten Job-Container beenden, wenn sie fertig sind.
In der folgenden Seite können Sie überprüfen, wie man Cloud Run-Berechtigungen missbraucht, um Privilegien zu eskalieren:
GCP - Run PrivescLernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)