# AWS - STS Enum {{#include ../../../banners/hacktricks-training.md}} ## STS **AWS सुरक्षा टोकन सेवा (STS)** मुख्य रूप से **अस्थायी, सीमित-विशेषाधिकार क्रेडेंशियल्स** जारी करने के लिए डिज़ाइन की गई है। ये क्रेडेंशियल्स **AWS पहचान और पहुंच प्रबंधन (IAM)** उपयोगकर्ताओं या प्रमाणित उपयोगकर्ताओं (संघीय उपयोगकर्ताओं) के लिए अनुरोध किए जा सकते हैं। चूंकि STS का उद्देश्य **पहचान अनुकरण के लिए क्रेडेंशियल्स जारी करना** है, यह सेवा **विशेषाधिकार बढ़ाने और निरंतरता बनाए रखने** के लिए अत्यधिक मूल्यवान है, भले ही इसके पास विकल्पों की एक विस्तृत श्रृंखला न हो। ### Assume Role Impersonation AWS STS द्वारा प्रदान किया गया क्रिया [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) महत्वपूर्ण है क्योंकि यह एक प्रमुख को दूसरे प्रमुख के लिए क्रेडेंशियल्स प्राप्त करने की अनुमति देता है, मूल रूप से उन्हें अनुकरण करता है। जब इसे लागू किया जाता है, तो यह एक एक्सेस कुंजी आईडी, एक गुप्त कुंजी, और निर्दिष्ट ARN के अनुसार एक सत्र टोकन के साथ प्रतिक्रिया करता है। पेनिट्रेशन टेस्टर्स या रेड टीम के सदस्यों के लिए, यह तकनीक विशेषाधिकार वृद्धि के लिए महत्वपूर्ण है (जैसा कि [**यहां**](../aws-privilege-escalation/aws-sts-privesc.md#sts-assumerole) विस्तृत किया गया है)। हालाँकि, यह ध्यान देने योग्य है कि यह तकनीक काफी स्पष्ट है और यह हमलावर को चौंका नहीं सकती। #### Assume Role Logic यदि **ध्यान देने योग्य भूमिका ARN** की अनुमति देने वाली भूमिका है तो उसी खाते में एक भूमिका को मानने के लिए: ```json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam:::role/priv-role" }, "Action": "sts:AssumeRole", "Condition": {} } ] } ``` भूमिका **`priv-role`** इस मामले में, **विशेष रूप से अनुमति देने की आवश्यकता नहीं है** कि उस भूमिका को ग्रहण किया जाए (उस अनुमति के लिए पर्याप्त है)। हालांकि, यदि एक भूमिका किसी खाते को उसे ग्रहण करने की अनुमति दे रही है, जैसे कि: ```json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam:::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 # 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 --token-code ``` ### Privesc इस पृष्ठ पर आप **STS अनुमतियों का दुरुपयोग करके विशेषाधिकार बढ़ाने** के तरीके की जांच कर सकते हैं: {{#ref}} ../aws-privilege-escalation/aws-sts-privesc.md {{#endref}} ### Post Exploitation {{#ref}} ../aws-post-exploitation/aws-sts-post-exploitation.md {{#endref}} ### Persistence {{#ref}} ../aws-persistence/aws-sts-persistence.md {{#endref}} ## References - [https://blog.christophetd.fr/retrieving-aws-security-credentials-from-the-aws-console/?utm_source=pocket_mylist](https://blog.christophetd.fr/retrieving-aws-security-credentials-from-the-aws-console/?utm_source=pocket_mylist) {{#include ../../../banners/hacktricks-training.md}}