AWS - ECS Privesc
ECS
Додаткова інформація про ECS в:
AWS - ECS Enumiam:PassRole
, ecs:RegisterTaskDefinition
, ecs:RunTask
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:RunTask
Атакуючи дозволи iam:PassRole
, ecs:RegisterTaskDefinition
та ecs:RunTask
в ECS, зловмисник може створити нове визначення завдання з зловмисним контейнером, який вкраде метадані облікових даних та запустити його.
Потенційний вплив: Пряме підвищення привілеїв до іншої ролі ECS.
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
Так само, як у попередньому прикладі, зловмисник, який зловживає дозволами iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
в ECS, може створити нове визначення завдання з зловісним контейнером, який вкраде метадані облікових даних та запустити його.
Однак у цьому випадку потрібно мати екземпляр контейнера для запуску зловісного визначення завдання.
Потенційний вплив: Пряме підвищення привілеїв до будь-якої ролі ECS.
iam:PassRole
, ecs:RegisterTaskDefinition
, (ecs:UpdateService|ecs:CreateService)
iam:PassRole
, ecs:RegisterTaskDefinition
, (ecs:UpdateService|ecs:CreateService)
Точно так само, як у попередньому прикладі, зловмисник, який зловживає дозволами iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:UpdateService
або ecs:CreateService
в ECS, може створити нове визначення завдання з зловмисним контейнером, який викрадає метадані облікових даних та запустити його, створивши новий сервіс з принаймні 1 запущеним завданням.
Потенційний вплив: Пряме підвищення привілеїв для будь-якої ролі ECS.
ecs:RegisterTaskDefinition
, (ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
ecs:RegisterTaskDefinition
, (ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
Цей сценарій схожий на попередні, але без дозволу iam:PassRole
.
Це все ще цікаво, оскільки якщо ви можете запустити довільний контейнер, навіть якщо це відбувається без ролі, ви можете запустити привілейований контейнер для виходу на вузол та вкрасти роль EC2 IAM та інші ролі контейнерів ECS, що працюють на вузлі.
Ви навіть можете змусити інші завдання запускатися всередині екземпляра EC2, який ви скомпрометували, щоб вкрасти їх облікові дані (як обговорено в розділі Підвищення привілеїв до вузла).
Цей атака можлива лише у випадку, якщо кластер ECS використовує екземпляри EC2, а не Fargate.
ecs:ExecuteCommand
, ecs:DescribeTasks
, (ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
ecs:ExecuteCommand
, ecs:DescribeTasks
, (ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
Зловмисник з дозволами ecs:ExecuteCommand
, ecs:DescribeTasks
може виконувати команди всередині запущеного контейнера та витягати прикріплений до нього роль IAM (потрібні дозволи на опис, оскільки необхідно виконати aws ecs execute-command
).
Однак для цього екземпляр контейнера повинен запускати агент ExecuteCommand (який за замовчуванням відсутній).
Отже, зловмисник може спробувати:
Спробувати виконати команду в кожному запущеному контейнері
Якщо у нього є
ecs:RunTask
, запустіть задачу за допомогоюaws ecs run-task --enable-execute-command [...]
Якщо у нього є
ecs:StartTask
, запустіть задачу за допомогоюaws ecs start-task --enable-execute-command [...]
Якщо у нього є
ecs:CreateService
, створіть сервіс за допомогоюaws ecs create-service --enable-execute-command [...]
Якщо у нього є
ecs:UpdateService
, оновіть сервіс за допомогоюaws ecs update-service --enable-execute-command [...]
Ви можете знайти приклади цих опцій в попередніх розділах ECS привілеїв.
Потенційний вплив: Підвищення привілеїв до іншої ролі, приєднаної до контейнерів.
ssm:StartSession
ssm:StartSession
Перевірте на сторінці ssm привілеїв, як ви можете зловживати цим дозволом для підвищення привілеїв до ECS:
AWS - SSM Privesciam:PassRole
, ec2:RunInstances
iam:PassRole
, ec2:RunInstances
Перевірте на сторінці ec2 привілеїв, як ви можете зловживати цими дозволами для підвищення привілеїв до ECS:
AWS - EC2 Privesc?ecs:RegisterContainerInstance
?ecs:RegisterContainerInstance
TODO: Чи можливо зареєструвати екземпляр з іншого облікового запису AWS, щоб завдання виконувалися на машинах, керованих зловмисником??
ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, ecs:DescribeTaskSets
ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, ecs:DescribeTaskSets
TODO: Протестуйте це
Зловмисник з дозволами ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
та ecs:DescribeTaskSets
може створити зловісний набір завдань для існуючого сервісу ECS та оновити основний набір завдань. Це дозволяє зловмиснику виконувати довільний код у межах сервісу.
Потенційний вплив: Виконання довільного коду в порушеній службі, що потенційно може вплинути на її функціональність або витік чутливих даних.
Посилання
Last updated