AWS - ECS Enum

支持 HackTricks

ECS

基本信息

亚马逊 弹性容器服务 或 ECS 提供了一个 在云中托管容器化应用程序 的平台。ECS 有两种 部署 方法,EC2 实例类型和 无服务器 选项 Fargate。该服务 使在云中运行容器变得非常简单且无痛

ECS 使用以下三个构建块进行操作:集群服务任务定义

  • 集群在云中运行的容器组。如前所述,容器有两种启动类型,EC2 和 Fargate。AWS 将 EC2 启动类型定义为允许客户“在他们 管理 的 Amazon EC2 实例集群上运行他们的容器化应用程序”。Fargate 类似,被定义为“[允许] 您在 无需配置和管理 后端基础设施的情况下运行您的容器化应用程序”。

  • 服务 在集群内创建,负责 运行任务。在服务定义中 您定义要运行的任务数量、自动扩展、容量提供者 (Fargate/EC2/External)网络 信息,如 VPC、子网和安全组。

  • 2 种类型的应用程序

  • 服务:处理可以停止和重新启动的长期计算工作的任务组。例如,一个 web 应用程序。

  • 任务:运行并终止的独立任务。例如,一个批处理作业。

  • 在服务应用程序中,有 2 种服务调度器

  • REPLICA:副本调度策略在您的集群中放置并 维护所需数量 的任务。如果由于某种原因任务关闭,则会在同一节点或不同节点上启动一个新任务。

  • DAEMON:在每个具有所需要求的活动容器实例上部署一个任务。无需指定所需的任务数量、任务放置策略或使用服务自动扩展策略。

  • 任务定义 负责 定义将运行的容器 以及与容器配置的各种参数,如 与主机的端口映射环境变量、Docker 入口点...

  • 检查 环境变量以获取敏感信息

任务定义中的敏感数据

任务定义负责 配置将在 ECS 中运行的实际容器。由于任务定义定义了容器的运行方式,因此可以找到大量信息。

Pacu 可以枚举 ECS(list-clusters、list-container-instances、list-services、list-task-definitions),它还可以转储任务定义。

枚举

# Clusters info
aws ecs list-clusters
aws ecs describe-clusters --clusters <cluster>

# Container instances
## An Amazon ECS container instance is an Amazon EC2 instance that is running the Amazon ECS container agent and has been registered into an Amazon ECS cluster.
aws ecs list-container-instances --cluster <cluster>
aws ecs describe-container-instances --cluster <cluster> --container-instances <container_instance_arn>

# Services info
aws ecs list-services --cluster <cluster>
aws ecs describe-services --cluster <cluster> --services <services>
aws ecs describe-task-sets --cluster <cluster> --service <service>

# Task definitions
aws ecs list-task-definition-families
aws ecs list-task-definitions
aws ecs list-tasks --cluster <cluster>
aws ecs describe-tasks --cluster <cluster> --tasks <tasks>
## Look for env vars and secrets used from the task definition
aws ecs describe-task-definition --task-definition <TASK_NAME>:<VERSION>

未经身份验证的访问

权限提升

在以下页面中,您可以查看如何滥用ECS权限以提升权限

利用后

持久性

支持HackTricks

Last updated