STS
sts:AssumeRole
每个角色都是通过 角色信任策略 创建的,该策略指示 谁可以假设创建的角色 。如果来自 同一账户 的角色表示某个账户可以假设它,这意味着该账户将能够访问该角色(并可能进行 权限提升 )。
例如,以下角色信任策略指示任何人都可以假设它,因此 任何用户都将能够进行权限提升 到与该角色相关的权限。
Copy {
"Version" : "2012-10-17" ,
"Statement" : [
{
"Effect" : "Allow" ,
"Principal" : {
"AWS" : "*"
} ,
"Action" : "sts:AssumeRole"
}
]
}
您可以通过运行以下命令来模拟一个角色:
Copy aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname
潜在影响: 提升到该角色的权限。
请注意,在这种情况下,权限 sts:AssumeRole
需要在 被滥用的角色中指明 ,而不是在攻击者的策略中。
有一个例外,为了 从不同账户假设角色 ,攻击者账户 也需要 对该角色拥有 sts:AssumeRole
权限。
sts:GetFederationToken
拥有此权限可以生成凭证以冒充任何用户:
Copy aws sts get-federation-token --name < usernam e >
这是如何安全地授予此权限而不允许访问其他用户的身份:
Copy {
"Version" : "2012-10-17" ,
"Statement" : [
{
"Sid" : "VisualEditor0" ,
"Effect" : "Allow" ,
"Action" : "sts:GetFederationToken" ,
"Resource" : "arn:aws:sts::947247140022:federated-user/${aws:username}"
}
]
}
sts:AssumeRoleWithSAML
一个包含此角色的信任策略授予通过 SAML 认证的用户访问以假冒该角色的权限。
具有此权限的信任策略示例如下:
Copy {
"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"
}
}
}
]
}
要生成凭证以模拟角色,通常可以使用以下内容:
Copy aws sts assume-role-with-saml --role-arn < valu e > --principal-arn < valu e >
但是提供商 可能有他们自己的工具 来简化这一过程,比如 onelogin-aws-assume-role :
Copy onelogin-aws-assume-role --onelogin-subdomain mettle --onelogin-app-id 283740 --aws-region eu-west-1 -z 3600
潜在影响: 提升到该角色的权限。
sts:AssumeRoleWithWebIdentity
此权限允许为在移动、Web 应用程序、EKS...中经过身份验证的用户 获取一组临时安全凭证,使用一个 Web 身份提供者。在这里了解更多。
例如,如果一个EKS 服务账户 应该能够模拟一个 IAM 角色 ,它将在**/var/run/secrets/eks.amazonaws.com/serviceaccount/token
中拥有一个令牌,并可以 假设该角色并获取凭证**,执行类似以下操作:
Copy 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