AWS - STS Enum

Reading time: 4 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 का समर्थन करें

STS

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

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

Assume Role Impersonation

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

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

Assume Role Logic

यदि ध्यान देने योग्य भूमिका ARN की अनुमति देने वाली भूमिका है तो उसी खाते में एक भूमिका को मानने के लिए:

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

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

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

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

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

यदि आप एक अलग खाते से भूमिका ग्रहण करने का प्रयास करते हैं, तो ग्रहण की गई भूमिका को इसकी अनुमति देनी चाहिए (भूमिका ARN या बाहरी खाते को इंगित करते हुए), और जो भूमिका ग्रहण करने का प्रयास कर रही है उसे इसे ग्रहण करने की अनुमति होनी चाहिए (इस मामले में यह वैकल्पिक नहीं है, भले ही ग्रहण की गई भूमिका एक ARN निर्दिष्ट कर रही हो)।

गणना

bash
# 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

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 का समर्थन करें