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