AWS - ECS Enum

Support HackTricks

ECS

Información Básica

Amazon Elastic Container Services o ECS proporciona una plataforma para alojar aplicaciones en contenedores en la nube. ECS tiene dos métodos de implementación, tipo de instancia EC2 y una opción sin servidor, Fargate. El servicio hace que ejecutar contenedores en la nube sea muy fácil y sin complicaciones.

ECS opera utilizando los siguientes tres bloques de construcción: Clusters, Services y Task Definitions.

  • Clusters son grupos de contenedores que se están ejecutando en la nube. Como se mencionó anteriormente, hay dos tipos de lanzamiento para contenedores, EC2 y Fargate. AWS define el tipo de lanzamiento EC2 como permitir a los clientes “ejecutar [sus] aplicaciones en contenedores en un clúster de instancias de Amazon EC2 que [ellos] gestionan”. Fargate es similar y se define como “[permitiendo] ejecutar sus aplicaciones en contenedores sin necesidad de aprovisionar y gestionar la infraestructura de backend”.

  • Services se crean dentro de un clúster y son responsables de ejecutar las tareas. Dentro de una definición de servicio se define el número de tareas a ejecutar, escalado automático, proveedor de capacidad (Fargate/EC2/Externo), información de red como VPC, subredes y grupos de seguridad.

  • Hay 2 tipos de aplicaciones:

  • Service: Un grupo de tareas que manejan un trabajo computacional de larga duración que puede ser detenido y reiniciado. Por ejemplo, una aplicación web.

  • Task: Una tarea independiente que se ejecuta y termina. Por ejemplo, un trabajo por lotes.

  • Entre las aplicaciones de servicio, hay 2 tipos de programadores de servicio:

  • REPLICA: La estrategia de programación de réplicas coloca y mantiene el número deseado de tareas en su clúster. Si por alguna razón una tarea se apaga, se lanza una nueva en el mismo o diferente nodo.

  • DAEMON: Despliega exactamente una tarea en cada instancia de contenedor activa que tenga los requisitos necesarios. No es necesario especificar un número deseado de tareas, una estrategia de colocación de tareas, o usar políticas de escalado automático de servicios.

  • Task Definitions son responsables de definir qué contenedores se ejecutarán y los varios parámetros que se configurarán con los contenedores, como mapeos de puertos con el host, variables de entorno, entrypoint de Docker...

  • ¡Verifique variables de entorno para información sensible!

Datos Sensibles en Definiciones de Tareas

Las definiciones de tareas son responsables de configurar los contenedores reales que se ejecutarán en ECS. Dado que las definiciones de tareas definen cómo se ejecutarán los contenedores, se puede encontrar una gran cantidad de información dentro.

Pacu puede enumerar ECS (list-clusters, list-container-instances, list-services, list-task-definitions), también puede volcar definiciones de tareas.

Enumeración

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

Acceso No Autenticado

Escalación de Privilegios

En la siguiente página puedes verificar cómo abusar de los permisos de ECS para escalar privilegios:

Post Explotación

Persistencia

Apoya a HackTricks

Last updated