AWS - IAM Privesc
IAM
Para más información sobre IAM revisa:
AWS - IAM, Identity Center & SSO Enumiam:CreatePolicyVersion
iam:CreatePolicyVersion
Otorga la capacidad de crear una nueva versión de política IAM, evitando la necesidad del permiso iam:SetDefaultPolicyVersion
utilizando la bandera --set-as-default
. Esto permite definir permisos personalizados.
Comando de Explotación:
Impacto: Escala privilegios directamente al permitir cualquier acción en cualquier recurso.
iam:SetDefaultPolicyVersion
iam:SetDefaultPolicyVersion
Permite cambiar la versión predeterminada de una política IAM a otra versión existente, potencialmente escalando privilegios si la nueva versión tiene más permisos.
Comando Bash:
Impacto: Escalada de privilegios indirecta al habilitar más permisos.
iam:CreateAccessKey
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 escalada de privilegios.
Explotación:
Impacto: Escalada de privilegios directa al asumir los permisos extendidos de otro usuario.
iam:CreateLoginProfile
| iam:UpdateLoginProfile
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 escalada de privilegios directa.
Explotación para Creación:
Exploit for Update:
Impacto: Escalada de privilegios directa al iniciar sesión como "cualquier" usuario.
iam:UpdateAccessKey
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.
Explotación:
Impacto: Escalada de privilegios directa al reactivar claves de acceso.
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
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:
Exploit for Reset:
Impacto: Escalada de privilegios directa dentro de los permisos del servicio del usuario.
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
Permite adjuntar políticas a usuarios o grupos, escalando privilegios directamente al heredar los permisos de la política adjunta.
Explotación para Usuario:
Exploit for Group:
Impacto: Escalada de privilegios directa a cualquier cosa que la política conceda.
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
Permite adjuntar o poner políticas a roles, usuarios o grupos, habilitando la escalada de privilegios directa al conceder permisos adicionales.
Explotación para Role:
Exploit for Inline Policies:
Explotación de Políticas Inline:
Puedes usar una política como:
Impacto: Escalada de privilegios directa al agregar permisos a través de políticas.
iam:AddUserToGroup
iam:AddUserToGroup
Permite agregarse a uno mismo a un grupo IAM, escalando privilegios al heredar los permisos del grupo.
Explotación:
Impacto: Escalada de privilegios directa al nivel de los permisos del grupo.
iam:UpdateAssumeRolePolicy
iam:UpdateAssumeRolePolicy
Permite alterar el documento de política de asunción de un rol, habilitando la asunción del rol y sus permisos asociados.
Explotación:
Donde la política se ve como la siguiente, que otorga al usuario permiso para asumir el rol:
Impacto: Escalada de privilegios directa al asumir los permisos de cualquier rol.
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
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 escalada de privilegios indirecta.
Explotación para Subida de Clave SSH:
Exploit for MFA Deactivation:
Explotación para la Desactivación de MFA:
Impacto: Escalada de privilegios indirecta al habilitar el acceso a CodeCommit o deshabilitar la protección MFA.
iam:ResyncMFADevice
iam:ResyncMFADevice
Permite la resincronización de un dispositivo MFA, lo que podría llevar a una escalada de privilegios indirecta al manipular la protección MFA.
Comando Bash:
Impacto: Escalada de privilegios indirecta mediante la adición o manipulación de dispositivos MFA.
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)
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, 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
)
iam:UpdateOpenIDConnectProviderThumbprint
, iam:ListOpenIDConnectProviders
, (iam:
GetOpenIDConnectProvider
)(No estoy seguro de esto) Si un atacante tiene estos permisos podría agregar una nueva Thumbprint para lograr iniciar sesión en todos los roles que confían en el proveedor.
Referencias
Last updated