AWS - Cognito Unauthenticated Enum
Reading time: 3 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.
Unauthenticated Cognito
Cognito — це сервіс AWS, який дозволяє розробникам надавати користувачам їхнього додатку доступ до сервісів AWS. Розробники призначають IAM roles to authenticated users у своєму додатку (потенційно люди можуть просто sign up), і вони також можуть надати IAM role to unauthenticated users.
For basic info about Cognito check:
Identity Pool ID
Identity Pools можуть надавати IAM roles to unauthenticated users, які просто знають Identity Pool ID (що досить часто трапляється), і зловмисник із цією інформацією може спробувати access that IAM role та зловживати нею.
Більше того, IAM roles також можуть бути призначені authenticated users, які отримують доступ до Identity Pool. Якщо зловмисник може register a user або вже має access to the identity provider, що використовується в Identity Pool, він може отримати доступ до IAM role being given to authenticated users і зловживати її привілеями.
User Pool ID
За замовчуванням Cognito дозволяє зареєструвати нового користувача. Можливість зареєструвати користувача може надати вам доступ до підлягаючого додатку або до authenticated IAM access role of an Identity Pool, який приймає Cognito User Pool як identity provider. Check how to do that here.
Pacu modules for pentesting and enumeration
Pacu, фреймворк для експлуатації AWS, тепер включає модулі "cognito__enum" і "cognito__attack", які автоматизують перелік всіх об'єктів Cognito в акаунті та виявлення слабких конфігурацій, атрибутів користувачів, що використовуються для контролю доступу тощо, а також автоматизують створення користувачів (включаючи підтримку MFA) і ескалацію привілеїв на основі змінюваних кастомних атрибутів, доступних credentials Identity Pool, assumable roles в id tokens тощо.
Для опису функцій модулів див. частину 2 blog post. Інструкції з встановлення див. на основній сторінці Pacu.
Usage
Приклад використання cognito__attack для спроби створення користувача та всіх векторів ескалації привілеїв проти вказаного identity pool і user pool client:
Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gmail.com --identity_pools
us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients
59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX
Приклад використання cognito__enum для збору всіх пулів користувачів, клієнтів пулів користувачів, пулів ідентичностей, користувачів тощо, видимих у поточному обліковому записі AWS:
Pacu (new:test) > run cognito__enum
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.
HackTricks Cloud