GCP - Cloud Run Enum
Cloud Run
Cloud Run ist eine serverlose verwaltete Rechenplattform, die es Ihnen ermöglicht, Container direkt auf der skalierbaren Infrastruktur von Google auszuführen.
Sie können Ihren Container ausführen oder wenn Sie Go, Node.js, Python, Java, .NET Core oder Ruby verwenden, können Sie die bereitstellungsbasierte Bereitstellungsoption verwenden, die den Container für Sie erstellt.
Google hat Cloud Run so entwickelt, dass es gut mit anderen Diensten auf Google Cloud zusammenarbeitet, sodass Sie voll funktionsfähige Anwendungen erstellen können.
Dienste und Jobs
Auf Cloud Run kann Ihr Code entweder kontinuierlich als Dienst oder als Job ausgeführt werden. Sowohl Dienste als auch Jobs werden in der gleichen Umgebung ausgeführt und können die gleichen Integrationen mit anderen Diensten auf Google Cloud verwenden.
Cloud Run-Dienste. Werden verwendet, um Code auszuführen, der auf Webanfragen oder Ereignisse reagiert.
Cloud Run-Jobs. Werden verwendet, um Code auszuführen, der Arbeit verrichtet (ein Job) und beendet wird, wenn die Arbeit erledigt ist.
Cloud Run-Dienst
Google Cloud Run ist ein weiteres serverloses Angebot, bei dem Sie auch nach Umgebungsvariablen suchen können. Cloud Run erstellt einen kleinen Webserver, der standardmäßig auf Port 8080 innerhalb des Containers läuft und auf einen HTTP-GET-Request wartet. Wenn die Anfrage empfangen wird, wird ein Job ausgeführt und das Jobprotokoll wird über eine HTTP-Antwort ausgegeben.
Relevante Details
Standardmäßig ist der Zugriff auf den Webserver öffentlich, kann aber auch auf internen Datenverkehr beschränkt sein (VPC...). Darüber hinaus kann die Authentifizierung zum Kontaktieren des Webservers entweder allen erlauben oder eine Authentifizierung über IAM erfordern.
Standardmäßig wird zur Verschlüsselung ein von Google verwalteter Schlüssel verwendet, aber es kann auch ein CMEK (Customer Managed Encryption Key) von KMS ausgewählt werden.
Standardmäßig wird das Dienstkonto verwendet, das über das Compute Engine-Standardkonto verfügt, das über Editor-Zugriff auf das Projekt verfügt und den Bereich
cloud-platform
hat.Es ist möglich, Klartext-Umgebungsvariablen für die Ausführung zu definieren und sogar Cloud-Geheimnisse einzubinden oder Cloud-Geheimnisse zu Umgebungsvariablen hinzuzufügen.
Es ist auch möglich, Verbindungen mit Cloud SQL hinzuzufügen und ein Dateisystem einzubinden.
Die URLs der bereitgestellten Dienste ähneln
https://<svc-name>-<random>.a.run.app
Ein Run-Service kann mehr als 1 Version oder Revision haben und den Datenverkehr auf mehrere Revisionen aufteilen.
Enumeration
Cloud Run Jobs
Cloud Run-Jobs eignen sich besser für Container, die bis zum Abschluss ausgeführt werden und keine Anfragen bearbeiten. Jobs haben nicht die Fähigkeit, Anfragen zu bearbeiten oder auf einem Port zuzuhören. Das bedeutet, dass im Gegensatz zu Cloud Run-Services, Jobs keinen Webserver enthalten sollten. Stattdessen sollten Job-Container beendet werden, wenn sie fertig sind.
Enumeration
Privilege Escalation
Auf der folgenden Seite können Sie überprüfen, wie Sie Cloud Run-Berechtigungen missbrauchen, um Privilegien zu eskalieren:
GCP - Run PrivescUnauthenticated Access
GCP - Cloud Run Unauthenticated EnumPost Exploitation
GCP - Cloud Run Post ExploitationPersistence
GCP - Cloud Run PersistenceReferences
Last updated