GCP - Cloud Run Enum

Reading time: 5 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Cloud Run

Cloud Run je serverless upravljana platforma za računanje koja vam omogućava da pokrećete kontejnere direktno na Googleovoj skalabilnoj infrastrukturi.

Možete pokrenuti svoj kontejner ili ako koristite Go, Node.js, Python, Java, .NET Core ili Ruby, možete koristiti opciju source-based deployment koja gradi kontejner za vas.

Google je izgradio Cloud Run da dobro funkcioniše zajedno sa drugim uslugama na Google Cloud-u, tako da možete graditi aplikacije sa punim funkcionalnostima.

Services and jobs

Na Cloud Run-u, vaš kod može da se izvršava kontinuirano kao usluga ili kao posao. I usluge i poslovi se izvršavaju u istom okruženju i mogu koristiti iste integracije sa drugim uslugama na Google Cloud-u.

  • Cloud Run usluge. Koriste se za pokretanje koda koji odgovara na web zahteve ili događaje.
  • Cloud Run poslovi. Koriste se za pokretanje koda koji obavlja posao (posao) i završava kada je posao gotov.

Cloud Run Service

Google Cloud Run je još jedna serverless ponuda gde možete pretraživati env varijable takođe. Cloud Run kreira mali web server, koji po default-u radi na portu 8080 unutar kontejnera, koji čeka na HTTP GET zahtev. Kada se zahtev primi, izvršava se posao i log posla se izlaz putem HTTP odgovora.

Relevant details

  • Po default-u, pristup web serveru je javan, ali može biti i ograničen na internu mrežu (VPC...)
    Pored toga, autentifikacija za kontaktiranje web servera može biti dozvoljena svima ili zahtevati autentifikaciju putem IAM.
  • Po default-u, enkripcija koristi Google upravljani ključ, ali se može izabrati i CMEK (Customer Managed Encryption Key) iz KMS.
  • Po default-u, servisni nalog koji se koristi je default nalog Compute Engine-a koji ima Editor pristup projektu i ima opseg cloud-platform.
  • Moguće je definisati clear-text environment variables za izvršavanje, i čak montirati cloud tajne ili dodati cloud tajne u environment variables.
  • Takođe je moguće dodati konekcije sa Cloud SQL i montirati fajl sistem.
  • URL-ovi usluga koje su implementirane su slični https://<svc-name>-<random>.a.run.app
  • Run Service može imati više od 1 verzije ili revizije, i podeliti saobraćaj među nekoliko revizija.

Enumeration

bash
# List services
gcloud run services list
gcloud run services list --platform=managed
gcloud run services list --platform=gke

# Get info of a service
gcloud run services describe --region <region> <svc-name>

# Get info of all the services together
gcloud run services list --format=yaml
gcloud run services list --platform=managed --format=json
gcloud run services list --platform=gke --format=json

# Get policy
gcloud run services get-iam-policy --region <region> <svc-name>

# Get revisions
gcloud run revisions list --region <region>
gcloud run revisions describe --region <region> <revision>

# Get domains
gcloud run domain-mappings list
gcloud run domain-mappings describe <name>

# Attempt to trigger a job unauthenticated
curl <url>

# Attempt to trigger a job with your current gcloud authorization
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" <url>

Cloud Run Jobs

Cloud Run poslovi su bolji izbor za kontejnere koji se izvršavaju do kraja i ne obrađuju zahteve. Poslovi nemaju mogućnost da obrađuju zahteve ili slušaju na portu. To znači da, za razliku od Cloud Run usluga, poslovi ne bi trebali da uključuju veb server. Umesto toga, kontejneri poslova treba da se zatvore kada završe.

Enumeration

bash
gcloud beta run jobs list
gcloud beta run jobs describe --region <region> <job-name>
gcloud beta run jobs get-iam-policy --region <region> <job-name>

Eskalacija privilegija

Na sledećoj stranici možete proveriti kako da zloupotrebite cloud run dozvole za eskalaciju privilegija:

GCP - Run Privesc

Neautentifikovani pristup

GCP - Cloud Run Unauthenticated Enum

Post eksploatacija

GCP - Cloud Run Post Exploitation

Postojanost

GCP - Cloud Run Persistence

Reference

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks