AWS - Cognito Privesc
Cognito
Kwa habari zaidi kuhusu Cognito angalia:
pageAWS - Cognito EnumKukusanya Anwani za Kitambulisho kutoka Kwa Dimbwi la Kitambulisho
Kwa kuwa Cognito inaweza kutoa anwani za kitambulisho za jukumu la IAM kwa watumiaji waliothibitishwa na wasiothibitishwa, ikiwa utapata Kitambulisho la Dimbwi la Kitambulisho la programu (linapaswa kuwa limeandikwa kwenye hiyo) unaweza kupata anwani mpya na hivyo ukarabati wa haki (ndani ya akaunti ya AWS ambapo labda hata haukuwa na anwani hapo awali).
Kwa habari zaidi angalia ukurasa huu.
Athari Inayowezekana: Ukarabati wa moja kwa moja kwa jukumu la huduma lililounganishwa na watumiaji wasiothibitishwa (na labda kwa lile lililoambatishwa kwa watumiaji waliothibitishwa).
cognito-identity:SetIdentityPoolRoles
, iam:PassRole
cognito-identity:SetIdentityPoolRoles
, iam:PassRole
Kwa idhini hii unaweza kutoa jukumu lolote la cognito kwa watumiaji waliothibitishwa/wasiothibitishwa wa programu ya cognito.
Ikiwa programu ya cognito haina watumiaji wasiothibitishwa wakiwezeshwa unaweza pia kuhitaji ruhusa ya cognito-identity:UpdateIdentityPool
kuwezesha hilo.
Matokeo Yanayowezekana: Privesc moja kwa moja kwa jukumu lolote la cognito.
cognito-identity:update-identity-pool
cognito-identity:update-identity-pool
Mshambuliaji mwenye ruhusa hii anaweza kuweka kwa mfano Cognito User Pool chini ya udhibiti wake au mtoa huduma mwingine yeyote wa utambulisho ambapo anaweza kuingia kama njia ya kufikia hii Cognito Identity Pool. Kisha, tu kuingia kwenye mtoa huduma huyo wa mtumiaji kutamruhusu kufikia jukumu lililothibitishwa lililoconfigure katika Identity Pool.
Pia ni inawezekana kutumia ruhusa hii kuruhusu uthibitishaji wa msingi:
Athari Inayoweza Kutokea: Kudukua jukumu lililoidhinishwa la IAM ndani ya dimbwi la kitambulisho.
cognito-idp:AdminAddUserToGroup
cognito-idp:AdminAddUserToGroup
Ruhusa hii inaruhusu kuongeza mtumiaji wa Cognito kwenye kikundi cha Cognito, hivyo basi mshambuliaji anaweza kutumia ruhusa hii kuongeza mtumiaji chini ya udhibiti wake kwenye vikundi vingine vyenye ruhusa bora au majukumu tofauti ya IAM:
Athari Inayowezekana: Privesc kwenda kwa vikundi vingine vya Cognito na majukumu ya IAM yanayohusishwa na Vikundi vya User Pool.
(cognito-idp:CreateGroup
| cognito-idp:UpdateGroup
), iam:PassRole
cognito-idp:CreateGroup
| cognito-idp:UpdateGroup
), iam:PassRole
Mshambuliaji mwenye ruhusa hizi anaweza kuunda/kusasisha vikundi na kila jukumu la IAM linaloweza kutumiwa na Mtoa Huduma ya Kitambulisho cha Cognito kilichodukuliwa na kufanya mtumiaji aliye dhoofishwa kuwa sehemu ya kikundi, kupata ufikivu wa majukumu hayo yote:
Madhara Yanayoweza Kutokea: Privesc kwenda kwa majukumu mengine ya IAM ya Cognito.
cognito-idp:AdminConfirmSignUp
cognito-idp:AdminConfirmSignUp
Ruhusa hii inaruhusu kuthibitisha usajili. Kwa chaguo-msingi yeyote anaweza kujiandikisha kwenye programu za Cognito, ikiwa imeachwa hivyo, mtumiaji anaweza kuunda akaunti na data yoyote na kuitathmini kwa ruhusa hii.
Athari Inayoweza Kutokea: Privesc isiyo ya moja kwa moja kwa jukumu la IAM la dimbwi la kitambulisho kwa watumiaji waliothibitishwa ikiwa unaweza kujiandikisha mtumiaji mpya. Privesc isiyo ya moja kwa moja kwa utendaji mwingine wa programu ukiwa na uwezo wa kuthibitisha akaunti yoyote.
cognito-idp:AdminCreateUser
cognito-idp:AdminCreateUser
Ruhusa hii ingemruhusu mshambuliaji kuunda mtumiaji mpya ndani ya dimbwi la watumiaji. Mtumiaji mpya huundwa akiwa amewezeshwa, lakini atahitaji kubadilisha nenosiri lake.
Athari Inayoweza Kutokea: Privesc moja kwa moja kwa jukumu la IAM la dimbwi la kitambulisho kwa watumiaji waliothibitishwa. Privesc isiyo ya moja kwa moja kwa utendaji mwingine wa programu ukiwa na uwezo wa kuunda mtumiaji yeyote
cognito-idp:AdminEnableUser
cognito-idp:AdminEnableUser
Ruhusa hii inaweza kusaidia katika hali ya kipekee sana ambapo muhusika amepata siri za mtumiaji aliyefungwa na anahitaji kuwawezesha tena.
Athari Inayowezekana: Privesc isiyo ya moja kwa moja kwa jukumu la IAM la dimbwi la kitambulisho kwa watumiaji waliothibitishwa na ruhusa ya mtumiaji ikiwa muhusika angekuwa na sifa za mtumiaji aliyefungwa.
cognito-idp:AdminInitiateAuth
, cognito-idp:AdminRespondToAuthChallenge
cognito-idp:AdminInitiateAuth
, cognito-idp:AdminRespondToAuthChallenge
Kibali hiki kuruhusu kuingia kwa njia ya ADMIN_USER_PASSWORD_AUTH. Kwa maelezo zaidi fuata kiungo.
cognito-idp:AdminSetUserPassword
cognito-idp:AdminSetUserPassword
Kibali hiki kingeiruhusu muhusika kubadilisha nenosiri la mtumiaji yeyote, kumfanya aweze kujifanya kuwa mtumiaji yeyote (ambaye hana MFA imewezeshwa).
Athari Inayowezekana: Privesc moja kwa moja kwa karibu mtumiaji yeyote, hivyo kupata ufikiaji wa vikundi vyote ambavyo kila mtumiaji ni mwanachama na ufikiaji wa jukumu la IAM lililo thibitishwa na Kitambulisho cha Dimbwi.
cognito-idp:AdminSetUserSettings
| cognito-idp:SetUserMFAPreference
| cognito-idp:SetUserPoolMfaConfig
| cognito-idp:UpdateUserPool
cognito-idp:AdminSetUserSettings
| cognito-idp:SetUserMFAPreference
| cognito-idp:SetUserPoolMfaConfig
| cognito-idp:UpdateUserPool
AdminSetUserSettings: Mshambuliaji anaweza kutumia ruhusa hii kwa uwezekano wa kuweka simu ya mkononi chini ya udhibiti wake kama SMS MFA ya mtumiaji.
SetUserMFAPreference: Kama ilivyokuwa kwa ile ya awali, ruhusa hii inaweza kutumika kuweka upendeleo wa MFA wa mtumiaji ili kudukua ulinzi wa MFA.
SetUserPoolMfaConfig: Kama ilivyokuwa kwa ile ya awali, ruhusa hii inaweza kutumika kuweka mipangilio ya MFA ya dimbwi la watumiaji ili kukiuka ulinzi wa MFA.
SasishaUserPool: Pia inawezekana kusasisha dimbwi la watumiaji ili kubadilisha sera ya MFA. Angalia hapa cli.
Matokeo Yanayowezekana: Privesc isiyo ya moja kwa moja kwa karibu mtumiaji yeyote ambaye mshambuliaji anajua siri zake, hii inaweza kuruhusu kukiuka ulinzi wa MFA.
cognito-idp:AdminUpdateUserAttributes
cognito-idp:AdminUpdateUserAttributes
Mshambuliaji mwenye ruhusa hii anaweza kubadilisha barua pepe au nambari ya simu au sifa nyingine yoyote ya mtumiaji chini ya udhibiti wake kujaribu kupata mamlaka zaidi katika programu ya msingi. Hii inaruhusu kubadilisha barua pepe au nambari ya simu na kuweka kama imehakikiwa.
Athari Inayowezekana: Privesc ya moja kwa moja katika programu ya msingi inayotumia Cognito User Pool ambayo inatoa mamlaka kulingana na sifa za mtumiaji.
cognito-idp:CreateUserPoolClient
| cognito-idp:UpdateUserPoolClient
cognito-idp:CreateUserPoolClient
| cognito-idp:UpdateUserPoolClient
Mshambuliaji mwenye idhini hii anaweza kuunda Mteja Mpya wa User Pool usio na vizuizi zaidi kuliko wateja wa dimbwi lililopo tayari. Kwa mfano, mteja mpya unaweza kuruhusu aina yoyote ya njia ya kuthibitisha, usiwe na siri yoyote, kuwezesha kufuta kwa alama za kidole, kuruhusu alama kuwa halali kwa muda mrefu...
Hali hiyo hiyo inaweza kufanyika ikiwa badala ya kuunda mteja mpya, mteja uliopo unabadilishwa.
Katika mstari wa amri (au wa kuboresha) unaweza kuona chaguo zote, zitazame!.
Athari Inayowezekana: Privesc ya moja kwa moja kwa mtumiaji aliyeidhinishwa na Kitambulisho cha Kitambulisho kinachotumiwa na Kitambulisho cha Mtumiaji kwa kujenga mteja mpya ambao unapunguza hatua za usalama na kuruhusu mpangaji kuingia kwa mtumiaji ambaye alikuwa na uwezo wa kuunda.
cognito-idp:CreateUserImportJob
| cognito-idp:StartUserImportJob
cognito-idp:CreateUserImportJob
| cognito-idp:StartUserImportJob
Mshambuliaji anaweza kutumia ruhusa hii kuunda watumiaji kwa kupakia csv na watumiaji wapya.
Athari Inayowezekana: Privesc moja kwa moja kwa jukumu la IAM la dimbwi la kitambulisho kwa watumiaji waliothibitishwa. Privesc isiyo ya moja kwa moja kwa utendaji mwingine wa programu ukiwa na uwezo wa kuunda mtumiaji yeyote.
cognito-idp:CreateIdentityProvider
| cognito-idp:UpdateIdentityProvider
cognito-idp:CreateIdentityProvider
| cognito-idp:UpdateIdentityProvider
Mshambuliaji anaweza kuunda mtoa kitambulisho mpya kisha kuweza kuingia kupitia mtoa huyu.
Matokeo Yanayowezekana: Privesc moja kwa moja kwa jukumu la IAM la dimbwi la kitambulisho kwa watumiaji waliothibitishwa. Privesc isiyo ya moja kwa moja kwa utendaji mwingine wa programu ukiwa na uwezo wa kuunda mtumiaji yeyote.
Uchambuzi wa cognito-sync:*
Hii ni idhini ya kawaida sana kwa chaguo-msingi katika majukumu ya Dimbwi la Kitambulisho la Cognito. Hata kama alama ya mwanya katika idhini daima inaonekana mbaya (hasa ikija kutoka AWS), idhini zilizotolewa sio za maana sana kutoka mtazamo wa mshambuliaji.
Idhini hii inaruhusu kusoma habari za matumizi ya Dimbwi la Kitambulisho na Vitambulisho vya Kitambulisho ndani ya Dimbwi la Kitambulisho (ambayo sio habari nyeti). Vitambulisho vya Kitambulisho vinaweza kuwa na Datasets zilizopewa, ambazo ni habari za vikao (AWS inaielezea kama mchezo uliohifadhiwa). Inaweza kuwa inawezekana kwamba hii ina habari fulani nyeti (lakini uwezekano ni mdogo sana). Unaweza kupata katika ukurasa wa uchambuzi jinsi ya kupata habari hii.
Mshambuliaji pia anaweza kutumia idhini hizi kujisajili kwenye mtiririko wa Cognito unaotangaza mabadiliko kwenye vikao hivi au lambda inayosababisha matukio ya cognito. Sijawahi kuona hili likitumika, na singetarajia kuwepo kwa habari nyeti hapa, lakini sio jambo lisilowezekana.
Zana za Kiotomatiki
Pacu, fremu ya unyonyaji ya AWS, sasa inajumuisha moduli za "cognito__enum" na "cognito__attack" ambazo zinautomatisha uchambuzi wa mali zote za Cognito katika akaunti na kuashiria usanidi dhaifu, sifa za mtumiaji zinazotumiwa kwa kudhibiti ufikiaji, n.k., na pia kiotomatiki uundaji wa mtumiaji (ikiwa ni pamoja na usaidizi wa MFA) na privesc kulingana na sifa za desturi zinazoweza kuhaririwa, vitambulisho vya kitambulisho vinavyoweza kutumiwa, majukumu yanayoweza kuchukuliwa katika alama za kitambulisho, n.k.
Kwa maelezo ya kazi za moduli angalia sehemu ya 2 ya machapisho ya blogu. Kwa maelekezo ya usakinishaji angalia ukurasa wa kuu wa Pacu.
Matumizi
Matumizi ya mfano ya cognito__attack kujaribu uundaji wa mtumiaji na vekta zote za privesc dhidi ya dimbwi la kitambulisho lililopewa na mteja wa dimbwi la mtumiaji:
Matumizi ya cognito__enum ya sampuli kuchukua mabwawa yote ya watumiaji, wateja wa bwawa la watumiaji, mabwawa ya utambulisho, watumiaji, n.k. yanayoonekana katika akaunti ya AWS ya sasa:
Cognito Scanner ni chombo cha CLI kilichoandikwa kwa lugha ya python ambacho kinatekeleza mashambulizi tofauti kwenye Cognito ikiwa ni pamoja na kuboresha mamlaka ya upatikanaji.
Usanidi
Matumizi
Kwa maelezo zaidi angalia https://github.com/padok-team/cognito-scanner
Last updated