GCP - Compute Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Per ulteriori informazioni su Compute e VPC (rete) in GCP controlla:
Nota che per eseguire tutti gli attacchi di escalation dei privilegi che richiedono di modificare i metadati dell'istanza (come aggiungere nuovi utenti e chiavi SSH) è necessario avere permessi actAs
sul SA allegato all'istanza, anche se il SA è già allegato!
compute.projects.setCommonInstanceMetadata
Con quel permesso puoi modificare le informazioni di metadata di un'istanza e cambiare le chiavi autorizzate di un utente, o creare un nuovo utente con permessi sudo. Pertanto, sarai in grado di eseguire via SSH in qualsiasi istanza VM e rubare il GCP Service Account con cui l'istanza sta funzionando. Limitazioni:
Nota che i GCP Service Accounts in esecuzione nelle istanze VM per impostazione predefinita hanno un ambito molto limitato
Dovrai essere in grado di contattare il server SSH per accedere
Per ulteriori informazioni su come sfruttare questo permesso controlla:
Puoi anche eseguire questo attacco aggiungendo un nuovo script di avvio e riavviando l'istanza:
compute.instances.setMetadata
Questo permesso fornisce i stessi privilegi del permesso precedente ma su istanze specifiche invece che su un intero progetto. Gli stessi exploit e limitazioni della sezione precedente si applicano.
compute.instances.setIamPolicy
Questo tipo di permesso ti permetterà di assegnarti un ruolo con i permessi precedenti e di elevare i privilegi abusando di essi.
compute.instances.osLogin
Se OSLogin è abilitato nell'istanza, con questo permesso puoi semplicemente eseguire gcloud compute ssh [INSTANCE]
e connetterti all'istanza. Non avrai privilegi di root all'interno dell'istanza.
Per effettuare correttamente il login con questo permesso all'interno dell'istanza VM, devi avere il permesso iam.serviceAccounts.actAs
sul SA associato alla VM.
compute.instances.osAdminLogin
Se OSLogin è abilitato nell'istanza, con questo permesso puoi semplicemente eseguire gcloud compute ssh [INSTANCE]
e connetterti all'istanza. Avrai privilegi di root all'interno dell'istanza.
Per effettuare correttamente il login con questo permesso all'interno dell'istanza VM, devi avere il permesso iam.serviceAccounts.actAs
sul SA associato alla VM.
compute.instances.create
,iam.serviceAccounts.actAs, compute.disks.create
, compute.instances.create
, compute.instances.setMetadata
, compute.instances.setServiceAccount
, compute.subnetworks.use
, compute.subnetworks.useExternalIp
È possibile creare una macchina virtuale con un Service Account assegnato e rubare il token dell'account di servizio accedendo ai metadati per elevare i privilegi su di esso.
Lo script di exploit per questo metodo può essere trovato qui.
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
Se hai i permessi osconfig.patchDeployments.create
o osconfig.patchJobs.exec
puoi creare un lavoro di patch o distribuzione. Questo ti permetterà di muoverti lateralmente nell'ambiente e ottenere l'esecuzione di codice su tutte le istanze di calcolo all'interno di un progetto.
Nota che al momento non hai bisogno del permesso actAs
sul SA associato all'istanza.
Se vuoi sfruttare manualmente questo, dovrai creare o un lavoro di patch o una distribuzione. Per un lavoro di patch esegui:
Per distribuire un'implementazione di patch:
Lo strumento patchy potrebbe essere stato utilizzato in passato per sfruttare questa misconfigurazione (ma ora non funziona).
Un attaccante potrebbe anche abusare di questo per la persistenza.
compute.machineImages.setIamPolicy
Concediti permessi extra per l'immagine di calcolo.
compute.snapshots.setIamPolicy
Concediti permessi extra per uno snapshot del disco.
compute.disks.setIamPolicy
Concediti permessi extra per un disco.
Seguendo questo link troverai alcune idee per provare a bypassare gli access scopes.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)