GCP - IAM Post Exploitation

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir 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 et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks