GCP - Compute Privesc
Računar (Compute)
Za više informacija o Računaru i VPC (mreži) u GCP-u proverite:
GCP - Compute EnumImajte na umu da za izvođenje svih napada eskalacije privilegija koji zahtevaju izmenu metapodataka instance (kao dodavanje novih korisnika i SSH ključeva) potrebno je da imate dozvole za actAs
nad SA vezanim za instancu, čak i ako je SA već vezan!
compute.projects.setCommonInstanceMetadata
compute.projects.setCommonInstanceMetadata
Sa tom dozvolom možete modifikovati informacije o metapodacima instance i promeniti ovlašćene ključeve korisnika, ili kreirati novog korisnika sa sudo privilegijama. Na taj način, moći ćete da se prijavite putem SSH-a na bilo koju VM instancu i ukradete 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 za prijavu
Za više informacija o tome kako iskoristiti ovu dozvolu proverite:
GCP - Add Custom SSH MetadataTakođe možete izvesti ovaj napad dodavanjem novog startup skripta i restartovanjem instance:
compute.instances.setMetadata
compute.instances.setMetadata
Ovo ovlašćenje daje iste privilegije kao i prethodno ovlašćenje ali nad specifičnim instancama umesto celog projekta. Isti eksploiti i ograničenja kao i za prethodni deo važe.
compute.instances.setIamPolicy
compute.instances.setIamPolicy
Ovo ovlašćenje će vam omogućiti da dodelite sebi ulogu sa prethodnim privilegijama i eskalirate privilegije zloupotrebom istih.
compute.instances.osLogin
compute.instances.osLogin
Ako je OSLogin omogućen na instanci, sa ovim ovlašćenjem 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 ovim ovlašćenjem 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 ovlašćenja 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 ostvarite izvršenje koda na svim računarskim instancama unutar projekta.
Ako želite ručno eksploatisati 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 slaba ovlašćenja i automatski se kretali lateralno.
Možete takođe zloupotrebiti ovo za postojanost.
compute.machineImages.setIamPolicy
compute.machineImages.setIamPolicy
Dodelite sebi dodatna ovlašćenja za sliku računara.
compute.snapshots.setIamPolicy
compute.snapshots.setIamPolicy
Dodelite sebi dodatna ovlašćenja za snimak diska.
compute.disks.setIamPolicy
compute.disks.setIamPolicy
Dodelite sebi dodatna ovlašćenja za disk.
Bypass Access Scopes
Prateći ovaj link možete pronaći neke ideje kako zaobići pristupne opsege.
Lokalna eskalacija privilegija u GCP računarskoj instanci
GCP - local privilege escalation ssh pivotingReference
Last updated