AWS - Cognito Unauthenticated Enum

Reading time: 4 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Unauthenticated Cognito

Cognito ni huduma ya AWS inayowezesha watengenezaji kuwawezesha watumiaji wa app zao kupata huduma za AWS. Watengenezaji watatoa IAM roles kwa watumiaji walio na uthibitisho kwenye app yao (huenda watu waweze kujisajili tu) na pia wanaweza kutoa IAM role kwa watumiaji wasiojathibitishwa.

Kwa taarifa za msingi kuhusu Cognito angalia:

AWS - Cognito Enum

Identity Pool ID

Identity Pools zinaweza kutoa IAM roles kwa watumiaji wasiojathibitishwa ambao tu wanajua Identity Pool ID (ambayo ni ya kawaida sana kuipata), na mshambuliaji akiwa na taarifa hii anaweza kujaribu kupata ufikiaji wa IAM role hiyo na kuifanya matumizi mabaya.
Zaidi ya hayo, IAM roles pia zinaweza kutolewa kwa watumiaji walio na uthibitisho wanaoingia kwenye Identity Pool. Ikiwa mshambuliaji anaweza kujiregistra mtumiaji au tayari ana ufikiaji wa identity provider inayotumika katika identity pool, unaweza kupata IAM role inayotolewa kwa watumiaji walio na uthibitisho na kuitumia vibaya ruhusa zake.

Check how to do that here.

User Pool ID

Kwa chaguo-msingi Cognito inaruhusu kujiregistra mtumiaji mpya. Kuwa na uwezo wa kujisajili kunaweza kukupa ufikiaji kwa application iliyoko chini au kwa authenticated IAM access role ya Identity Pool ambayo inakubali Cognito User Pool kama identity provider. Check how to do that here.

Pacu modules for pentesting and enumeration

Pacu, the AWS exploitation framework, sasa inajumuisha moduli za "cognito__enum" na "cognito__attack" ambazo zinaendesha enumeration ya mali zote za Cognito katika akaunti na kubaini misanidi dhaifu, sifa za watumiaji zinazotumika kwa udhibiti wa ufikiaji, n.k., na pia zinaendesha uundaji wa watumiaji (ikiwa ni pamoja na msaada wa MFA) na privilege escalation kulingana na custom attributes zinazoweza kubadilishwa, vitambulisho vinavyotumika vya identity pool, roles zinazoweza kuchukuliwa katika id tokens, n.k.

Kwa maelezo ya kazi za moduli angalia sehemu ya 2 ya blog post. Kwa maagizo ya ufungaji angalia ukurasa mkuu wa Pacu.

Matumizi

Mfano wa matumizi ya cognito__attack kujaribu uundaji wa mtumiaji na vigezo vyote vya privesc dhidi ya identity pool na user pool client fulani:

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

Mfano wa matumizi ya cognito__enum kukusanya user pools zote, user pool clients, identity pools, users, n.k. zinazoonekana katika akaunti ya sasa ya AWS:

bash
Pacu (new:test) > run cognito__enum

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks