GCP - Privilege Escalation

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

Altri modi per supportare HackTricks:

Introduzione all'escalation dei privilegi in GCP

GCP, come qualsiasi altro cloud, ha alcuni principali: utenti, gruppi e account di servizio, e alcune risorse come compute engine, funzioni cloud... Quindi, tramite ruoli, vengono assegnati permessi a questi principali sulle risorse. Questo è il modo per specificare i permessi che un principale ha su una risorsa in GCP. Ci sono determinati permessi che consentiranno a un utente di ottenere ancora più permessi sulla risorsa o su risorse di terze parti, ed è ciò che viene chiamato escalation dei privilegi (inoltre, lo sfruttamento delle vulnerabilità per ottenere più permessi).

Pertanto, vorrei separare le tecniche di escalation dei privilegi di GCP in 2 gruppi:

  • Privesc a un principale: Ciò ti permetterà di impersonare un altro principale, e quindi agire come se fossi lui con tutti i suoi permessi. Ad esempio: Abuso di getAccessToken per impersonare un account di servizio.

  • Privesc sulla risorsa: Ciò ti permetterà di ottenere più permessi sulla risorsa specifica. Ad esempio: puoi abusare del permesso setIamPolicy su cloudfunctions per consentirti di attivare la funzione.

  • Nota che alcuni permessi delle risorse ti permetteranno anche di associare un account di servizio arbitrario alla risorsa. Ciò significa che sarai in grado di avviare una risorsa con un SA, entrare nella risorsa e rubare il token SA. Pertanto, ciò consentirà di scalare a un principale tramite un'escalation delle risorse. Questo è successo in diverse risorse in passato, ma ora è meno frequente (ma può ancora accadere).

Ovviamente, le tecniche di escalation dei privilegi più interessanti sono quelle del secondo gruppo perché ti permetteranno di ottenere più privilegi al di fuori delle risorse su cui hai già alcuni privilegi. Tuttavia, nota che l'escalation nelle risorse potrebbe anche darti accesso a informazioni sensibili o persino ad altri principali (forse leggendo un segreto che contiene un token di un SA).

È importante notare anche che in GCP gli account di servizio sono sia principali che permessi, quindi l'escalation dei privilegi in un SA ti permetterà anche di impersonarlo.

I permessi tra parentesi indicano i permessi necessari per sfruttare la vulnerabilità con gcloud. Potrebbero non essere necessari se viene sfruttata tramite l'API.

Permessi per la metodologia di escalation dei privilegi

Ecco come testo specifici permessi per eseguire azioni specifiche all'interno di GCP.

  1. Aggiungi in tests/ il nuovo script

Bypassare gli access scopes

I token di SA trapelati dal servizio di metadati di GCP hanno access scopes. Questi sono vincoli sui permessi che il token ha. Ad esempio, se il token ha lo scope https://www.googleapis.com/auth/cloud-platform, avrà accesso completo a tutti i servizi GCP. Tuttavia, se il token ha lo scope https://www.googleapis.com/auth/cloud-platform.read-only, avrà solo accesso in sola lettura a tutti i servizi GCP anche se l'account SA ha più permessi in IAM.

Non esiste un modo diretto per bypassare questi permessi, ma puoi sempre provare a cercare nuove credenziali nell'host compromesso, trovare la chiave di servizio per generare un token OAuth senza restrizioni o passare a una diversa VM meno restrittiva.

Quando vengono utilizzati access scopes, il token OAuth generato per l'istanza di calcolo (VM) avrà una limitazione dello scope inclusa. Tuttavia, potresti essere in grado di bypassare questa limitazione e sfruttare i permessi dell'account compromesso.

Il modo migliore per bypassare questa restrizione è trovare nuove credenziali nell'host compromesso, trovare la chiave di servizio per generare un token OAuth senza restrizioni o compromettere una diversa VM con un SA meno restrittivo.

Controlla SA con chiavi generate con:

for i in $(gcloud iam service-accounts list --format="table[no-heading](email)"); do
echo "Looking for keys for $i:"
gcloud iam service-accounts keys list --iam-account $i
done

Tecniche di Escalation dei Privilegi

Il modo per aumentare i privilegi in GCP è avere abbastanza autorizzazioni per poter, in qualche modo, accedere ai privilegi di altri account utente/gruppi. Concatenare le escalation fino ad ottenere l'accesso amministrativo sull'organizzazione.

GCP ha centinaia (se non migliaia) di autorizzazioni che possono essere concesse a un'entità. In questo libro puoi trovare tutte le autorizzazioni che conosco che puoi sfruttare per aumentare i privilegi, ma se conosci qualche percorso non menzionato qui, per favore condividilo.

Puoi trovare tutti i percorsi di escalation dei privilegi suddivisi per servizi:

Sfruttare GCP per aumentare i privilegi localmente

Se ti trovi all'interno di una macchina in GCP, potresti essere in grado di sfruttare le autorizzazioni per aumentare i privilegi anche localmente:

pageGCP - local privilege escalation ssh pivoting

Riferimenti

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

Altri modi per supportare HackTricks:

Last updated