GCP - Storage Privesc

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Berging

Basiese Inligting:

pageGCP - Storage Enum

storage.objects.get

Hierdie toestemming stel jou in staat om lêers wat binne Cloud Storage gestoor is af te laai. Dit kan potensieel lei tot bevoorregting omdat in sommige gevalle sensitiewe inligting daar gestoor word. Verder stoor sommige GCP-dienste hul inligting in emmers:

  • GCP Composer: Wanneer jy 'n Composer-omgewing skep, sal die kode van al die DAG's binne 'n emmer gestoor word. Hierdie take kan interessante inligting binne hul kode bevat.

  • GCR (Container Registry): Die beeld van die houers word binne emmers gestoor, wat beteken dat as jy die emmers kan lees, sal jy die beelde kan aflaai en soek na lekke en/of bronkode.

storage.objects.setIamPolicy

Jy kan jouself toestemming gee om enige van die vorige scenario's in hierdie afdeling te misbruik.

storage.buckets.setIamPolicy

Vir 'n voorbeeld van hoe om toestemmings met hierdie toestemming te wysig, kyk na hierdie bladsy:

pageGCP - Public Buckets Privilege Escalation

storage.hmacKeys.create

Cloud Storage se "interoperabiliteit" funksie, ontwerp vir kruiswolk-interaksies soos met AWS S3, behels die skepping van HMAC-sleutels vir Diensrekeninge en gebruikers. 'n Aanvaller kan dit uitbuit deur 'n HMAC-sleutel te genereer vir 'n Diensrekening met verhoogde bevoorregting, en sodoende bevoorregting binne Cloud Storage te verhoog. Terwyl gebruikersgekoppelde HMAC-sleutels slegs ophaalbaar is via die webkonsol, bly beide die toegangs- en geheime sleutels voortdurend toeganklik, wat potensiële rugsteun-toegang tot berging moontlik maak. Daarenteen is Diensrekening-gekoppelde HMAC-sleutels API-toeganklik, maar hul toegangs- en geheime sleutels is nie ophaalbaar na skepping nie, wat 'n laag van kompleksiteit byvoeg vir voortdurende toegang.

# Create key
gsutil hmac create <sa-email>

# Configure gsutil to use it
gsutil config -a

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

'n Ander uitbuitingskrips vir hierdie metode kan hier gevind word.

storage.objects.create, storage.objects.delete = Skryfregte vir Berging

Om 'n nuwe voorwerp in 'n emmer te skep, het jy storage.objects.create nodig en, volgens die dokumentasie, het jy ook storage.objects.delete nodig om 'n bestaande voorwerp te verander.

'n Baie gewone uitbuiting van emmers waarin jy in die wolk kan skryf, is in die geval waar die emmer webbedienerlêers stoor, jy mag dalk in staat wees om nuwe kode te stoor wat deur die webtoepassing gebruik sal word.

Komponis

Komponis is Apache Airflow wat binne GCP bestuur word. Dit het verskeie interessante kenmerke:

  • Dit loop binne 'n GKE-tros, sodat die SA wat deur die tros gebruik word, toeganklik is deur die kode wat binne Komponis loop.

  • Dit stoor die kode in 'n emmer, daarom sal enigiemand met skryftoegang tot daardie emmer in staat wees om 'n DGA-kode te verander/toe te voeg (die kode wat Apache Airflow sal uitvoer). As jy dus skryftoegang het tot die emmer wat Komponis gebruik om die kode te stoor, kan jy privesc na die SA wat in die GKE-tros loop.

Wolksfunksies

  • Wolksfunksiekode word in Berging gestoor, sodat dit moontlik is om arbitrêre kode uit te voer deur dit te oorskryf.

App Engine

  • App Engine-bronkode word in emmers gestoor, deur die kode te oorskryf, kan dit moontlik wees om arbitrêre kode uit te voer. DIT IS NIE MOONTLIK NIE.

  • Dit lyk asof houerlae in die emmer gestoor word, dalk deur dit te verander?

GCR

  • Google Container Registry stoor die beelde binne emmers, as jy hierdie emmers kan skryf, mag jy moontlik lateraal kan beweeg na waar hierdie emmers uitgevoer word.

  • Die emmer wat deur GCR gebruik word, sal 'n URL hê soortgelyk aan gs://<eu/usa/asia/nothing>.artifacts.<project>.appspot.com (Die topvlak-subdomeine word hier gespesifiseer hier).

Verwysings

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated