GCP - IAM Post Exploitation

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

IAM

Vous pouvez trouver plus d’informations sur IAM dans :

GCP - IAM, Principals & Org Policies Enum

Granting access to management console

Access to the GCP management console est fourni aux comptes utilisateur, pas aux service accounts. Pour vous connecter Ă  l’interface web, vous pouvez accorder l’accĂšs Ă  un Google account que vous contrĂŽlez. Il peut s’agir d’un compte gĂ©nĂ©rique “@gmail.com”, il n’a pas besoin d’ĂȘtre membre de l’organisation cible.

Cependant, pour accorder le rĂŽle primitif Owner Ă  un compte gĂ©nĂ©rique “@gmail.com”, vous devrez utiliser la console web. gcloud renverra une erreur si vous essayez de lui accorder une permission supĂ©rieure Ă  Editor.

Vous pouvez utiliser la commande suivante pour accorder Ă  un utilisateur le rĂŽle primitif Editor sur votre projet existant :

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

Si vous avez rĂ©ussi ici, essayez d’accĂ©der Ă  l’interface web et d’explorer depuis celle-ci.

C’est le niveau le plus Ă©levĂ© que vous pouvez assigner en utilisant l’outil gcloud.

Supprimer des composants IAM iam.*.delete

Les permissions iam.*.delete (par ex., iam.roles.delete, iam.serviceAccountApiKeyBindings.delete, iam.serviceAccountKeys.delete, etc.) permettent Ă  une identitĂ© de supprimer des composants IAM critiques tels que les rĂŽles personnalisĂ©s, les liaisons de clĂ©s API, les clĂ©s de comptes de service, et les comptes de service eux-mĂȘmes. Entre les mains d’un attaquant, cela permet de supprimer des mĂ©canismes d’accĂšs lĂ©gitimes afin de provoquer un dĂ©ni de service.

Pour mener une telle attaque, il est possible, par exemple, de supprimer des rĂŽles en utilisant :

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

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

Les permissions iam.serviceAccountKeys.disable et iam.serviceAccounts.disable permettent de dĂ©sactiver des clĂ©s actives de Service Account ou des Service Accounts, ce qui, entre les mains d’un attaquant, peut ĂȘtre utilisĂ© pour perturber les opĂ©rations, provoquer un dĂ©ni de service ou entraver la rĂ©ponse Ă  un incident en empĂȘchant l’utilisation de credentials lĂ©gitimes.

Pour désactiver un Service Account, vous pouvez utiliser la commande suivante :

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

Pour dĂ©sactiver les clĂ©s d’un Service Account, vous pouvez utiliser la commande suivante :

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

iam.*.undelete

Les permissions iam.*.undelete permettent de restaurer des Ă©lĂ©ments prĂ©cĂ©demment supprimĂ©s tels que API key bindings, custom roles ou service accounts. Entre les mains d’un attaquant, cela peut ĂȘtre utilisĂ© pour inverser des actions dĂ©fensives (rĂ©cupĂ©rer des accĂšs supprimĂ©s), rĂ©tablir des vecteurs de compromission supprimĂ©s afin de maintenir la persistance, ou Ă©chapper aux efforts de remĂ©diation, compliquant le confinement de l’incident.

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

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks