GCP - IAM, Principals & Org Policies Enum
Last updated
Last updated
Vir 'n inleiding oor wat 'n diensrekening is, kyk na:
'n Diensrekening behoort altyd aan 'n projek:
Vir 'n inleiding oor hoe Gebruikers & Groepe werk in GCP, kyk na:
Met die toestemmings serviceusage.services.enable
en serviceusage.services.use
is dit moontlik om dienste te aktiveer in 'n projek en hulle te gebruik.
Let daarop dat Stoorplekgebruikers standaard die rol Projek Skepper toegeken word, wat hulle toegang gee om nuwe projekte te skep. Wanneer 'n gebruiker 'n projek skep, kry hy die eienaar
rol daaroor. So, hy kan hierdie dienste oor die projek aktiveer om Stoorplek te kan enumereer.
Let egter daarop dat dit ook nodig is om genoeg toestemmings in Stoorplek te hê om hierdie API's te kan aanroep.
As jy die admin
diens kan aktiveer en as jou gebruiker genoeg voorregte in Stoorplek het, kan jy alle groepe & gebruikers enumereer met die volgende lyne.
Selfs al sê dit identiteitsgroepe
, dit gee ook gebruikers sonder enige groepe terug:
In die vorige voorbeelde is die param --labels
vereis, dus 'n generiese waarde word gebruik (dit is nie nodig as jy die API direk gebruik soos PurplePanda hier doen.
Selfs met die admin-diens geaktiveer, is dit moontlik dat jy 'n fout kry tydens die opname omdat jou gekompromitteerde werkspasie-gebruiker nie genoeg toestemmings het nie:
Kyk hier vir basiese inligting oor IAM.
Van die dokumente: Wanneer 'n organisasie-hulpbron geskep word, word alle gebruikers in jou domein standaard die Billing Account Creator en Project Creator rolle toegeken. Hierdie standaard rolle laat jou gebruikers toe om dadelik Google Cloud te begin gebruik, maar is nie bedoel vir gebruik in die normale werking van jou organisasie-hulpbron nie.
Hierdie rolle gee die toestemmings:
billing.accounts.create
en resourcemanager.organizations.get
resourcemanager.organizations.get
en resourcemanager.projects.create
Meer oor, wanneer 'n gebruiker 'n projek skep, word hy outomaties eienaar van daardie projek volgens die dokumente. Daarom sal 'n gebruiker standaard 'n projek kan skep en enige diens daarop kan hardloop (mynwerkers? Werkspasie opname? ...)
Die hoogste voorreg in 'n GCP-organisasie is die Organization Administrator rol.
In die meeste van die dienste sal jy die toestemmings oor 'n hulpbron kan verander deur die metode add-iam-policy-binding
of set-iam-policy
te gebruik. Die hoofverskil is dat add-iam-policy-binding
'n nuwe rolbinding byvoeg tot die bestaande IAM-beleid terwyl set-iam-policy
die voorheen toegekende toestemmings sal verwyder en slegs diegene wat in die bevel aangedui is, sal instel.
Daar is verskillende maniere om al die regte van 'n gebruiker in verskillende bronne (soos organisasies, vouers, projekte...) te kontroleer met behulp van hierdie diens.
Die reg cloudasset.assets.searchAllIamPolicies
kan alle die iam-beleide binne 'n bron aanvra.
Die toestemming cloudasset.assets.analyzeIamPolicy
kan alle die iam-beleide van 'n hoofsaak binne 'n hulpbron aanvra.
Die toestemming cloudasset.assets.searchAllResources
maak dit moontlik om alle bronne van 'n organisasie, vouer, of projek te lys. IAM-verwante bronne (soos rolle) ingesluit.
Die toestemming cloudasset.assets.analyzeMove
kan nuttig wees om ook beleide wat 'n hulpbron soos 'n projek affekteer, te onttrek
Ek vermoed dat die toestemming cloudasset.assets.queryIamPolicy
ook toegang kan gee om die toestemmings van beginsels te vind
Indien jy nie toegang tot IAM-inligting het nie deur die vorige metodes en jy is in 'n Rooi Span, kan jy die instrument gebruik https://github.com/carlospolop/bf_my_gcp_perms om jou huidige toestemmings te brute force.
Let wel dat die diens cloudresourcemanager.googleapis.com
geaktiveer moet wees.
Op die volgende bladsy kan jy sien hoe om IAM-toestemmings te misbruik om voorregte te eskaleer:
Indien jy hoë voorregte het, kan jy:
Nuwe SAs skep (of gebruikers indien in Workspace)
Prinsipale wat deur jou beheer word, meer toestemmings gee
Meer voorregte aan kwesbare SAs gee (SSRF in vm, kwesbare Cloud Function...)
...
Vir 'n inleiding oor wat Organisasiebeleide is, kyk na:
Die IAM-beleide dui aan watter toestemmings prinsipale het oor hulpbronne via rolle, wat toegewys is aan fynkorrelige toestemmings. Organisasiebeleide beperk hoe daardie dienste gebruik kan word of watter funksies gedeaktiveer is. Dit help om die minste voorreg van elke hulpbron in die GCP-omgewing te verbeter.
Op die volgende bladsy kan jy sien hoe om organisasiebeleide-permissies te misbruik om voorregte te eskaleer: