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

Unauthenticated Cognito

Cognito — це сервіс AWS, який дозволяє розробникам надавати користувачам їхнього додатку доступ до сервісів AWS. Розробники призначають IAM roles to authenticated users у своєму додатку (потенційно люди можуть просто sign up), і вони також можуть надати IAM role to unauthenticated users.

For basic info about Cognito check:

AWS - Cognito Enum

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 і зловживати її привілеями.

Check how to do that here.

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:

bash
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:

bash
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