GCP Pentesting
Osnovne informacije
Pre početka pentesting-a GCP okruženja, postoji nekoliko osnovnih stvari koje treba da znate o tome kako funkcioniše kako biste razumeli šta treba da uradite, kako da pronađete neispravne konfiguracije i kako da ih iskoristite.
Koncepti poput organizacione hijerarhije, dozvola i drugi osnovni koncepti su objašnjeni u:
GCP - Basic InformationLaboratorije za učenje
Metodologija GCP Pentestera/Red Tima
Da biste pregledali GCP okruženje, veoma je važno znati: koje servise koristite, šta je izloženo, ko ima pristup čemu, i kako su interni GCP servisi i spoljni servisi povezani.
Sa stanovišta Red Tima, prvi korak ka kompromitovanju GCP okruženja je uspeti da dobijete neke akreditive. Evo nekih ideja kako to možete postići:
Leak-ovi na github-u (ili slično) - OSINT
Socijalno inženjerstvo (Proverite stranicu Workspace Security)
Ponovna upotreba lozinki (leak-ovi lozinki)
Ranjivosti u GCP-hostovanim aplikacijama
Server Side Request Forgery sa pristupom metadata endpoint-u
Čitanje lokalnih fajlova
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
lica hakovana
Interni zaposleni
Ili kompromitovanjem neautentifikovanog servisa koji je izložen:
GCP - Unauthenticated Enum & AccessIli ako radite pregled možete jednostavno zatražiti akreditive sa ovim ulogama:
GCP - Permissions for a PentestKada uspete da dobijete akreditive, potrebno je da znate kome ti akreditivi pripadaju, i na šta imaju pristup, tako da morate izvršiti osnovnu enumeraciju:
Osnovna Enumeracija
SSRF
Za više informacija o tome kako enumerisati GCP metapodatke proverite sledeću HackTricks stranicu:
Whoami
U GCP-u možete isprobati nekoliko opcija kako biste pokušali da pogodite ko ste:
Enumeracija organizacije
Principali i IAM Enumeracija
Ako imate dovoljno dozvola, proveravanje privilegija svakog entiteta unutar GCP naloga pomoći će vam da razumete šta vi i ostali identiteti možete raditi i kako povećati privilegije.
Ako nemate dovoljno dozvola da biste enumerisali IAM, možete ih bruteforce-ovati da biste ih otkrili. Proverite kako izvršiti enumeraciju i bruteforcing u:
GCP - IAM, Principals & Org Policies EnumSada kada imate neke informacije o svojim akreditivima (i ako ste crveni tim, nadamo se da niste otkriveni). Vreme je da saznate koje usluge se koriste u okruženju. U sledećem odeljku možete proveriti neke načine za enumeraciju nekih zajedničkih usluga.
Enumeracija Usluga
GCP ima ogroman broj usluga, na sledećoj stranici pronaći ćete osnovne informacije, enumeraciju šema, kako izbeći otkrivanje, dobiti upornost, i druge post-eksploatacione trikove o nekima od njih:
GCP - ServicesImajte na umu da ne morate obavljati sav posao ručno, ispod u ovom postu možete pronaći odeljak o automatskim alatima.
Osim toga, u ovom stadijumu možda ste otkrili više usluga izloženih neautentifikovanim korisnicima, možda ćete moći da ih iskoristite:
GCP - Unauthenticated Enum & AccessPovećanje Privilegija, Post Eksploatacija i Upornost
Najčešći način kada jednom dobijete neke cloud akreditive ili ste kompromitovali neku uslugu koja se izvršava unutar oblaka je da zloupotrebite loše konfigurisane privilegije koje kompromitovani nalog može imati. Dakle, prva stvar koju treba da uradite je da enumerišete svoje privilegije.
Osim toga, tokom ove enumeracije, zapamtite da se dozvole mogu postaviti na najvišem nivou "Organizacije" takođe.
GCP - Privilege EscalationGCP - Post ExploitationGCP - PersistenceJavno Izložene Usluge
Dok enumerišete GCP usluge, možda ste pronašli neke od njih izlažu elemente na Internetu (VM/Container portove, baze podataka ili usluge redova, snimke ili kofere...). Kao pentester/crveni tim, uvek biste trebali proveriti da li možete pronaći osetljive informacije / ranjivosti na njima jer bi vam mogle omogućiti dalji pristup u AWS nalog.
U ovoj knjizi trebali biste pronaći informacije o tome kako pronaći izložene GCP usluge i kako ih proveriti. O tome kako pronaći ranjivosti u izloženim mrežnim uslugama preporučio bih vam da tražite specifičnu uslugu na:
GCP <--> Workspace Pivoting
Kompromitovanje principala u jednoj platformi može omogućiti napadaču da kompromituje drugu, proverite to u:
GCP <--> Workspace PivotingAutomatski Alati
U GCloud konzoli, na https://console.cloud.google.com/iam-admin/asset-inventory/dashboard možete videti resurse i IAM-ove koji se koriste u projektu.
Ovde možete videti resurse podržane ovim API-jem: https://cloud.google.com/asset-inventory/docs/supported-asset-types
Proverite alate koji se mogu koristiti u nekoliko oblaka ovde.
gcp_scanner: Ovo je skener resursa za GCP koji može pomoći da se utvrdi na kojem nivou pristupa određeni akreditivi poseduju na GCP.
gcp_enum: Skripta u Bash-u za enumeraciju GCP okruženja korišćenjem gcloud cli i čuvanje rezultata u fajlu.
GCP-IAM-Privilege-Escalation: Skripte za enumeraciju visokih IAM privilegija i eskalaciju privilegija u GCP zloupotrebom istih (nisam uspeo da pokrenem skriptu za enumeraciju).
gcloud konfiguracija & debugiranje
Snimanje mreže gcloud, gsutil...
Zapamtite da možete koristiti parametar --log-http
sa gcloud
cli-jem da biste štampali zahteve koje alat vrši. Ako ne želite da se logovi cenzurišu vrednost tokena, koristite gcloud config set log_http_redact_token false
Osim toga, da biste presreli komunikaciju:
Konfigurišite OAuth token u gcloud-u
Da biste koristili ukradeni OAuth token servisnog naloga sa metapodacima, jednostavno možete uraditi sledeće:
Reference
Last updated