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 ролі автентифікованим користувачам у своїй програмі (можливо, люди зможуть просто зареєструватися) і вони також можуть надати IAM роль неавтентифікованим користувачам.

Для основної інформації про Cognito дивіться:

AWS - Cognito Enum

Identity Pool ID

Identity Pools можуть надавати IAM ролі неавтентифікованим користувачам, які просто знають Identity Pool ID (що досить поширено знайти), і зловмисник з цією інформацією може спробувати отримати доступ до цієї IAM ролі та експлуатувати її.
Більше того, IAM ролі також можуть бути призначені автентифікованим користувачам, які отримують доступ до Identity Pool. Якщо зловмисник може зареєструвати користувача або вже має доступ до постачальника ідентичності, що використовується в identity pool, він може отримати доступ до IAM ролі, що надається автентифікованим користувачам і зловживати її привілеями.

Перевірте, як це зробити тут.

User Pool ID

За замовчуванням Cognito дозволяє реєструвати нових користувачів. Можливість зареєструвати користувача може надати вам доступ до основного застосунку або до автентифікованої IAM ролі доступу Identity Pool, яка приймає як постачальника ідентичності Cognito User Pool. Перевірте, як це зробити тут.

Pacu modules for pentesting and enumeration

Pacu, фреймворк експлуатації AWS, тепер включає модулі "cognito__enum" та "cognito__attack", які автоматизують перерахування всіх активів Cognito в обліковому записі та виявляють слабкі конфігурації, атрибути користувачів, що використовуються для контролю доступу тощо, а також автоматизують створення користувачів (включаючи підтримку MFA) та ескалацію привілеїв на основі змінних користувацьких атрибутів, використовуваних облікових даних identity pool, ролей, що можуть бути прийняті в id токенах тощо.

Для опису функцій модулів дивіться частину 2 блог-посту. Для інструкцій з установки дивіться основну сторінку Pacu.

Usage

Приклад використання cognito__attack для спроби створення користувача та всіх векторів привілеїв проти даного identity pool та клієнта user pool:

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