AWS - STS Enum

HackTricks को समर्थन दें

STS

AWS Security Token Service (STS) का मुख्य उद्देश्य अस्थायी, सीमित-अधिकार क्रेडेंशियल्स जारी करना है। ये क्रेडेंशियल्स AWS Identity and Access Management (IAM) उपयोगकर्ताओं या प्रमाणित उपयोगकर्ताओं (फेडरेटेड उपयोगकर्ताओं) के लिए अनुरोध किए जा सकते हैं।

चूंकि STS का उद्देश्य पहचान प्रतिरूपण के लिए क्रेडेंशियल्स जारी करना है, यह सेवा अधिकार बढ़ाने और स्थायित्व बनाए रखने के लिए अत्यधिक मूल्यवान है, भले ही इसके पास विकल्पों की विस्तृत श्रृंखला न हो।

Assume Role Impersonation

AWS STS द्वारा प्रदान की गई AssumeRole क्रिया महत्वपूर्ण है क्योंकि यह एक प्रिंसिपल को दूसरे प्रिंसिपल के लिए क्रेडेंशियल्स प्राप्त करने की अनुमति देती है, मूल रूप से उन्हें प्रतिरूपित करती है। इसे बुलाने पर, यह निर्दिष्ट ARN के अनुरूप एक एक्सेस की आईडी, एक सीक्रेट की, और एक सत्र टोकन के साथ प्रतिक्रिया करता है।

Penetration Testers या Red Team सदस्यों के लिए, यह तकनीक अधिकार बढ़ाने के लिए महत्वपूर्ण है (जैसा कि यहां विस्तृत किया गया है)। हालांकि, यह ध्यान देने योग्य है कि यह तकनीक काफी स्पष्ट है और हो सकता है कि यह हमलावर को चौंका न दे।

Assume Role Logic

उसी खाते में एक भूमिका ग्रहण करने के लिए यदि ग्रहण करने के लिए भूमिका विशेष रूप से एक भूमिका ARN की अनुमति दे रही है जैसे:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<acc_id>:role/priv-role"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}

The role priv-role इस मामले में, विशेष रूप से अनुमति देने की आवश्यकता नहीं है उस भूमिका को ग्रहण करने के लिए (उस अनुमति के साथ पर्याप्त है)।

हालांकि, यदि एक भूमिका एक खाते को इसे ग्रहण करने की अनुमति दे रही है, जैसे:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<acc_id>:root"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}

The role trying to assume it will need a specific sts:AssumeRole permission over that role to assume it.

यदि आप एक role को एक अलग account से assume करने की कोशिश करते हैं, तो assumed role को इसे अनुमति देनी होगी (role ARN या external account को इंगित करते हुए), और दूसरे role को assume करने की कोशिश करने वाले role को इसे assume करने की अनुमति होनी चाहिए (इस मामले में यह वैकल्पिक नहीं है, भले ही assumed role एक ARN निर्दिष्ट कर रहा हो)।

Enumeration

# Get basic info of the creds
aws sts get-caller-identity
aws sts get-access-key-info --access-key-id <AccessKeyID>

# Get CLI a session token with current creds
## Using CLI creds
## You cannot get session creds using session creds
aws sts get-session-token
## MFA
aws sts get-session-token --serial-number <arn_device> --token-code <otp_code>

Privesc

निम्नलिखित पृष्ठ में आप STS अनुमतियों का दुरुपयोग करके विशेषाधिकार कैसे बढ़ाएं देख सकते हैं:

AWS - STS Privesc

Post Exploitation

AWS - STS Post Exploitation

Persistence

AWS - STS Persistence

References

HackTricks को समर्थन दें

Last updated