AWS - Glue Privesc
glue
iam:PassRole
, glue:CreateDevEndpoint
, (glue:GetDevEndpoint
| glue:GetDevEndpoints
)
iam:PassRole
, glue:CreateDevEndpoint
, (glue:GetDevEndpoint
| glue:GetDevEndpoints
)拥有这些权限的用户可以设置一个新的 AWS Glue 开发端点,将一个现有的可由 Glue 假设的服务角色与特定权限分配给该端点。
设置完成后,攻击者可以 SSH 进入端点的实例,并窃取分配角色的 IAM 凭证:
出于隐蔽目的,建议使用来自 Glue 虚拟机的 IAM 凭证。
潜在影响: 提升到指定的 Glue 服务角色。
glue:UpdateDevEndpoint
, (glue:GetDevEndpoint
| glue:GetDevEndpoints
)
glue:UpdateDevEndpoint
, (glue:GetDevEndpoint
| glue:GetDevEndpoints
)拥有此权限的用户可以更改现有 Glue 开发端点的 SSH 密钥,从而启用对其的 SSH 访问。这允许攻击者以端点附加角色的权限执行命令:
潜在影响: 提升到所使用的 Glue 服务角色。
iam:PassRole
, (glue:CreateJob
| glue:UpdateJob
), (glue:StartJobRun
| glue:CreateTrigger
)
iam:PassRole
, (glue:CreateJob
| glue:UpdateJob
), (glue:StartJobRun
| glue:CreateTrigger
)具有 iam:PassRole
权限的用户,结合 glue:CreateJob
或 glue:UpdateJob
,以及 glue:StartJobRun
或 glue:CreateTrigger
,可以 创建或更新 AWS Glue 作业,附加任何 Glue 服务账户,并启动作业的执行。该作业的功能包括运行任意 Python 代码,这可以被利用来建立反向 shell。然后可以利用这个反向 shell 来提取附加到 Glue 作业的 IAM 凭证,导致基于该角色权限的潜在未经授权的访问或操作:
潜在影响: 提升到指定的 glue 服务角色。
glue:UpdateJob
glue:UpdateJob
仅凭更新权限,攻击者可以窃取已附加角色的 IAM 凭证。
潜在影响: 提升到附加的 glue 服务角色。
参考文献
Last updated