GCP - Compute Privesc
Računari
Za više informacija o Računarima i VPC (mreži) u GCP-u proverite:
pageGCP - Compute Enumcompute.projects.setCommonInstanceMetadata
compute.projects.setCommonInstanceMetadata
Sa ovom dozvolom možete izmeniti informacije o metapodacima instance i promeniti ovlašćene ključeve korisnika, ili kreirati novog korisnika sa sudo ovlašćenjima. Na taj način, moći ćete da se povežete putem SSH-a na bilo koju VM instancu i ukrasti GCP Service Account sa kojim se instanca izvršava. Ograničenja:
Imajte na umu da GCP Service Accounts koji se izvršavaju u VM instancama podrazumevano imaju veoma ograničen opseg
Morate biti u mogućnosti da kontaktirate SSH server da biste se prijavili
Za više informacija o tome kako iskoristiti ovu dozvolu proverite:
pageGCP - Add Custom SSH Metadatacompute.instances.setMetadata
compute.instances.setMetadata
Ova dozvola daje iste privilegije kao i prethodna dozvola ali nad specifičnim instancama umesto celog projekta. Isti eksploiti i ograničenja kao i za prethodni deo se primenjuju.
compute.instances.setIamPolicy
compute.instances.setIamPolicy
Ova vrsta dozvole će vam omogućiti da dodelite sebi ulogu sa prethodnim privilegijama i eskalirate privilegije zloupotrebom njih.
compute.instances.osLogin
compute.instances.osLogin
Ako je OSLogin omogućen na instanci, sa ovom dozvolom možete jednostavno pokrenuti gcloud compute ssh [INSTANCA]
i povezati se sa instancom. Nećete imati root privilegije unutar instance.
compute.instances.osAdminLogin
compute.instances.osAdminLogin
Ako je OSLogin omogućen na instanci, sa ovom dozvolom možete jednostavno pokrenuti gcloud compute ssh [INSTANCA]
i povezati se sa instancom. Imateće root privilegije unutar instance.
compute.instances.create
,iam.serviceAccounts.actAs, compute.disks.create
, compute.instances.create
, compute.instances.setMetadata
, compute.instances.setServiceAccount
, compute.subnetworks.use
, compute.subnetworks.useExternalIp
compute.instances.create
,iam.serviceAccounts.actAs, compute.disks.create
, compute.instances.create
, compute.instances.setMetadata
, compute.instances.setServiceAccount
, compute.subnetworks.use
, compute.subnetworks.useExternalIp
Moguće je kreirati virtuelnu mašinu sa dodeljenim Service Account-om i ukrasti token servisnog naloga pristupajući metapodacima kako biste eskalirali privilegije na njega.
Skripta za eksploataciju ovog metoda može se pronaći ovde.
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
Ako imate dozvole osconfig.patchDeployments.create
ili osconfig.patchJobs.exec
možete kreirati posao ili implementaciju zakrpe. Ovo će vam omogućiti da se lateralno krećete u okruženju i steknete izvršenje koda na svim računarskim instancama unutar projekta.
Ako želite ručno iskoristiti ovo, moraćete kreirati ili posao za zakrpu ili implementaciju za pokretanje posla za zakrpu:
gcloud compute os-config patch-jobs execute --file=patch.json
Za implementaciju zakrpe:
gcloud compute os-config patch-deployments create my-update --file=patch.json
Automatizovani alati poput patchy postoje kako bi detektovali labave dozvole i automatski se kretali lateralno.
Takođe možete zloupotrebiti ovo za perzistenciju.
compute.machineImages.setIamPolicy
compute.machineImages.setIamPolicy
Dodelite sebi dodatne privilegije za sliku računara.
compute.snapshots.setIamPolicy
compute.snapshots.setIamPolicy
Dodelite sebi dodatne privilegije za snimak diska.
compute.disks.setIamPolicy
compute.disks.setIamPolicy
Dodelite sebi dodatne privilegije za disk.
Bypass Access Scopes
Klikom na ovaj link možete pronaći neke ideje kako probati da zaobiđete pristupne opsege.
Lokalna eskalacija privilegija na GCP računarskoj instanci
pageGCP - local privilege escalation ssh pivotingReference
Last updated