GCP - Cloudfunctions Privesc
cloudfunctions
Više informacija o Cloud Functions:
GCP - Cloud Functions Enumcloudfunctions.functions.create
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
cloudfunctions.functions.create
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
Napadač sa ovim privilegijama može kreirati novu Cloud funkciju sa proizvoljnim (zlonamernim) kodom i dodeliti joj Service Account. Zatim, može procuriti token Service Account-a iz metapodataka kako bi eskalirao privilegije na njega. Možda će biti potrebne neke privilegije za pokretanje funkcije.
Skripte za eksploataciju ovog metoda mogu se pronaći ovde i ovde, a preizgrađeni .zip fajl može se pronaći ovde.
cloudfunctions.functions.update
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
cloudfunctions.functions.update
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
Napadač sa ovim privilegijama može modifikovati kod funkcije i čak modifikovati pridruženi servisni nalog sa ciljem ekstrakcije tokena. Možda će biti potrebne neke privilegije za pokretanje funkcije.
Skripta za eksploataciju ovog metoda može se pronaći ovde.
cloudfunctions.functions.sourceCodeSet
cloudfunctions.functions.sourceCodeSet
Sa ovom dozvolom možete dobiti potpisan URL kako biste mogli da otpremite fajl u bucket funkcije (ali kod funkcije se neće promeniti, i dalje je potrebno da ga ažurirate)
Nisam siguran koliko je korisna samo ova dozvola iz perspektive napadača, ali dobro je znati.
cloudfunctions.functions.setIamPolicy
, iam.serviceAccounts.actAs
cloudfunctions.functions.setIamPolicy
, iam.serviceAccounts.actAs
Dajte sebi bilo koju od prethodnih privilegija .update
ili .create
kako biste eskalirali privilegije.
cloudfunctions.functions.update
cloudfunctions.functions.update
Samo imajući dozvole za cloudfunctions
, bez iam.serviceAccounts.actAs
nećete moći da ažurirate funkciju, TAKO DA OVO NIJE VALIDNA PRIVILEGIJA.
Dozvole za pisanje u kanti
Napadač sa dozvolama za pisanje u kanti gde je smešten kod Cloud Functions će moći da menja kod prebrisivanjem function_code.zip
i moći će da izvršava proizvoljni kod nakon što se izvrši.
Reference
Last updated