AWS - STS Privesc
Reading time: 5 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 गिटहब रिपोजिटरी में सबमिट करके।
STS
sts:AssumeRole
हर भूमिका एक भूमिका ट्रस्ट नीति के साथ बनाई जाती है, यह नीति यह दर्शाती है कि कौन बनाई गई भूमिका को ग्रहण कर सकता है। यदि एक ही खाते से एक भूमिका कहती है कि एक खाता इसे ग्रहण कर सकता है, तो इसका मतलब है कि खाता भूमिका तक पहुँच प्राप्त कर सकेगा (और संभावित रूप से privesc कर सकेगा)।
उदाहरण के लिए, निम्नलिखित भूमिका ट्रस्ट नीति यह दर्शाती है कि कोई भी इसे ग्रहण कर सकता है, इसलिए कोई भी उपयोगकर्ता उस भूमिका से संबंधित अनुमतियों के लिए privesc कर सकेगा।
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "sts:AssumeRole"
}
]
}
आप एक भूमिका का अनुकरण कर सकते हैं:
aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname
संभावित प्रभाव: भूमिका के लिए प्रिवेस्क।
caution
ध्यान दें कि इस मामले में अनुमति sts:AssumeRole
को दुरुपयोग करने के लिए भूमिका में संकेतित किया जाना चाहिए और हमलावर की नीति में नहीं।
एक अपवाद के साथ, किसी अन्य खाते से भूमिका को ग्रहण करने के लिए हमलावर खाते को भी भूमिका पर sts:AssumeRole
होना चाहिए।
sts:GetFederationToken
इस अनुमति के साथ किसी भी उपयोगकर्ता की नकल करने के लिए क्रेडेंशियल्स उत्पन्न करना संभव है:
aws sts get-federation-token --name <username>
यह अनुमति इस तरह से सुरक्षित रूप से दी जा सकती है कि अन्य उपयोगकर्ताओं की नकल करने का अधिकार न दिया जाए:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "sts:GetFederationToken",
"Resource": "arn:aws:sts::947247140022:federated-user/${aws:username}"
}
]
}
sts:AssumeRoleWithSAML
इस भूमिका के साथ एक ट्रस्ट नीति SAML के माध्यम से प्रमाणित उपयोगकर्ताओं को भूमिका का अनुकरण करने की अनुमति देती है।
इस अनुमति के साथ एक ट्रस्ट नीति का उदाहरण है:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "OneLogin",
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::290594632123:saml-provider/OneLogin"
},
"Action": "sts:AssumeRoleWithSAML",
"Condition": {
"StringEquals": {
"SAML:aud": "https://signin.aws.amazon.com/saml"
}
}
}
]
}
क्रेडेंशियल्स उत्पन्न करने के लिए ताकि सामान्य रूप से भूमिका का अनुकरण किया जा सके, आप कुछ इस तरह का उपयोग कर सकते हैं:
aws sts assume-role-with-saml --role-arn <value> --principal-arn <value>
लेकिन प्रदाताओं के पास इसे आसान बनाने के लिए अपने उपकरण हो सकते हैं, जैसे onelogin-aws-assume-role:
onelogin-aws-assume-role --onelogin-subdomain mettle --onelogin-app-id 283740 --aws-region eu-west-1 -z 3600
संभावित प्रभाव: भूमिका के लिए प्रिवेस्क।
sts:AssumeRoleWithWebIdentity
यह अनुमति उन उपयोगकर्ताओं के लिए अस्थायी सुरक्षा क्रेडेंशियल्स प्राप्त करने की अनुमति देती है जो एक वेब पहचान प्रदाता के साथ मोबाइल, वेब एप्लिकेशन, EKS... में प्रमाणित किए गए हैं। यहाँ और जानें।
उदाहरण के लिए, यदि एक EKS सेवा खाता को IAM भूमिका का अनुकरण करने में सक्षम होना चाहिए, तो इसके पास /var/run/secrets/eks.amazonaws.com/serviceaccount/token
में एक टोकन होगा और यह भूमिका को ग्रहण कर सकता है और क्रेडेंशियल्स प्राप्त कर सकता है कुछ इस तरह:
aws sts assume-role-with-web-identity --role-arn arn:aws:iam::123456789098:role/<role_name> --role-session-name something --web-identity-token file:///var/run/secrets/eks.amazonaws.com/serviceaccount/token
# The role name can be found in the metadata of the configuration of the pod
संघीय दुरुपयोग
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 गिटहब रिपोजिटरी में सबमिट करके।