AWS - STS Privesc

Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

STS

sts:AssumeRole

Każda rola jest tworzona z polityką zaufania roli, która wskazuje, kto może przyjąć utworzoną rolę. Jeśli rola z tego samego konta mówi, że konto może ją przyjąć, oznacza to, że konto będzie miało dostęp do roli (i potencjalnie przywileje).

Na przykład, poniższa polityka zaufania roli wskazuje, że każdy może ją przyjąć, dlatego każdy użytkownik będzie mógł uzyskać przywileje związane z tą rolą.

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

Możesz podszywać się pod rolę, wykonując:

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

Potencjalne skutki: Podniesienie uprawnień do roli.

Należy zauważyć, że w tym przypadku uprawnienie sts:AssumeRole musi być wskazane w roli do wykorzystania i nie w polityce należącej do atakującego. Z jednym wyjątkiem, aby przejść do roli z innego konta, konto atakującego również musi mieć uprawnienie sts:AssumeRole dla roli.

sts:AssumeRoleWithSAML

Polityka zaufania z tą rolą umożliwia użytkownikom uwierzytelnionym za pomocą SAML dostęp do udawania roli.

Przykład polityki zaufania z tym uprawnieniem to:

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

Aby wygenerować poświadczenia umożliwiające podszywanie się pod rolę ogólnie, można użyć czegoś takiego jak:

aws sts  assume-role-with-saml --role-arn <value> --principal-arn <value>

Ale dostawcy mogą mieć swoje własne narzędzia, które ułatwiają to zadanie, takie jak onelogin-aws-assume-role:

onelogin-aws-assume-role --onelogin-subdomain mettle --onelogin-app-id 283740 --aws-region eu-west-1 -z 3600

Potencjalne skutki: Podniesienie uprawnień do roli.

sts:AssumeRoleWithWebIdentity

To uprawnienie umożliwia uzyskanie zestawu tymczasowych poświadczeń bezpieczeństwa dla użytkowników, którzy zostali uwierzytelnieni w aplikacji mobilnej, internetowej, EKS... przy użyciu dostawcy tożsamości internetowej. Dowiedz się więcej tutaj.

Na przykład, jeśli konto usługi EKS ma możliwość udawania roli IAM, będzie miało token w /var/run/secrets/eks.amazonaws.com/serviceaccount/token i może przejmować rolę i uzyskiwać poświadczenia wykonując coś takiego:

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

Nadużycie federacji

pageAWS - Federation Abuse
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated