AWS - STS Privesc

htARTE (HackTricks AWS Red Team Expert)를 통해 **제로**부터 **히어로**로 AWS 해킹을 배우세요!

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 서비스 계정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
htARTE (HackTricks AWS Red Team Expert)를 통해 제로부터 영웅이 될 때까지 AWS 해킹을 배우세요!

HackTricks를 지원하는 다른 방법:

Last updated