AWS - Cognito Unauthenticated Enum

Support HackTricks

Unauthenticated Cognito

Cognito - це сервіс AWS, який дозволяє розробникам надавати своїм користувачам доступ до сервісів AWS. Розробники надають IAM ролі автентифікованим користувачам у своїй програмі (можливо, люди зможуть просто зареєструватися) і вони також можуть надати IAM роль неавтентифікованим користувачам.

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

AWS - Cognito Enum

Identity Pool ID

Identity Pools можуть надавати IAM ролі неавтентифікованим користувачам, які просто знають ID Identity Pool (що досить поширено знайти), і зловмисник з цією інформацією може спробувати отримати доступ до цієї 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, ролей, що можуть бути прийняті в токенах ідентичності тощо.

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

Usage

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

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
Підтримайте HackTricks

Last updated