GCP - Privilege Escalation

Impara e pratica l'Hacking su AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica l'Hacking su GCP: HackTricks Training GCP Red Team Expert (GRTE)

Sostieni HackTricks

Introduzione all'Escalatione dei Privilegi in GCP

GCP, come qualsiasi altro cloud, ha alcuni principali: utenti, gruppi e account di servizio, e alcune risorse come motore di calcolo, funzioni cloud... Quindi, tramite ruoli, vengono concessi permessi a quei 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, ed è ciò che viene chiamato escalatione dei privilegi (anche, lo sfruttamento delle vulnerabilità per ottenere più permessi).

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

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

  • Privesc sulla risorsa: Questo ti permetterà di ottenere più permessi sulla risorsa specifica. es.: puoi abusare del permesso setIamPolicy su cloudfunctions per permetterti 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, accedere alla risorsa e rubare il token SA. Pertanto, ciò permetterà di scalare a un principale tramite un'escalatione della risorsa. Questo è successo in diverse risorse in passato, ma ora è meno frequente (ma può ancora accadere).

Ovviamente, le tecniche di escalatione 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 scalare nelle risorse potrebbe darti anche accesso a informazioni sensibili o persino a altri principali (forse tramite la lettura di un segreto che contiene un token di un SA).

È importante notare anche che nei Service Account di GCP sono sia principali che permessi, quindi l'escalatione 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 sfruttati tramite l'API.

Permessi per la Metodologia di Escalatione 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 access scopes

I token di SA trapelati dal servizio di metadati di GCP hanno access scopes. Questi sono restrizioni 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 il SA ha più permessi in IAM.

Non c'è un modo diretto per aggirare questi permessi, ma potresti sempre provare a cercare nuove credenziali nell'host compromesso, trovare la chiave di servizio per generare un token OAuth senza restrizioni o passare a un diverso VM meno restrittivo.

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

Il modo migliore per aggirare questa restrizione è trovare nuove credenziali nell'host compromesso, trovare la chiave di servizio per generare un token OAuth senza restrizioni o compromettere un diverso 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 tuoi privilegi in AWS è avere abbastanza autorizzazioni per poter, in qualche modo, accedere ad altri privilegi di account/utenti/gruppi di servizio. Concatenare le escalation fino ad ottenere l'accesso amministrativo sull'organizzazione.

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

Le sottopagine di questa sezione sono ordinate per servizi. Su ciascun servizio puoi trovare diversi modi per aumentare i privilegi sui servizi.

Abusare di GCP per aumentare i privilegi localmente

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

GCP - local privilege escalation ssh pivoting

Riferimenti

Impara e pratica l'Hacking su AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica l'Hacking su GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks

Last updated