AWS - Cognito Unauthenticated Enum

Support HackTricks

Unauthenticated Cognito

Cognito to usługa AWS, która umożliwia deweloperom przyznawanie użytkownikom ich aplikacji dostępu do usług AWS. Deweloperzy przyznają role IAM uwierzytelnionym użytkownikom w swojej aplikacji (potencjalnie ludzie będą mogli się po prostu zarejestrować) i mogą również przyznać rolę IAM użytkownikom nieuwierzytelnionym.

Aby uzyskać podstawowe informacje o Cognito, sprawdź:

Identity Pool ID

Pule tożsamości mogą przyznawać role IAM użytkownikom nieuwierzytelnionym, którzy po prostu znają ID puli tożsamości (co jest dość powszechne do znalezienia), a atakujący z tymi informacjami może próbować uzyskać dostęp do tej roli IAM i ją wykorzystać. Ponadto, role IAM mogą być również przypisane do uwierzytelnionych użytkowników, którzy uzyskują dostęp do puli tożsamości. Jeśli atakujący może zarejestrować użytkownika lub już ma dostęp do dostawcy tożsamości używanego w puli tożsamości, może uzyskać dostęp do roli IAM przyznawanej uwierzytelnionym użytkownikom i nadużyć jej uprawnień.

Sprawdź, jak to zrobić tutaj.

User Pool ID

Domyślnie Cognito pozwala na rejestrację nowego użytkownika. Możliwość zarejestrowania użytkownika może dać ci dostęp do podstawowej aplikacji lub do uwierzytelnionej roli dostępu IAM puli tożsamości, która akceptuje jako dostawcę tożsamości Pulę Użytkowników Cognito. Sprawdź, jak to zrobić tutaj.

Pacu modules for pentesting and enumeration

Pacu, framework do eksploatacji AWS, teraz zawiera moduły "cognito__enum" i "cognito__attack", które automatyzują enumerację wszystkich zasobów Cognito w koncie i oznaczają słabe konfiguracje, atrybuty użytkowników używane do kontroli dostępu itp., a także automatyzują tworzenie użytkowników (w tym wsparcie MFA) i eskalację uprawnień na podstawie modyfikowalnych atrybutów niestandardowych, używalnych poświadczeń puli tożsamości, ról, które można przyjąć w tokenach id itp.

Aby uzyskać opis funkcji modułów, zobacz część 2 postu na blogu. Aby uzyskać instrukcje instalacji, zobacz główną stronę Pacu.

Usage

Przykład użycia cognito__attack do próby utworzenia użytkownika i wszystkich wektorów privesc przeciwko danej puli tożsamości i kliencie puli użytkowników:

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

Przykład użycia cognito__enum do zbierania wszystkich pul użytkowników, klientów pul użytkowników, pul tożsamości, użytkowników itp. widocznych w bieżącym koncie AWS:

Pacu (new:test) > run cognito__enum
Wsparcie dla HackTricks

Last updated