AWS - IAM Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Para más información sobre IAM, consulta:
AWS - IAM, Identity Center & SSO Enumiam:CreatePolicyVersion
Otorga la capacidad de crear una nueva versión de política IAM, eludiendo la necesidad de permiso iam:SetDefaultPolicyVersion
al usar la bandera --set-as-default
. Esto permite definir permisos personalizados.
Exploit Command:
Impacto: Escalación de privilegios directamente al permitir cualquier acción en cualquier recurso.
iam:SetDefaultPolicyVersion
Permite cambiar la versión predeterminada de una política IAM a otra versión existente, lo que puede escalar privilegios si la nueva versión tiene más permisos.
Comando Bash:
Impacto: Escalación de privilegios indirecta al habilitar más permisos.
iam:CreateAccessKey
Permite crear un ID de clave de acceso y una clave de acceso secreta para otro usuario, lo que puede llevar a una posible escalación de privilegios.
Explotar:
Impacto: Escalación de privilegios directa al asumir los permisos extendidos de otro usuario.
iam:CreateLoginProfile
| iam:UpdateLoginProfile
Permite crear o actualizar un perfil de inicio de sesión, incluyendo la configuración de contraseñas para el inicio de sesión en la consola de AWS, lo que lleva a una escalación de privilegios directa.
Explotación para la Creación:
Explotar para Actualizar:
Impacto: Escalación directa de privilegios al iniciar sesión como "cualquier" usuario.
iam:UpdateAccessKey
Permite habilitar una clave de acceso deshabilitada, lo que podría llevar a un acceso no autorizado si el atacante posee la clave deshabilitada.
Explotar:
Impacto: Escalación directa de privilegios al reactivar claves de acceso.
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
Permite generar o restablecer credenciales para servicios específicos de AWS (por ejemplo, CodeCommit, Amazon Keyspaces), heredando los permisos del usuario asociado.
Explotación para Creación:
Explotar para Reiniciar:
Impacto: Escalación directa de privilegios dentro de los permisos del servicio del usuario.
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
Permite adjuntar políticas a usuarios o grupos, escalando directamente los privilegios al heredar los permisos de la política adjunta.
Explotar para el Usuario:
Explotar para Grupo:
Impacto: Escalación de privilegios directa a cualquier cosa que la política otorgue.
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
Permite adjuntar o poner políticas a roles, usuarios o grupos, lo que habilita la escalación de privilegios directa al otorgar permisos adicionales.
Explotar para Rol:
Explotar políticas en línea:
Puedes usar una política como:
Impacto: Escalación de privilegios directa al agregar permisos a través de políticas.
iam:AddUserToGroup
Permite agregarse a uno mismo a un grupo de IAM, escalando privilegios al heredar los permisos del grupo.
Explotar:
Impacto: Escalación directa de privilegios al nivel de los permisos del grupo.
iam:UpdateAssumeRolePolicy
Permite alterar el documento de política de asunción de rol de un rol, lo que permite la asunción del rol y sus permisos asociados.
Explotar:
Donde la política se ve como la siguiente, que le da al usuario permiso para asumir el rol:
Impacto: Escalación de privilegios directa al asumir los permisos de cualquier rol.
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
Permite subir una clave pública SSH para autenticarse en CodeCommit y desactivar dispositivos MFA, lo que puede llevar a una posible escalación de privilegios indirecta.
Explotar para la carga de clave SSH:
Explotar para la desactivación de MFA:
Impacto: Escalación de privilegios indirecta al habilitar el acceso a CodeCommit o deshabilitar la protección MFA.
iam:ResyncMFADevice
Permite la resincronización de un dispositivo MFA, lo que puede llevar a una escalación de privilegios indirecta al manipular la protección MFA.
Comando Bash:
Impacto: Escalación de privilegios indirecta al agregar o manipular dispositivos MFA.
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)Con estos permisos puedes cambiar los metadatos XML de la conexión SAML. Luego, podrías abusar de la federación SAML para iniciar sesión con cualquier rol que confíe en ella.
Ten en cuenta que al hacer esto los usuarios legítimos no podrán iniciar sesión. Sin embargo, podrías obtener el XML, así que puedes poner el tuyo, iniciar sesión y configurar el anterior de nuevo.
TODO: Una herramienta capaz de generar los metadatos SAML e iniciar sesión con un rol especificado
iam:UpdateOpenIDConnectProviderThumbprint
, iam:ListOpenIDConnectProviders
, (iam:
GetOpenIDConnectProvider
)(No estoy seguro de esto) Si un atacante tiene estos permisos, podría agregar un nuevo Thumbprint para poder iniciar sesión en todos los roles que confían en el proveedor.
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)