GCP - IAM Post Exploitation

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

IAM

You can find further information about IAM in:

GCP - IAM, Principals & Org Policies Enum

Concedere l’accesso alla console di gestione

L’accesso alla GCP management console è fornito agli account utente, non agli account di servizio. Per effettuare il login all’interfaccia web, puoi concedere l’accesso a un account Google che controlli. Può essere un account generico “@gmail.com”, non è necessario che sia membro dell’organizzazione bersaglio.

Per concedere il ruolo primitivo di Owner a un account generico “@gmail.com”, però, dovrai utilizzare la console web. gcloud genererà un errore se provi a concedergli un permesso superiore a Editor.

Puoi usare il seguente comando per concedere a un utente il ruolo primitivo di Editor al tuo progetto esistente:

gcloud projects add-iam-policy-binding [PROJECT] --member user:[EMAIL] --role roles/editor

Se ci sei riuscito qui, prova a accedere all’interfaccia web ed esplorare da lì.

Questo è il livello più alto che puoi assegnare usando lo strumento gcloud.

Eliminare componenti IAM iam.*.delete

Le autorizzazioni iam.*.delete (ad es., iam.roles.delete, iam.serviceAccountApiKeyBindings.delete, iam.serviceAccountKeys.delete, etc.) permettono a un’identità di eliminare componenti IAM critici come custom roles, API key bindings, service account keys e gli stessi service accounts. Nelle mani di un attacker, questo rende possibile rimuovere meccanismi di accesso legittimi al fine di causare un denial of service.

Per eseguire un tale attacco, è possibile, ad esempio, eliminare i roles usando:

gcloud iam roles delete <ROLE_ID> --project=<PROJECT_ID>

iam.serviceAccountKeys.disable || iam.serviceAccounts.disable

Le autorizzazioni iam.serviceAccountKeys.disable e iam.serviceAccounts.disable consentono di disabilitare chiavi attive di service account o i service account stessi, che nelle mani di un attaccante potrebbero essere usate per interrompere le operazioni, causare denial of service o ostacolare la risposta agli incidenti impedendo l’uso di credenziali legittime.

Per disabilitare un service account, puoi usare il seguente comando:

gcloud iam service-accounts disable <SA_EMAIL> --project=<PROJECT_ID>

Per disabilitare le chiavi di un Service Account, puoi usare il seguente comando:

gcloud iam service-accounts keys disable <KEY_ID> --iam-account=<SA_EMAIL>

iam.*.undelete

Le autorizzazioni iam.*.undelete permettono di ripristinare elementi precedentemente eliminati, come API key bindings, custom roles o service accounts. Nelle mani di un attacker, questo può essere usato per reverse defensive actions (recover removed access), re-establish deleted compromise vectors to maintain persistence, o evadere remediation efforts, complicando incident containment.

gcloud iam service-accounts undelete "${SA_ID}" --project="${PROJECT}"

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks