AWS - Cognito Privesc
Cognito
Kwa habari zaidi kuhusu Cognito angalia:
AWS - Cognito EnumKukusanya siri kutoka kwa Identity Pool
Kwa kuwa Cognito inaweza kutoa sifa za jukumu la IAM kwa watumiaji waliothibitishwa na wasiothibitishwa, ikiwa utapata Kitambulisho cha Identity Pool cha programu (kinapaswa kuwa kimeandikwa kwa nguvu), unaweza kupata siri mpya na hivyo kufanya privesc (ndani ya akaunti ya AWS ambapo labda hata haukuwa na sifa yoyote hapo awali).
Kwa habari zaidi angalia ukurasa huu.
Athari Inayowezekana: Privesc moja kwa moja kwa jukumu la huduma lililounganishwa na watumiaji wasiothibitishwa (na labda kwa lile lililoambatishwa na 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.
If the cognito app doesn't have unauthenticated users enabled you might need also the permission cognito-identity:UpdateIdentityPool
to enable it.
Athari Inayowezekana: Privesc moja kwa moja kwa jukumu lolote la cognito.
cognito-identity:update-identity-pool
cognito-identity:update-identity-pool
Mshambuliaji mwenye idhini hii anaweza kuweka kwa mfano Cognito User Pool chini ya udhibiti wake au mtoa huduma mwingine yeyote wa kitambulisho ambapo anaweza kuingia kama njia ya kufikia hii Cognito Identity Pool. Kisha, tu kuingia kwenye mtoa huduma huyo wa mtumiaji kutamruhusu kufikia jukumu lililowekwa katika Kitambulisho cha Pool.
Pia ni inawezekana kutumia vibaya ruhusa hii kuruhusu uthibitishaji wa msingi:
Athari Inayoweza Kutokea: Kudukua jukumu la IAM lililojulishwa ndani ya dimbwi la kitambulisho.
cognito-idp:AdminAddUserToGroup
cognito-idp:AdminAddUserToGroup
Ruhusa hii inaruhusu kuongeza mtumiaji wa Cognito kwa kikundi cha Cognito, hivyo basi mshambuliaji anaweza kutumia ruhusa hii kuongeza mtumiaji chini ya udhibiti wake kwa vikundi vingine na mamlaka 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 angeweza kuunda/kusasisha vikundi na kila jukumu la IAM linaloweza kutumiwa na Mtoa Huduma wa Kitambulisho cha Cognito kilichodukuliwa na kufanya mtumiaji aliye dhoofishwa kuwa sehemu ya kikundi, kupata ufikivu wa majukumu hayo yote:
Athari Inayowezekana: 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 kusajiliwa kwenye programu za Cognito, ikiwa hilo litabaki, mtumiaji anaweza kuunda akaunti na data yoyote na kuihakiki 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 kusajili mtumiaji mpya. Privesc isiyo ya moja kwa moja kwa utendaji wa programu nyingine 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 mshambuliaji amepata siri za mtumiaji aliyefungwa na anahitaji kuiruhusu 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 vyeti vya mtumiaji aliyefungwa.
cognito-idp:AdminInitiateAuth
, cognito-idp:AdminRespondToAuthChallenge
cognito-idp:AdminInitiateAuth
, cognito-idp:AdminRespondToAuthChallenge
Kibali hiki kuruhusu kuingia kwa njia 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 mipendeleo ya MFA ya dimbwi la watumiaji ili kudukua ulinzi wa MFA.
SasishaUserPool: Pia niwezekana kusasisha dimbwi la watumiaji kubadilisha sera ya MFA. Angalia hapa.
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 idhini 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 imethibitishwa.
Athari Inayowezekana: Privesc ya moja kwa moja katika programu 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 ruhusa hii anaweza kuunda Mteja Mpya wa User Pool usio na vizuizi vingi kama wateja wa pool waliopo tayari. Kwa mfano, mteja mpya unaweza kuruhusu aina yoyote ya njia ya kuthibitisha, usiwe na siri yoyote, kuwezesha kulemaza kufuta ishara, kuruhusu ishara kuwa halali kwa muda mrefu...
Hali hiyo hiyo inaweza kufanyika ikiwa badala ya kuunda mteja mpya, mmoja aliyeopo unabadilishwa.
Katika mstari wa amri (au kisasaisho) unaweza kuona chaguo zote, hakiki!
Athari Inayowezekana: Athari ya privesc isiyo ya moja kwa moja kwa mtumiaji aliyeidhinishwa na Dimbwi la Kitambulisho linalotumiwa na Dimbwi la Watumiaji 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.
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.
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 ya 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). Huenda ikawa 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 udhibiti wa ufikiaji, n.k., na pia kiotomatiki uundaji wa mtumiaji (ikiwa ni pamoja na usaidizi wa MFA) na upandishaji wa hadhi kulingana na sifa za desturi zinazoweza kubadilishwa, vitambulisho vya dimbwi la kitambulisho vinavyoweza kutumiwa, majukumu yanayoweza kufikiwa katika alama za kitambulisho, n.k.
Kwa maelezo ya kazi za moduli angalia sehemu ya 2 ya machapisho ya blogi. 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 lililotolewa na mteja wa dimbwi la mtumiaji:
Matumizi ya cognito__enum kuchanganua 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 python ambacho kinatekeleza mashambulizi tofauti kwenye Cognito ikiwa ni pamoja na kubainisha uwezekano wa kuongeza mamlaka.
Usanidi
Matumizi
Kwa maelezo zaidi angalia https://github.com/padok-team/cognito-scanner
Last updated