GCP - Cloudfunctions Privesc
cloudfunctions
Maelezo zaidi kuhusu Cloud Functions:
GCP - Cloud Functions Enumcloudfunctions.functions.create
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
cloudfunctions.functions.create
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
Mshambuliaji mwenye ruhusa hizi anaweza kuunda Cloud Function mpya yenye msimbo wa (mbaya) na kuipatia Akaunti ya Huduma. Kisha, vuja token ya Akaunti ya Huduma kutoka kwenye metadata ili kupandisha ruhusa kwake. Ruhusa zingine za kuanzisha kazi hiyo zinaweza kuhitajika.
Mifano ya skripti za kutumia mbinu hii inaweza kupatikana hapa na hapa na faili ya .zip iliyojengwa tayari inaweza kupatikana hapa.
cloudfunctions.functions.update
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
cloudfunctions.functions.update
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
Mshambuliaji mwenye ruhusa hizi anaweza kubadilisha msimbo wa Kazi na hata kubadilisha akaunti ya huduma iliyounganishwa kwa lengo la kuhamasisha token.
Ili kupeleka kazi za wingu, pia utahitaji ruhusa za actAs juu ya akaunti ya huduma ya kawaida ya kompyuta au juu ya akaunti ya huduma inayotumika kujenga picha.
Ruhusa za ziada kama ruhusa ya .call
kwa toleo la 1 la cloudfunctions au jukumu role/run.invoker
ili kuanzisha kazi hiyo zinaweza kuhitajika.
Ikiwa unapata kosa Permission 'run.services.setIamPolicy' denied on resource...
ni kwa sababu unatumia param --allow-unauthenticated
na huna ruhusa za kutosha kwa hiyo.
Script ya exploit kwa njia hii inaweza kupatikana hapa.
cloudfunctions.functions.sourceCodeSet
cloudfunctions.functions.sourceCodeSet
Kwa ruhusa hii unaweza kupata URL iliyosainiwa ili uweze kupakia faili kwenye mfuko wa kazi (lakini msimbo wa kazi hautabadilishwa, bado unahitaji kuisasisha)
Sijui jinsi ruhusa hii pekee ilivyo na manufaa kutoka kwa mtazamo wa mshambuliaji, lakini ni vizuri kujua.
cloudfunctions.functions.setIamPolicy
, iam.serviceAccounts.actAs
cloudfunctions.functions.setIamPolicy
, iam.serviceAccounts.actAs
Jipe ruhusa yoyote kati ya .update
au .create
zilizotangulia ili kupandisha hadhi.
cloudfunctions.functions.update
cloudfunctions.functions.update
Kuwa na ruhusa za cloudfunctions
pekee, bila iam.serviceAccounts.actAs
huwezi kusaidia kusasisha kazi HII SI VALID PRIVESC.
Ruhusa za Kuandika kwenye Bucket
Unaweza kufikiria kwamba mshambuliaji mwenye ruhusa za kuandika kwenye bucket ambapo msimbo wa Cloud Functions umehifadhiwa ataweza kubadilisha msimbo kwa kufuta function_code.zip
na kisha kufanya kazi hiyo itekeleze msimbo wowote.
Hata hivyo, hii si kweli, kufuta tu msimbo ndani ya bucket hakutabadilisha msimbo unaotekelezwa.
Marejeo
Last updated