Files
hacktricks-cloud/src/pentesting-cloud/gcp-security/gcp-services/gcp-cloud-run-enum.md

4.8 KiB
Raw Blame History

GCP - Cloud Run Enum

{{#include ../../../banners/hacktricks-training.md}}

Cloud Run

Cloud Run is 'n serverless bestuurde rekenaarplatform wat jou toelaat om houers direk bo-op Google se skaalbare infrastruktuur te hardloop.

Jy kan jou houer hardloop of as jy Go, Node.js, Python, Java, .NET Core, of Ruby gebruik, kan jy die source-based deployment opsie gebruik wat die houer vir jou bou.

Google het Cloud Run gebou om goed saam te werk met ander dienste op Google Cloud, sodat jy volwaardige toepassings kan bou.

Dienste en werke

Op Cloud Run kan jou kode of voortdurend as 'n diens of as 'n werk hardloop. Beide dienste en werke hardloop in dieselfde omgewing en kan dieselfde integrasies met ander dienste op Google Cloud gebruik.

  • Cloud Run dienste. Gebruik om kode te hardloop wat op webversoeke of gebeurtenisse reageer.
  • Cloud Run werke. Gebruik om kode te hardloop wat werk (n werk) uitvoer en stop wanneer die werk klaar is.

Cloud Run Diens

Google Cloud Run is 'n ander serverless aanbod waar jy ook na omgewingsveranderlikes kan soek. Cloud Run skep 'n klein webbediener, wat standaard op poort 8080 binne die houer hardloop, wat wag vir 'n HTTP GET-versoek. Wanneer die versoek ontvang word, word 'n werk uitgevoer en die werklog word via 'n HTTP-respons uitgevoer.

Relevante besonderhede

  • Deur standaard, is die toegang tot die webbediener publiek, maar dit kan ook beperk word tot interne verkeer (VPC...)
    Boonop kan die verifikasie om die webbediener te kontak alle toelaat of verifikasie via IAM vereis.
  • Deur standaard, gebruik die versleuteling 'n Google bestuurde sleutel, maar 'n CMEK (Customer Managed Encryption Key) van KMS kan ook gekoop word.
  • Deur standaard, is die diensrekening wat gebruik word die Compute Engine standaard een wat Editor toegang oor die projek het en dit het die bereik cloud-platform.
  • Dit is moontlik om duidelike teks omgewingsveranderlikes vir die uitvoering te definieer, en selfs cloud geheime te monteer of cloud geheime aan omgewingsveranderlikes toe te voeg.
  • Dit is ook moontlik om verbindinge met Cloud SQL toe te voeg en 'n lêerstelsel te monteer.
  • Die URL's van die ontplooide dienste is soortgelyk aan https://<svc-name>-<random>.a.run.app
  • 'n Run Diens kan meer as 1 weergawe of hersiening hê, en verkeer verdeel onder verskeie hersienings.

Enumerasie

# 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 Werk

Cloud Run werk is 'n beter pas vir houers wat tot voltooiing loop en nie versoeke bedien nie. Werk het nie die vermoë om versoeke te bedien of op 'n poort te luister nie. Dit beteken dat, in teenstelling met Cloud Run dienste, werk nie 'n webbediener moet saamvoeg nie. In plaas daarvan, moet werkhouers afsluit wanneer hulle klaar is.

Enumerasie

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>

Privilege Escalation

In die volgende bladsy kan jy kyk hoe om cloud run toestemmings te misbruik om voorregte te verhoog:

{{#ref}} ../gcp-privilege-escalation/gcp-run-privesc.md {{#endref}}

Unauthenticated Access

{{#ref}} ../gcp-unauthenticated-enum-and-access/gcp-cloud-run-unauthenticated-enum.md {{#endref}}

Post Exploitation

{{#ref}} ../gcp-post-exploitation/gcp-cloud-run-post-exploitation.md {{#endref}}

Persistence

{{#ref}} ../gcp-persistence/gcp-cloud-run-persistence.md {{#endref}}

References

{{#include ../../../banners/hacktricks-training.md}}