AWS - ECS Post Exploitation
ECS
有关更多信息,请查看:
主机 IAM 角色
在 ECS 中,IAM 角色可以分配给在容器内运行的任务。如果任务在 EC2 实例内运行,EC2 实例将附加 另一个 IAM 角色。 这意味着如果你设法 攻陷 一个 ECS 实例,你可能会 获得与 ECR 和 EC2 实例相关联的 IAM 角色。有关如何获取这些凭据的更多信息,请查看:
请注意,如果 EC2 实例强制使用 IMDSv2,根据文档,PUT 请求的响应将具有 跳数限制为 1,使得无法从 EC2 实例内的容器访问 EC2 元数据。
提权到节点以窃取其他容器的凭据和秘密
此外,EC2 使用 Docker 来运行 ECs 任务,因此如果你能够逃逸到节点或 访问 Docker 套接字,你可以 检查 运行的 其他容器,甚至 进入它们 并 窃取其附加的 IAM 角色。
使容器在当前主机上运行
此外,EC2 实例角色通常会拥有足够的 权限 来 更新作为集群内节点使用的 EC2 实例的容器实例状态。攻击者可以将 实例的状态修改为 DRAINING,然后 ECS 将 从中移除所有任务,并且作为 REPLICA 运行的任务将 在不同的实例中运行, 可能在 攻击者的实例 内,这样他就可以 窃取其 IAM 角色 和潜在的敏感信息。
同样的技术可以通过 将 EC2 实例从集群中注销 来实现。这可能不那么隐蔽,但它将 强制任务在其他实例中运行:
一种强制重新执行任务的最终技术是通过指示ECS 任务或容器已停止。有3个潜在的API可以做到这一点:
从ECR容器中窃取敏感信息
EC2实例可能还具有权限ecr:GetAuthorizationToken
,允许它下载镜像(你可以在其中搜索敏感信息)。
Last updated