GCP - Storage Privesc
Storage
Basic Information:
GCP - Storage Enumstorage.objects.get
storage.objects.get
Ruhusa hii inakuwezesha kupakua faili zilizohifadhiwa ndani ya Cloud Storage. Hii inaweza kukuwezesha kupandisha mamlaka kwa sababu katika baadhi ya matukio taarifa nyeti huhifadhiwa hapo. Zaidi ya hayo, baadhi ya huduma za GCP huhifadhi taarifa zao katika ndoo:
GCP Composer: Unapounda Mazingira ya Composer, kanuni za DAG zote zitahifadhiwa ndani ya ndoo. Kazi hizi zinaweza kuwa na taarifa za kuvutia ndani ya kanuni zao.
GCR (Container Registry): Picha za kontena huhifadhiwa ndani ya ndoo, ambayo ina maana kwamba ikiwa unaweza kusoma ndoo hizo utaweza kupakua picha na kutafuta leaks na/au msimbo wa chanzo.
storage.objects.setIamPolicy
storage.objects.setIamPolicy
Unaweza kujipa ruhusa ya kudhulumu yoyote ya matukio ya awali ya sehemu hii.
storage.buckets.setIamPolicy
storage.buckets.setIamPolicy
Kwa mfano wa jinsi ya kubadilisha ruhusa kwa kutumia ruhusa hii angalia ukurasa huu:
GCP - Public Buckets Privilege Escalationstorage.hmacKeys.create
storage.hmacKeys.create
Kipengele cha "interoperability" cha Cloud Storage, kilichoundwa kwa ajili ya mawasiliano ya msalaba wa wingu kama na AWS S3, kinahusisha kuunda funguo za HMAC kwa Akaunti za Huduma na watumiaji. Mshambuliaji anaweza kutumia hii kwa kuunda funguo za HMAC kwa Akaunti ya Huduma yenye mamlaka ya juu, hivyo kupandisha mamlaka ndani ya Cloud Storage. Ingawa funguo za HMAC zinazohusishwa na watumiaji zinaweza kupatikana tu kupitia console ya wavuti, funguo za ufikiaji na siri zinabaki kupatikana milele, zikiwa na uwezo wa kuhifadhi upatikanaji wa akiba. Kwa upande mwingine, funguo za HMAC zinazohusishwa na Akaunti za Huduma zinapatikana kupitia API, lakini funguo zao za ufikiaji na siri hazipatikani baada ya kuundwa, kuongeza tabaka la ugumu kwa upatikanaji wa kudumu.
Scripti nyingine ya kutekeleza kwa njia hii inaweza kupatikana hapa.
storage.objects.create
, storage.objects.delete
= Ruhusa za Kuandika Hifadhi
storage.objects.create
, storage.objects.delete
= Ruhusa za Kuandika HifadhiIli kuunda kitu kipya ndani ya bakuli unahitaji storage.objects.create
na, kulingana na nyaraka, unahitaji pia storage.objects.delete
ili kubadilisha kitu kilichopo.
Kuvunja kwa kawaida kwa bakuli ambapo unaweza kuandika katika wingu ni katika kesi bakuli linaokoa faili za seva za wavuti, unaweza kuwa na uwezo wa kuhifadhi msimbo mpya ambao utatumika na programu ya wavuti.
Composer
Composer ni Apache Airflow inayosimamiwa ndani ya GCP. Ina vipengele kadhaa vya kuvutia:
Inafanya kazi ndani ya GKE cluster, hivyo SA ambayo cluster inatumia inapatikana na msimbo unaotembea ndani ya Composer
Inaweka msimbo katika bakuli, kwa hivyo, mtu yeyote mwenye ruhusa ya kuandika juu ya bakuli hiyo atakuwa na uwezo wa kubadilisha/kutia msimbo wa DGA (msimbo ambao Apache Airflow itatekeleza) Kisha, ikiwa una ruhusa ya kuandika juu ya bakuli ambayo Composer inatumia kuhifadhi msimbo, unaweza privesc kwa SA inayotembea katika GKE cluster.
Cloud Functions
Msimbo wa Cloud Functions unahifadhiwa katika Hifadhi, hivyo kufuta na kuandika tena, inawezekana kutekeleza msimbo wa kiholela.
App Engine
Msimbo wa chanzo wa App Engine unahifadhiwa katika bakuli, kufuta msimbo inaweza kuwa inawezekana kutekeleza msimbo wa kiholela. HII HAIWEZEKANI
Inaonekana kama tabaka za kontena zinahifadhiwa katika bakuli, labda kubadilisha hizo?
GCR
Google Container Registry inahifadhi picha ndani ya bakuli, ikiwa unaweza kuandika hizo bakuli unaweza kuwa na uwezo wa kuhamasisha kwa upande ambapo hizo bakuli zinatumika.
Bakuli inayotumiwa na GCR itakuwa na URL inayofanana na
gs://<eu/usa/asia/nothing>.artifacts.<project>.appspot.com
(Subdomain za kiwango cha juu zimeelezwa hapa).
Marejeo
Last updated