GCP - Privilege Escalation

Reading time: 6 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Introduction to GCP Privilege Escalation

GCP, kama wingu lingine lolote, lina misingi fulani: watumiaji, vikundi na akaunti za huduma, na rasilimali fulani kama injini ya kompyuta, kazi za wingu…
Kisha, kupitia majukumu, idhini zinatolewa kwa hao misingi juu ya rasilimali. Hii ndiyo njia ya kubainisha idhini ambazo msingi una juu ya rasilimali katika GCP.
Kuna idhini fulani ambazo zitaruhusu mtumiaji kupata idhini zaidi juu ya rasilimali au rasilimali za upande wa tatu, na hiyo ndiyo inayoitwa kupanda hadhi (pia, matumizi ya udhaifu kupata idhini zaidi).

Kwa hivyo, ningependa kutenganisha mbinu za kupanda hadhi za GCP katika makundi 2:

  • Privesc kwa msingi: Hii itakuruhusu kujifanya kama msingi mwingine, na hivyo kutenda kama yeye kwa idhini zake zote. mfano: Tumia getAccessToken kujifanya kama akaunti ya huduma.
  • Privesc juu ya rasilimali: Hii itakuruhusu kupata idhini zaidi juu ya rasilimali maalum. mfano: unaweza kutumia idhini ya setIamPolicy juu ya kazi za wingu kukuruhusu kuanzisha kazi hiyo.
  • Kumbuka kwamba baadhi ya idhini za rasilimali pia zitakuruhusu kuunganisha akaunti ya huduma isiyo na mipaka kwenye rasilimali. Hii inamaanisha kwamba utaweza kuzindua rasilimali na SA, kuingia kwenye rasilimali, na kuiba token ya SA. Kwa hivyo, hii itaruhusu kupanda hadhi kwa msingi kupitia kupanda hadhi ya rasilimali. Hii imekuwa ikitokea katika rasilimali kadhaa hapo awali, lakini sasa ni nadra (lakini bado inaweza kutokea).

Kwa wazi, mbinu za kupanda hadhi zinazovutia zaidi ni zile za kundi la pili kwa sababu zitakuruhusu kupata idhini zaidi nje ya rasilimali ambazo tayari una baadhi ya idhini. Hata hivyo, kumbuka kwamba kupanda hadhi katika rasilimali kunaweza pia kukupa ufikiaji wa habari nyeti au hata kwa misingi mingine (labda kupitia kusoma siri ambayo ina token ya SA).

warning

Ni muhimu pia kutambua kwamba katika GCP Akaunti za Huduma ni misingi na idhini, hivyo kupanda hadhi katika SA kutakuruhusu kujifanya kama hiyo pia.

note

Idhini kati ya mabano zinaonyesha idhini zinazohitajika kutumia udhaifu na gcloud. Hizi zinaweza kutokuwa zinahitajika ikiwa unatumia kupitia API.

Permissions for Privilege Escalation Methodology

Hii ndiyo jinsi ninavyofanya jaribio la idhini maalum ili kutekeleza vitendo maalum ndani ya GCP.

  1. Pakua repo ya github https://github.com/carlospolop/gcp_privesc_scripts
  2. Ongeza katika tests/ script mpya

Bypassing access scopes

Token za SA zilizovuja kutoka huduma ya metadata ya GCP zina mipaka ya ufikiaji. Hizi ni vizuizi juu ya idhini ambazo token ina. Kwa mfano, ikiwa token ina https://www.googleapis.com/auth/cloud-platform upeo, itakuwa na ufikiaji kamili kwa huduma zote za GCP. Hata hivyo, ikiwa token ina https://www.googleapis.com/auth/cloud-platform.read-only upeo, itakuwa na ufikiaji wa kusoma tu kwa huduma zote za GCP hata kama SA ina idhini zaidi katika IAM.

Hakuna njia ya moja kwa moja ya kupita hizi idhini, lakini unaweza kila wakati kujaribu kutafuta akidi mpya katika mwenyeji aliyeathirika, pata funguo za huduma ili kuunda token ya OAuth bila vizuizi au kuruka kwenye VM tofauti isiyo na vizuizi.

Wakati mipaka ya ufikiaji zinapotumika, token ya OAuth ambayo inaundwa kwa ajili ya mfano wa kompyuta (VM) itakuwa na upeo wa vizuizi vilivyomo. Hata hivyo, unaweza kuwa na uwezo wa kupita vizuizi hivi na kutumia idhini ambazo akaunti iliyovunjika ina.

Njia bora ya kupita vizuizi hii ni ama kupata akidi mpya katika mwenyeji aliyeathirika, kupata funguo za huduma ili kuunda token ya OAuth bila vizuizi au kuathiri VM tofauti yenye SA isiyo na vizuizi.

Angalia SA na funguo zilizoundwa na:

bash
for i in $(gcloud iam service-accounts list --format="table[no-heading](email)"); do
echo "Looking for keys for $i:"
gcloud iam service-accounts keys list --iam-account $i
done

Mbinu za Kukuza Haki

Njia ya kukuza haki zako katika AWS ni kuwa na ruhusa za kutosha ili uweze, kwa namna fulani, kufikia haki za akaunti nyingine za huduma/katumiaji/mikundi. Kuunganisha kukuza hadi upate ufikiaji wa admin juu ya shirika.

warning

GCP ina mamia (ikiwa si maelfu) ya ruhusa ambazo chombo kinaweza kupewa. Katika kitabu hiki unaweza kupata ruhusa zote ninazozijua ambazo unaweza kutumia vibaya ili kukuza haki, lakini ikiwa unajua njia fulani ambayo haijatajwa hapa, tafadhali shiriki.

Kurasa ndogo za sehemu hii zimepangwa kwa huduma. Unaweza kupata kwenye kila huduma njia tofauti za kukuza haki kwenye huduma hizo.

Kutumia GCP kukuza haki za ndani

Ikiwa uko ndani ya mashine katika GCP unaweza kuwa na uwezo wa kutumia ruhusa kukuza haki hata ndani:

GCP - local privilege escalation ssh pivoting

Marejeo

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks