GCP - IAM Post Exploitation

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

IAM

You can find further information about IAM in:

GCP - IAM, Principals & Org Policies Enum

Conceder acceso a la consola de administración

El acceso a la GCP management console se proporciona a cuentas de usuario, no a cuentas de servicio. Para iniciar sesión en la interfaz web, puedes otorgar acceso a una cuenta de Google que controles. Esto puede ser una cuenta genérica “@gmail.com”, no tiene que ser miembro de la organización objetivo.

Sin embargo, para conceder el rol primitivo de Owner a una cuenta genérica “@gmail.com”, necesitarás usar la consola web. gcloud devolverá un error si intentas otorgarle un permiso por encima de Editor.

Puedes usar el siguiente comando para conceder a un usuario el rol primitivo Editor en tu proyecto existente:

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

Si tuviste éxito aquí, intenta acceder a la interfaz web y explorar desde allí.

Esto es el nivel más alto que puedes asignar usando la herramienta gcloud.

Eliminar componentes de IAM iam.*.delete

Los permisos iam.*.delete (p. ej., iam.roles.delete, iam.serviceAccountApiKeyBindings.delete, iam.serviceAccountKeys.delete, etc.) permiten que una identidad elimine componentes críticos de IAM como roles personalizados, vínculos de API keys, claves de cuentas de servicio y las propias cuentas de servicio. En manos de un atacante, esto hace posible eliminar mecanismos legítimos de acceso para provocar una denegación de servicio.

Para llevar a cabo tal ataque, es posible, por ejemplo, eliminar roles usando:

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

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

Los permisos iam.serviceAccountKeys.disable y iam.serviceAccounts.disable permiten desactivar claves activas de cuentas de servicio o las cuentas de servicio; en manos de un atacante esto podría utilizarse para interrumpir operaciones, provocar denegación de servicio o dificultar la respuesta a incidentes al impedir el uso de credenciales legítimas.

Para desactivar una cuenta de servicio, puedes usar el siguiente comando:

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

Para deshabilitar las keys de un Service Account, puedes usar el siguiente comando:

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

iam.*.undelete

Los permisos iam.*.undelete permiten restaurar elementos previamente eliminados, tales como vinculaciones de claves API, roles personalizados o cuentas de servicio. En manos de un atacante, esto puede usarse para revertir acciones defensivas (recuperar accesos eliminados), restablecer vectores de compromiso eliminados para mantener persistencia o evadir esfuerzos de remediación, complicando la contención del incidente.

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

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks