AWS - ECS Post Exploitation
Reading time: 4 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
ECS
Для отримання додаткової інформації перегляньте:
Host IAM Roles
В ECS IAM роль може бути призначена завданню, що виконується всередині контейнера. Якщо завдання виконується всередині EC2 екземпляра, EC2 екземпляр матиме іншу IAM роль, прикріплену до нього.
Це означає, що якщо вам вдасться зламати екземпляр ECS, ви потенційно можете отримати IAM роль, пов'язану з ECR та EC2 екземпляром. Для отримання додаткової інформації про те, як отримати ці облікові дані, перегляньте:
caution
Зверніть увагу, що якщо EC2 екземпляр застосовує IMDSv2, згідно з документацією, відповідь на PUT запит матиме обмеження на кількість пересилок 1, що ускладнює доступ до метаданих EC2 з контейнера всередині EC2 екземпляра.
Privesc to node to steal other containers creds & secrets
Більше того, EC2 використовує docker для виконання завдань EC, тому якщо ви зможете втекти до вузла або отримати доступ до сокета docker, ви зможете перевірити, які інші контейнери запущені, і навіть потрапити всередину них та вкрасти їх IAM ролі.
Making containers run in current host
Крім того, роль 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
, що дозволяє йому завантажувати зображення (ви можете шукати чутливу інформацію в них).
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.