AWS - ECS Enum

Support HackTricks

ECS

Basic Information

Amazon Elastic Container Services ou ECS fornece uma plataforma para hospedar aplicações conteinerizadas na nuvem. ECS tem dois métodos de implantação, tipo de instância EC2 e uma opção serverless, Fargate. O serviço torna a execução de contêineres na nuvem muito fácil e sem dor.

ECS opera usando os seguintes três blocos de construção: Clusters, Services e Task Definitions.

  • Clusters são grupos de contêineres que estão rodando na nuvem. Como mencionado anteriormente, existem dois tipos de lançamento para contêineres, EC2 e Fargate. A AWS define o tipo de lançamento EC2 como permitindo que os clientes “executem [suas] aplicações conteinerizadas em um cluster de instâncias Amazon EC2 que [eles] gerenciam”. Fargate é semelhante e é definido como “[permitindo] que você execute suas aplicações conteinerizadas sem a necessidade de provisionar e gerenciar a infraestrutura de backend”.

  • Services são criados dentro de um cluster e responsáveis por executar as tarefas. Dentro de uma definição de serviço você define o número de tarefas a serem executadas, auto scaling, provedor de capacidade (Fargate/EC2/External), informações de rede como VPCs, sub-redes e grupos de segurança.

  • Existem 2 tipos de aplicações:

  • Service: Um grupo de tarefas que lida com um trabalho computacional de longa duração que pode ser interrompido e reiniciado. Por exemplo, uma aplicação web.

  • Task: Uma tarefa independente que é executada e termina. Por exemplo, um trabalho em lote.

  • Entre as aplicações de serviço, existem 2 tipos de agendadores de serviço:

  • REPLICA: A estratégia de agendamento de réplica coloca e mantém o número desejado de tarefas em todo o seu cluster. Se por algum motivo uma tarefa for encerrada, uma nova é lançada no mesmo ou em um nó diferente.

  • DAEMON: Implanta exatamente uma tarefa em cada instância de contêiner ativa que possui os requisitos necessários. Não há necessidade de especificar um número desejado de tarefas, uma estratégia de colocação de tarefas ou usar políticas de Auto Scaling de Serviço.

  • Task Definitions são responsáveis por definir quais contêineres serão executados e os vários parâmetros que serão configurados com os contêineres, como mapeamentos de porta com o host, variáveis de ambiente, Docker entrypoint...

  • Verifique variáveis de ambiente para informações sensíveis!

Sensitive Data In Task Definitions

As definições de tarefas são responsáveis por configurar os contêineres reais que estarão rodando no ECS. Como as definições de tarefas definem como os contêineres serão executados, uma infinidade de informações pode ser encontrada dentro delas.

Pacu pode enumerar ECS (list-clusters, list-container-instances, list-services, list-task-definitions), também pode despejar definições de tarefas.

Enumeration

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

Acesso Não Autenticado

AWS - ECS Unauthenticated Enum

Escalação de Privilégios

Na página a seguir, você pode verificar como abusar das permissões do ECS para escalar privilégios:

AWS - ECS Privesc

Pós Exploração

AWS - ECS Post Exploitation

Persistência

AWS - ECS Persistence
Suporte ao HackTricks

Last updated