GCP - Privilege Escalation

Support 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, cloud functions… Poi, tramite ruoli, i permessi vengono concessi 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 permetteranno a un utente di ottenere ancora più permessi sulla risorsa o su risorse di terze parti, e questo è ciò che viene chiamato escalation dei privilegi (anche, lo sfruttamento delle vulnerabilità per ottenere più permessi).

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

  • Privesc a un principale: Questo ti permetterà di impersonare un altro principale, e quindi agire come esso con tutti i suoi permessi. e.g.: Abusare di getAccessToken per impersonare un account di servizio.

  • Privesc sulla risorsa: Questo ti permetterà di ottenere più permessi sulla risorsa specifica. e.g.: puoi abusare del permesso setIamPolicy su cloudfunctions per permetterti di attivare la funzione.

  • Nota che alcuni permessi delle risorse ti permetteranno anche di allegare un account di servizio arbitrario alla risorsa. Questo significa che sarai in grado di lanciare una risorsa con un SA, entrare nella risorsa e rubare il token SA. Pertanto, questo permetterà di escalare a un principale tramite un'escalation della risorsa. Questo è successo in diverse risorse in precedenza, 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 può darti anche 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 escalare i privilegi in un SA ti permetterà di impersonarlo anche.

I permessi tra parentesi indicano i permessi necessari per sfruttare la vulnerabilità con gcloud. Questi potrebbero non essere necessari se sfruttati tramite l'API.

Permessi per la Metodologia di Escalation dei Privilegi

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

  1. Aggiungi in tests/ il nuovo script

Bypassare gli ambiti di accesso

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

Non c'è 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 saltare a una VM diversa meno restrittiva.

Quando vengono utilizzati ambiti di accesso, il token OAuth che viene generato per l'istanza di calcolo (VM) avrà un limite di ambito incluso. Tuttavia, potresti essere in grado di bypassare questa limitazione e sfruttare i permessi che ha l'account compromesso.

Il modo migliore per bypassare questa restrizione è o trovare nuove credenziali nell'host compromesso, trovare la chiave di servizio per generare un token OAuth senza restrizioni o compromettere una VM diversa 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 elevare i tuoi privilegi in AWS è avere abbastanza permessi per poter, in qualche modo, accedere ai privilegi di altri account di servizio/utenti/gruppi. Collegare le escalation fino ad avere accesso admin sull'organizzazione.

GCP ha centinaia (se non migliaia) di permessi che possono essere concessi a un'entità. In questo libro puoi trovare tutti i permessi che conosco che puoi abusare per escalare privilegi, ma se conosci qualche percorso non menzionato qui, per favore condividilo.

Le sottopagine di questa sezione sono ordinate per servizi. Puoi trovare su ogni servizio diversi modi per escalare privilegi sui servizi.

Abusare di GCP per escalare privilegi localmente

Se sei all'interno di una macchina in GCP potresti essere in grado di abusare dei permessi per escalare privilegi anche localmente:

GCP - local privilege escalation ssh pivoting

Riferimenti

Support HackTricks

Last updated