AWS - ECS Enum
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
Acceso No Autenticado
AWS - ECS Unauthenticated EnumEscalación de Privilegios
En la siguiente página puedes verificar cómo abusar de los permisos de ECS para escalar privilegios:
AWS - ECS PrivescPost Explotación
AWS - ECS Post ExploitationPersistencia
AWS - ECS PersistenceLast updated