GCP - Non-svc Persistance
Ovo su korisne tehnike kada, na neki način, kompromitujete neke GCP akreditive ili mašinu koja se izvršava u GCP okruženju.
Hakovanje Tokena
Tokeni Autentifikovanog Korisnika
Da biste dobili trenutni token korisnika, možete pokrenuti:
Proverite na ovoj stranici kako direktno koristiti ovaj token pomoću gcloud-a:
Da biste dobili detalje o generisanju novog pristupnog tokena pokrenite:
Takođe je moguće pronaći osvežavajuće 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 osvežavajućim tokenom, ID klijenta i tajnom klijenta pokrenite:
Validnost tokena za osvežavanje može se upravljati u Admin > Bezbednost > Kontrola sesije Google Cloud-a, i prema podrazumevanim postavkama postavljena je na 16h, iako se može postaviti da nikada ne istekne:
Autentikacioni tok
Autentikacioni tok prilikom korišćenja nečega poput gcloud auth login
otvoriće prozor zahteva u pretraživaču i nakon prihvatanja svih opsega, pretraživač će poslati zahtev poput ovog na http port otvoren od strane alata:
Zatim će gcloud koristiti stanje i kod sa nekim hardkodovanim client_id
(32555940559.apps.googleusercontent.com
) i client_secret
(ZmssLNjJy2998hD4CTg2ejr2
) da dobije konačne podatke o osvežavanju tokena.
Imajte na umu da je komunikacija sa lokalnim serverom u HTTP formatu, pa je moguće presresti podatke kako biste dobili token za osvežavanje, međutim, ovi podaci važe samo jednom, pa bi to bilo beskorisno, lakše je pročitati token za osvežavanje iz datoteke.
OAuth Scope
Sve Google opsege možete pronaći na https://developers.google.com/identity/protocols/oauth2/scopes ili ih dobiti izvršavanjem:
Moguće je videti koje oblasti podržava aplikacija koju gcloud
koristi za autentifikaciju pomoću ovog skripta:
Nakon izvršenja, provereno je da ova aplikacija podržava ove opsege:
Servisni nalozi
Baš kao i sa autentifikovanim korisnicima, ako uspete da kompromitujete privatni ključ fajla servisnog naloga, moći ćete da mu pristupate obično koliko god želite. Međutim, ako ukradete OAuth token servisnog naloga, ovo može biti još interesantnije, jer, čak i ako su ovi tokeni podrazumevano korisni samo sat vremena, ako žrtva obriše privatni API ključ, OAuth token će i dalje biti validan dok ne istekne.
Metapodaci
Očigledno, dok se nalazite unutar mašine koja radi u GCP okruženju, moći ćete da pristupite servisnom nalogu povezanom sa tom mašinom kontaktirajući krajnju tačku metapodataka (imajte na umu da su OAuth tokeni do kojih možete pristupiti na ovoj krajnjoj tački obično ograničeni po opsezima).
Popravke
Neke popravke za ove tehnike su objašnjene na https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-2
Reference
Last updated