AWS - ECS Enum

支持 HackTricks

ECS

基本信息

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

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

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

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

  • 2种应用程序类型

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

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

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

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

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

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

  • 检查敏感信息的环境变量

任务定义中的敏感数据

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

Pacu 可以枚举 ECS(列出集群、列出容器实例、列出服务、列出任务定义),还可以转储任务定义。

枚举

# 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>

未经身份验证的访问

AWS - ECS Unauthenticated Enum

提权

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

AWS - ECS Privesc

漏洞利用后

AWS - ECS Post Exploitation

持久性

AWS - ECS Persistence
支持 HackTricks

Last updated