AWS - ECS Enum
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
ECS
Informações Básicas
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, Serviços e Definições de Tarefas.
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”.
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 Tarefas 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!
Dados Sensíveis em Definições de Tarefas
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.
Enumeração
Acesso Não Autenticado
AWS - ECS Unauthenticated EnumEscalaçã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 PrivescPós Exploração
AWS - ECS Post ExploitationPersistência
AWS - ECS PersistenceAprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Last updated