GCP - Compute Privesc

Impara l'hacking su AWS da zero a esperto con htARTE (Esperto Red Team AWS di HackTricks)!

Altri modi per supportare HackTricks:

Compute

Per ulteriori informazioni su Compute e VPC (rete) in GCP controlla:

pageGCP - Compute Enum

compute.projects.setCommonInstanceMetadata

Con tale permesso puoi modificare le informazioni del metadata di un'istanza e cambiare le chiavi autorizzate di un utente, o creare un nuovo utente con permessi sudo. Di conseguenza, sarai in grado di eseguire via SSH in qualsiasi istanza VM e rubare l'Account di Servizio GCP con cui l'istanza sta funzionando. Limitazioni:

  • Nota che gli Account di Servizio GCP in esecuzione nelle istanze VM di default hanno uno scope molto limitato

  • Avrai bisogno di essere in grado di contattare il server SSH per effettuare il login

Per ulteriori informazioni su come sfruttare questo permesso controlla:

pageGCP - Add Custom SSH Metadata

compute.instances.setMetadata

Questo permesso conferisce gli stessi privilegi del permesso precedente ma su istanze specifiche invece che su un intero progetto. Si applicano gli stessi exploit e limitazioni della sezione precedente.

compute.instances.setIamPolicy

Questo tipo di permesso ti permetterà di concederti un ruolo con i permessi precedenti ed elevare i privilegi abusandone.

compute.instances.osLogin

Se OSLogin è abilitato nell'istanza, con questo permesso puoi semplicemente eseguire gcloud compute ssh [ISTANZA] e connetterti all'istanza. Non avrai privilegi di root all'interno dell'istanza.

compute.instances.osAdminLogin

Se OSLogin è abilitato nell'istanza, con questo permesso puoi semplicemente eseguire gcloud compute ssh [ISTANZA] e connetterti all'istanza. Avrai i privilegi di root all'interno dell'istanza.

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 Account di Servizio assegnato e rubare il token dell'account di servizio accedendo al metadata per elevare i privilegi ad 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 deployment. Questo ti consentirà di muoverti lateralmente nell'ambiente e ottenere l'esecuzione del codice su tutte le istanze di calcolo all'interno di un progetto.

Se vuoi sfruttarlo manualmente dovrai creare un lavoro di patch o deployment per un lavoro di patch esegui:

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

Per distribuire un deployment di patch:

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

Esistono strumenti automatizzati come patchy per rilevare permessi laschi e muoversi lateralmente in modo automatico.

Puoi anche abusarne per la persistenza.

compute.machineImages.setIamPolicy

Concediti permessi extra per l'immagine del computer.

compute.snapshots.setIamPolicy

Concediti permessi extra per uno snapshot del disco.

compute.disks.setIamPolicy

Concediti permessi extra per un disco.

Bypass delle Scopi di Accesso

Seguendo questo link troverai alcune idee per cercare di aggirare gli scope di accesso.

Escalazione Locale dei Privilegi nell'istanza di Calcolo GCP

pageGCP - local privilege escalation ssh pivoting

Riferimenti

Impara l'hacking su AWS da zero a esperto con htARTE (Esperto Red Team AWS di HackTricks)!

Altri modi per supportare HackTricks:

Last updated