AWS - STS Enum
Tip
学习并练习 AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
STS
AWS Security Token Service (STS) 主要用于发放 临时、有限权限的凭证。这些凭证可以为 AWS 身份与访问管理 (IAM) 用户或经过身份验证的用户(联合用户)请求。
鉴于 STS 的目的是 发放身份冒充的凭证,该服务对于 提升权限和保持持久性 非常有价值,尽管它可能没有广泛的选项。
Assume Role Impersonation
AWS STS 提供的 AssumeRole 操作至关重要,因为它允许一个主体获取另一个主体的凭证,实质上冒充他们。调用时,它会返回一个访问密钥 ID、一个秘密密钥和一个与指定 ARN 对应的会话令牌。
对于渗透测试人员或红队成员来说,这种技术对于权限提升至关重要(如 这里 所述)。然而,值得注意的是,这种技术相当显眼,可能不会让攻击者感到意外。
Assume Role Logic
为了在同一账户中假设角色,如果 要假设的角色特别允许一个角色 ARN,如:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<acc_id>:role/priv-role"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}
在这种情况下,角色 priv-role 不需要被特别允许 来承担该角色(只需有该允许即可)。
然而,如果一个角色允许一个账户承担它,例如:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<acc_id>:root"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}
尝试假设的角色需要对该角色具有 特定的 sts:AssumeRole 权限 才能假设它。
如果您尝试从 不同的账户 假设一个角色,则 被假设的角色必须允许 这样做(指明角色的 ARN 或 外部账户),并且 尝试假设 另一个角色的 角色必须 具有 假设它的权限(在这种情况下,即使被假设的角色指定了 ARN,这也不是可选的)。
枚举
# Get basic info of the creds
aws sts get-caller-identity
aws sts get-access-key-info --access-key-id <AccessKeyID>
# Get CLI a session token with current creds
## Using CLI creds
## You cannot get session creds using session creds
aws sts get-session-token
## MFA
aws sts get-session-token --serial-number <arn_device> --token-code <otp_code>
Privesc
在以下页面中,您可以查看如何滥用 STS 权限以提升权限:
Post Exploitation
Persistence
References
Tip
学习并练习 AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
HackTricks Cloud

