AWS - STS Privesc

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

STS

sts:AssumeRole

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

उदाहरण के लिए, निम्नलिखित भूमिका विश्वास नीति दर्शाती है कि कोई भी इसे मान सकता है, इसलिए कोई भी उपयोगकर्ता वहाँ पहुंच सकेगा, इस भूमिका के साथ संबंधित अनुमतियों तक।

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "sts:AssumeRole"
}
]
}

आप निम्नलिखित को चला सकते हैं:

aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname

संभावित प्रभाव: भूमिका को उच्चाधिकार में बढ़ावा।

ध्यान दें कि इस मामले में अनुमति 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

संघीय दुरुपयोग

AWS - Federation Abuse
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!

दूसरे तरीके HackTricks का समर्थन करने के लिए:

Last updated