AWS - ECS Enum

Support HackTricks

ECS

Basic Information

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 éléments de base suivants : Clusters, Services, et Task Definitions.

  • 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 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.

  • Task : Une tâche autonome qui s'exécute et se termine. Par exemple, un travail par lot.

  • 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 sur 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.

  • Task Definitions 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 !

Sensitive Data In Task Definitions

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.

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>

Accès non authentifié

Privesc

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

Post Exploitation

Persistance

Soutenir HackTricks

Last updated