AWS - STS Enum

Support HackTricks

STS

AWS सुरक्षा टोकन सेवा (STS) मुख्य रूप से अस्थायी, सीमित-विशेषाधिकार क्रेडेंशियल्स जारी करने के लिए डिज़ाइन की गई है। ये क्रेडेंशियल्स AWS पहचान और पहुंच प्रबंधन (IAM) उपयोगकर्ताओं या प्रमाणित उपयोगकर्ताओं (संघीय उपयोगकर्ताओं) के लिए अनुरोध किए जा सकते हैं।

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

Assume Role Impersonation

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

पेनिट्रेशन टेस्टर्स या रेड टीम के सदस्यों के लिए, यह तकनीक विशेषाधिकार वृद्धि के लिए महत्वपूर्ण है (जैसा कि यहां विस्तृत किया गया है)। हालाँकि, यह ध्यान देने योग्य है कि यह तकनीक काफी स्पष्ट है और यह हमलावर को चौंका नहीं सकती।

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": {}
}
]
}

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

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

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

उस भूमिका को ग्रहण करने की कोशिश करने के लिए उसे उस भूमिका पर विशिष्ट sts:AssumeRole अनुमति की आवश्यकता होगी ताकि उसे ग्रहण किया जा सके

यदि आप एक अलग खाते से भूमिका ग्रहण करने की कोशिश करते हैं, तो ग्रहण की गई भूमिका को इसकी अनुमति देनी चाहिए (भूमिका ARN या बाहरी खाते को इंगित करते हुए), और जो भूमिका दूसरी को ग्रहण करने की कोशिश कर रही है उसे इसे ग्रहण करने की अनुमति होनी चाहिए (इस मामले में यह वैकल्पिक नहीं है, भले ही ग्रहण की गई भूमिका एक 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

In the following page you can check how to STS अनुमतियों का दुरुपयोग करके विशेषाधिकार बढ़ाना:

AWS - STS Privesc

Post Exploitation

AWS - STS Post Exploitation

Persistence

AWS - STS Persistence

References

Support HackTricks

Last updated