GCP - Privilege Escalation

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Inleiding tot GCP Voorregverhoging

GCP, soos enige ander wolk, het sekere beginsels: gebruikers, groepe en diensrekeninge, en sekere hulpbronne soos rekenaarmasjien, wolkfunksies... Dan word, deur middel van rolle, toestemmings aan hierdie beginsels oor die hulpbronne toegeken. Dit is die manier om die toestemmings wat 'n beginsel oor 'n hulpbron in GCP het, te spesifiseer. Daar is sekere toestemmings wat 'n gebruiker sal toelaat om selfs meer toestemmings op die hulpbron of derde party hulpbronne te kry, en dit is wat voorregverhoging genoem word (ook, die uitbuiting van kwesbaarhede om meer toestemmings te kry).

Daarom wil ek GCP voorregverhogingstegnieke graag in 2 groepe verdeel:

  • Voorregverhoging na 'n beginsel: Dit sal jou in staat stel om 'n ander beginsel te verpersoonlik, en dus optree soos dit met al sy toestemmings. bv.: Misbruik getAccessToken om 'n diensrekening te verpersoonlik.

  • Voorregverhoging op die hulpbron: Dit sal jou in staat stel om meer toestemmings oor die spesifieke hulpbron te kry. bv.: jy kan misbruik maak van setIamPolicy toestemming oor wolkfunksies om jou in staat te stel om die funksie te aktiveer.

  • Let daarop dat sommige hulpbron-toestemmings jou ook in staat sal stel om 'n willekeurige diensrekening aan die hulpbron te heg. Dit beteken dat jy 'n hulpbron met 'n SA kan begin, in die hulpbron kan kom, en die SA-token kan steel. Dit sal dus toelaat om na 'n beginsel te verhoog via 'n hulpbronverhoging. Dit het voorheen in verskeie hulpbronne gebeur, maar dit is nou minder gereeld (maar kan steeds gebeur).

Dit is vanselfsprekend dat die mees interessante voorregverhogingstegnieke diegene van die tweede groep is, omdat dit jou in staat sal stel om meer voorregte buite die hulpbronne wat jy reeds het, te kry. Let egter daarop dat verhoging in hulpbronne jou ook toegang kan gee tot sensitiewe inligting of selfs tot ander beginsels (dalk deur 'n geheim te lees wat 'n token van 'n SA bevat).

Dit is ook belangrik om daarop te let dat in GCP-diensrekeninge sowel beginsels as toestemmings is, sodat die verhoging van voorregte in 'n SA jou ook in staat sal stel om dit te verpersoonlik.

Die toestemmings tussen hakies dui die toestemmings aan wat nodig is om die kwesbaarheid met gcloud uit te buit. Dit mag dalk nie nodig wees as dit deur die API uitgebuit word nie.

Toestemmings vir Voorregverhoging Metodologie

Dit is hoe ek spesifieke toestemmings toets om spesifieke aksies binne GCP uit te voer.

  1. Voeg die nuwe skripsie by in tests/.

Om toegangsbereik te omseil

Tokens van SA wat uit die GCP-metadatasdiens uitgelek is, het toegangsbereike. Dit is beperkings op die toestemmings wat die token het. Byvoorbeeld, as die token die https://www.googleapis.com/auth/cloud-platform-bereik het, sal dit volle toegang tot alle GCP-diens hê. As die token egter die https://www.googleapis.com/auth/cloud-platform.read-only-bereik het, sal dit slegs slegs-leestoegang tot alle GCP-diens hê, selfs al het die SA meer toestemmings in IAM.

Daar is geen direkte manier om hierdie toestemmings te omseil nie, maar jy kan altyd probeer om te soek na nuwe geloofsbriewe in die gekompromitteerde gasheer, die dienssleutel vind om 'n OAuth-token sonder beperking te genereer, of spring na 'n ander VM met minder beperkings.

Wanneer toegangsbereike gebruik word, sal die OAuth-token wat vir die rekenaarmasjien (VM) gegenereer word, 'n bereikbeperking ingesluit hê. Jy mag egter dalk hierdie beperking kan omseil en die toestemmings wat die gekompromitteerde rekening het, uitbuit.

Die beste manier om hierdie beperking te omseil, is om óf nuwe geloofsbriewe in die gekompromitteerde gasheer te vind, óf die dienssleutel te vind om 'n OAuth-token sonder beperking te genereer, óf 'n ander VM met 'n SA wat minder beperk is, te kompromitteer.

Kyk na SA met gegenereerde sleutels met:

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

Voorregverhogingstegnieke

Die manier om jou voorregte in AWS te verhoog, is om genoeg toestemmings te hê om op een of ander manier toegang te verkry tot die voorregte van ander diensrekeninge/gebruikers/groepe. Kettingvoorregverhogings totdat jy administratiewe toegang tot die organisasie het.

GCP het honderde (as nie duisende) toestemmings wat aan 'n entiteit verleen kan word. In hierdie boek kan jy alle toestemmings wat ek ken wat jy kan misbruik om voorregte te verhoog, vind, maar as jy 'n pad ken wat hier nie genoem word nie, deel dit asseblief.

Die subbladsye van hierdie afdeling is gerangskik volgens dienste. Jy kan op elke diens verskillende maniere vind om voorregte op die dienste te verhoog.

Misbruik van GCP om voorregte plaaslik te verhoog

As jy binne 'n masjien in GCP is, kan jy dalk toestemmings misbruik om voorregte selfs plaaslik te verhoog:

GCP - local privilege escalation ssh pivoting

Verwysings

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated