AWS - ECS Enum

Reading time: 5 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

ECS

Informations de base

Amazon Elastic Container Services ou ECS fournit une plateforme pour héberger des applications conteneurisées dans le cloud. ECS a deux méthodes de déploiement, le type d'instance EC2 et une option sans serveur, Fargate. Le service facilite grandement l'exécution de conteneurs dans le cloud.

ECS fonctionne en utilisant les trois blocs de construction suivants : Clusters, Services et Définitions de tùches.

  • Clusters sont des groupes de conteneurs qui fonctionnent dans le cloud. Comme mentionnĂ© prĂ©cĂ©demment, il existe deux types de lancement pour les conteneurs, EC2 et Fargate. AWS dĂ©finit le type de lancement EC2 comme permettant aux clients “d'exĂ©cuter [leurs] applications conteneurisĂ©es sur un cluster d'instances Amazon EC2 que [ils] gĂšrent”. Fargate est similaire et est dĂ©fini comme “[permettant] d'exĂ©cuter vos applications conteneurisĂ©es sans avoir besoin de provisionner et de gĂ©rer l'infrastructure backend”.
  • Services sont créés Ă  l'intĂ©rieur d'un cluster et sont responsables de l'exĂ©cution des tĂąches. Dans une dĂ©finition de service, vous dĂ©finissez le nombre de tĂąches Ă  exĂ©cuter, l'auto-scaling, le fournisseur de capacitĂ© (Fargate/EC2/Externe), les informations de rĂ©seau telles que les VPC, sous-rĂ©seaux et groupes de sĂ©curitĂ©.
  • Il y a 2 types d'applications :
  • Service : Un groupe de tĂąches gĂ©rant un travail informatique de longue durĂ©e qui peut ĂȘtre arrĂȘtĂ© et redĂ©marrĂ©. Par exemple, une application web.
  • TĂąche : Une tĂąche autonome qui s'exĂ©cute et se termine. Par exemple, un travail par lots.
  • Parmi les applications de service, il y a 2 types de planificateurs de service :
  • REPLICA : La stratĂ©gie de planification des rĂ©pliques place et maintient le nombre dĂ©sirĂ© de tĂąches dans votre cluster. Si pour une raison quelconque une tĂąche s'arrĂȘte, une nouvelle est lancĂ©e dans le mĂȘme ou un autre nƓud.
  • DAEMON : DĂ©ploie exactement une tĂąche sur chaque instance de conteneur active qui a les exigences nĂ©cessaires. Il n'est pas nĂ©cessaire de spĂ©cifier un nombre dĂ©sirĂ© de tĂąches, une stratĂ©gie de placement de tĂąches, ou d'utiliser des politiques d'auto-scaling de service.
  • DĂ©finitions de tĂąches sont responsables de dĂ©finir quels conteneurs seront exĂ©cutĂ©s et les divers paramĂštres qui seront configurĂ©s avec les conteneurs tels que mappages de ports avec l'hĂŽte, variables d'environnement, Docker entrypoint...
  • VĂ©rifiez les variables d'environnement pour des informations sensibles !

Données sensibles dans les définitions de tùches

Les dĂ©finitions de tĂąches sont responsables de configurer les conteneurs rĂ©els qui seront exĂ©cutĂ©s dans ECS. Puisque les dĂ©finitions de tĂąches dĂ©finissent comment les conteneurs fonctionneront, une plĂ©thore d'informations peut y ĂȘtre trouvĂ©e.

Pacu peut énumérer ECS (list-clusters, list-container-instances, list-services, list-task-definitions), il peut également extraire les définitions de tùches.

ÉnumĂ©ration

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

AccÚs non authentifié

AWS - ECS Unauthenticated Enum

Privesc

Dans la page suivante, vous pouvez vérifier comment abuser des permissions ECS pour escalader les privilÚges :

AWS - ECS Privesc

Post Exploitation

AWS - ECS Post Exploitation

Persistance

AWS - ECS Persistence

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks