GCP - Token Persistance
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Da biste dobili trenutni token korisnika, možete pokrenuti:
Proverite na ovoj stranici kako da direktno koristite ovaj token koristeći gcloud:
Da biste dobili detalje za generisanje novog pristupnog tokena, pokrenite:
Takođe je moguće pronaći refresh tokene u $HOME/.config/gcloud/application_default_credentials.json
i u $HOME/.config/gcloud/legacy_credentials/*/adc.json
.
Da biste dobili novi osveženi pristupni token sa refresh tokenom, ID-jem klijenta i tajnom klijenta, pokrenite:
Važenje refresh tokena može se upravljati u Admin > Security > Google Cloud session control, a prema zadanim postavkama postavljeno je na 16h, iako se može postaviti da nikada ne istekne:
Tok autentifikacije kada se koristi nešto poput gcloud auth login
otvorit će prozor u pregledniku, a nakon prihvatanja svih opsega, preglednik će poslati zahtev poput ovog na http port otvoren od strane alata:
Zatim, gcloud će koristiti stanje i kod sa nekim hardkodiranim client_id
(32555940559.apps.googleusercontent.com
) i client_secret
(ZmssLNjJy2998hD4CTg2ejr2
) da dobije konačne podatke o refresh tokenu.
Napomena da je komunikacija sa localhost-om u HTTP-u, tako da je moguće presresti podatke da bi se dobio refresh token, međutim, ovi podaci su validni samo 1 put, tako da bi to bilo beskorisno, lakše je jednostavno pročitati refresh token iz datoteke.
Možete pronaći sve Google scope-ove na https://developers.google.com/identity/protocols/oauth2/scopes ili ih dobiti izvršavanjem:
Moguće je videti koje opsege aplikacija koja gcloud
koristi za autentifikaciju može podržati pomoću ovog skripta:
После извршавања, проверено је да ова апликација подржава ове опсеге:
interesantno je videti kako ova aplikacija podržava drive
opseg, što bi moglo omogućiti korisniku da eskalira sa GCP na Workspace ako napadač uspe da primora korisnika da generiše token sa ovim opsegom.
Proverite kako da zloupotrebite ovo ovde.
Baš kao i kod autentifikovanih korisnika, ako uspete da kompromitujete privatni ključ servisnog naloga, moći ćete da pristupite njemu obično koliko god želite. Međutim, ako ukradete OAuth token servisnog naloga, to može biti još zanimljivije, jer, čak i ako su ovi tokeni po defaultu korisni samo sat vremena, ako žrtva obriše privatni API ključ, OAuth token će i dalje biti važeći dok ne istekne.
Očigledno, sve dok ste unutar mašine koja radi u GCP okruženju, moći ćete da pristupite servisnom nalogu povezanom sa tom mašinom kontaktirajući metapodatkovni krajnji tačku (napomena da su Oauth tokeni kojima možete pristupiti na ovoj krajnjoj tački obično ograničeni opsegom).
Neke remedijacije za ove tehnike su objašnjene u https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-2
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)