AWS - ECS Post Exploitation

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

ECS

Для отримання додаткової інформації перевірте:

pageAWS - ECS Enum

Ролі IAM хоста

У ECS роль IAM може бути призначена для завдання, що виконується всередині контейнера. Якщо завдання виконується всередині екземпляра EC2, то у екземпляра EC2 буде прикріплена інша роль IAM. Це означає, що якщо ви зможете компрометувати екземпляр ECS, ви потенційно зможете отримати роль IAM, пов'язану з ECR та з екземпляром EC2. Для отримання додаткової інформації про те, як отримати ці облікові дані, перевірте:

Зверніть увагу, що якщо екземпляр EC2 застосовує IMDSv2, згідно з документацією, відповідь на запит PUT матиме обмеження на кількість кроків 1, що ускладнює доступ до метаданих EC2 з контейнера всередині екземпляра EC2.

Підвищення привілеїв до вузла для крадіжки облікових даних та секретів інших контейнерів

Більше того, EC2 використовує Docker для запуску завдань ECs, тому якщо ви зможете вийти на вузол або отримати доступ до сокету Docker, ви зможете перевірити, які інші контейнери запущені, і навіть увійти в них та вкрасти їх ролі IAM, які прикріплені.

Запуск контейнерів на поточному хості

Крім того, роль екземпляра EC2 зазвичай матиме достатньо дозволів для оновлення стану контейнера екземпляра екземплярів EC2, які використовуються як вузли всередині кластера. Атакувальник може змінити стан екземпляра на DRAINING, тоді ECS видалить всі завдання з нього, а ті, що виконуються як REPLICA, будуть запущені на іншому екземплярі, потенційно всередині екземпляра атакувальника, щоб він міг вкрасти їх ролі IAM та можливо чутливу інформацію з контейнера.

aws ecs update-container-instances-state \
--cluster <cluster> --status DRAINING --container-instances <container-instance-id>

Ту саму техніку можна виконати, відключивши екземпляр EC2 від кластера. Це може бути менш приховано, але це змусить завдання виконуватися на інших екземплярах:

aws ecs deregister-container-instance \
--cluster <cluster> --container-instance <container-instance-id> --force

Останній спосіб змусити повторне виконання завдань - вказати ECS, що завдання або контейнер був зупинений. Існує 3 потенційні API для цього:

# Needs: ecs:SubmitTaskStateChange
aws ecs submit-task-state-change --cluster <value> \
--status STOPPED --reason "anything" --containers [...]

# Needs: ecs:SubmitContainerStateChange
aws ecs submit-container-state-change ...

# Needs: ecs:SubmitAttachmentStateChanges
aws ecs submit-attachment-state-changes ...

Викрадення чутливої інформації з контейнерів ECR

Екземпляр EC2, ймовірно, також матиме дозвіл ecr:GetAuthorizationToken, що дозволить йому завантажувати зображення (ви можете шукати чутливу інформацію в них).

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated