AWS - ECS Enum

Support HackTricks

ECS

Basic Information

Amazon Elastic Container Services або ECS надає платформу для розміщення контейнеризованих додатків у хмарі. ECS має два методи розгортання, тип інстансу EC2 та безсерверний варіант, Fargate. Ця служба дозволяє дуже легко та безболісно запускати контейнери в хмарі.

ECS працює, використовуючи три основні складові: Кластери, Служби та Опис завдань.

  • Кластери — це групи контейнерів, які працюють у хмарі. Як вже згадувалося, існують два типи запуску контейнерів: EC2 та Fargate. AWS визначає тип запуску EC2 як можливість для клієнтів “запускати [свої] контейнеризовані додатки на кластері інстансів Amazon EC2, які [вони] керують”. Fargate подібний і визначається як “[дозволяючи] вам запускати ваші контейнеризовані додатки без необхідності забезпечувати та керувати бекенд-інфраструктурою”.

  • Служби створюються всередині кластера і відповідають за виконання завдань. У визначенні служби ви визначаєте кількість завдань для виконання, автоматичне масштабування, постачальника потужностей (Fargate/EC2/External), мережеву інформацію, таку як VPC, підмережі та групи безпеки.

  • Існує 2 типи додатків:

  • Служба: Група завдань, що обробляє тривалу обчислювальну роботу, яку можна зупинити та перезапустити. Наприклад, веб-додаток.

  • Завдання: Самостійне завдання, яке виконується та завершується. Наприклад, пакетна робота.

  • Серед службових додатків є 2 типи планувальників служб:

  • REPLICA: Стратегія планування реплік розміщує та підтримує бажану кількість завдань у вашому кластері. Якщо з якоїсь причини завдання зупиняється, нове запускається на тому ж або іншому вузлі.

  • DAEMON: Розгортає точно одне завдання на кожному активному контейнерному інстансі, який має необхідні вимоги. Немає необхідності вказувати бажану кількість завдань, стратегію розміщення завдань або використовувати політики автоматичного масштабування служби.

  • Опис завдань відповідає за визначення того, які контейнери будуть запущені та різних параметрів, які будуть налаштовані з контейнерами, таких як відображення портів з хостом, змінні середовища, Docker точка входу...

  • Перевірте змінні середовища на наявність чутливої інформації!

Sensitive Data In Task Definitions

Опис завдань відповідає за налаштування фактичних контейнерів, які будуть працювати в ECS. Оскільки описи завдань визначають, як будуть працювати контейнери, всередині можна знайти безліч інформації.

Pacu може перераховувати ECS (list-clusters, list-container-instances, list-services, list-task-definitions), він також може вивантажувати описи завдань.

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>

Неавтентифікований доступ

AWS - ECS Unauthenticated Enum

Підвищення привілеїв

На наступній сторінці ви можете перевірити, як зловживати дозволами ECS для підвищення привілеїв:

AWS - ECS Privesc

Постексплуатація

AWS - ECS Post Exploitation

Персистентність

AWS - ECS Persistence
Підтримайте HackTricks

Last updated