AWS - Cognito Unauthenticated Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Cognito - це сервіс AWS, який дозволяє розробникам надавати своїм користувачам доступ до сервісів AWS. Розробники надають IAM ролі автентифікованим користувачам у своїй програмі (можливо, люди зможуть просто зареєструватися) і вони також можуть надати IAM роль неавтентифікованим користувачам.
Для основної інформації про Cognito перегляньте:
Identity Pools можуть надавати IAM ролі неавтентифікованим користувачам, які просто знають ID Identity Pool (що досить поширено знайти), і зловмисник з цією інформацією може спробувати отримати доступ до цієї IAM ролі і експлуатувати її. Більше того, IAM ролі також можуть бути призначені автентифікованим користувачам, які отримують доступ до Identity Pool. Якщо зловмисник може зареєструвати користувача або вже має доступ до постачальника ідентичності, що використовується в Identity Pool, він може отримати доступ до IAM ролі, що надається автентифікованим користувачам і зловживати її привілеями.
За замовчуванням Cognito дозволяє реєструвати нових користувачів. Можливість зареєструвати користувача може надати вам доступ до основного застосунку або до автентифікованої IAM ролі доступу Identity Pool, яка приймає Cognito User Pool як постачальника ідентичності. Перевірте, як це зробити тут.
Pacu, фреймворк експлуатації AWS, тепер включає модулі "cognito__enum" і "cognito__attack", які автоматизують перерахування всіх активів Cognito в обліковому записі та виявляють слабкі конфігурації, атрибути користувачів, що використовуються для контролю доступу тощо, а також автоматизують створення користувачів (включаючи підтримку MFA) і ескалацію привілеїв на основі змінних атрибутів, що підлягають модифікації, використовуваних облікових даних Identity Pool, ролей, що можуть бути прийняті в токенах ідентичності тощо.
Для опису функцій модулів дивіться частину 2 блог-посту. Для інструкцій з установки дивіться основну сторінку Pacu.
Приклад використання cognito__attack
для спроби створення користувача та всіх векторів привілеїв проти даного Identity Pool і клієнта User Pool:
Приклад використання cognito__enum для збору всіх пулів користувачів, клієнтів пулів користувачів, пулів ідентичності, користувачів тощо, видимих у поточному обліковому записі AWS:
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)