AWS - ECS Enum
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Amazon Elastic Container Services ou ECS fornece uma plataforma para hospedar aplicações containerizadas 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, Serviços e Definições de Tarefa.
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 containerizadas em um cluster de instâncias Amazon EC2 que [eles] gerenciam”. Fargate é semelhante e é definido como “[permitindo] que você execute suas aplicações containerizadas sem a necessidade de provisionar e gerenciar a infraestrutura de backend”.
Serviços 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, escalonamento automático, provedor de capacidade (Fargate/EC2/Externo), informações de rede como VPCs, sub-redes e grupos de segurança.
Existem 2 tipos de aplicações:
Serviço: 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.
Tarefa: Uma tarefa independente que é executada e finalizada. 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 Escalonamento Automático de Serviço.
Definições de Tarefa 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, entrypoint do Docker...
Verifique variáveis de ambiente para informações sensíveis!
As definições de tarefa são responsáveis por configurar os contêineres reais que estarão rodando no ECS. Como as definições de tarefa 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 tarefa.
Na página a seguir, você pode verificar como abusar das permissões do ECS para escalar privilégios:
AWS - ECS PrivescAprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)