GCP Pentesting
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)
Pre nego što započnete pentesting GCP okruženja, postoji nekoliko osnovnih stvari koje treba da znate o tome kako funkcioniše da biste razumeli šta treba da radite, kako da pronađete pogrešne konfiguracije i kako da ih iskoristite.
Koncepti kao što su organizacija hijerarhija, dozvole i drugi osnovni koncepti su objašnjeni u:
GCP - Basic InformationDa biste auditovali GCP okruženje, veoma je važno znati: koje usluge se koriste, šta je izloženo, ko ima pristup čemu, i kako su interne GCP usluge povezane sa spoljnim uslugama.
Iz perspektive Red Teama, prvi korak za kompromitovanje GCP okruženja je da uspete da dobijete neke akreditive. Ovde imate nekoliko ideja kako to učiniti:
Leakovi na github-u (ili sličnim) - OSINT
Društveno inženjerstvo (Pogledajte stranicu Workspace Security)
Ponovna upotreba lozinki (leakovi lozinki)
Ranljivosti 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\*
3rd parties provaljeni
Interni zaposleni
Ili kompromitovanjem neautentifikovane usluge koja je izložena:
GCP - Unauthenticated Enum & AccessIli ako radite reviziju, mogli biste jednostavno tražiti akreditive sa ovim rolama:
GCP - Permissions for a PentestNakon što ste uspeli da dobijete akreditive, treba da znate kome ti akreditive pripadaju, i čemu imaju pristup, tako da treba da izvršite neku osnovnu enumeraciju:
Za više informacija o tome kako da enumerate GCP metadata pogledajte sledeću hacktricks stranicu:
U GCP možete probati nekoliko opcija da pokušate da pogodite ko ste:
Možete takođe koristiti API krajnju tačku /userinfo
da biste dobili više informacija o korisniku:
Ako imate dovoljno dozvola, proveravanje privilegija svake entiteta unutar GCP naloga će vam pomoći da razumete šta vi i druge identitete možete da radite i kako da povećate privilegije.
Ako nemate dovoljno dozvola za enumeraciju IAM, možete ukrasti brute-force da ih otkrijete. Proverite kako da uradite numeraciju i brute-forcing u:
GCP - IAM, Principals & Org Policies EnumSada kada imate neke informacije o vašim kredencijalima (i ako ste red tim, nadamo se da niste otkriveni). Vreme je da otkrijete koje se usluge koriste u okruženju. U sledećem odeljku možete proveriti neke načine za enumeraciju nekih uobičajenih usluga.
GCP ima neverovatan broj usluga, na sledećoj stranici ćete pronaći osnovne informacije, enumeraciju cheatsheets, kako da izbegnete otkrivanje, dobijete persistence, i druge post-exploitation trikove o nekima od njih:
GCP - ServicesImajte na umu da ne morate obaviti sav posao ručno, ispod u ovom postu možete pronaći odeljak o automatskim alatima.
Štaviše, u ovoj fazi možda ste otkrili više usluga izloženih neautentifikovanim korisnicima, možda ćete moći da ih iskoristite:
GCP - Unauthenticated Enum & AccessNajčešći način kada ste dobili neke cloud kredencijale ili kompromitovali neku uslugu koja radi unutar clouda je da zloupotrebite pogrešno konfigurisane privilegije koje kompromitovani nalog može imati. Dakle, prva stvar koju treba da uradite je da enumerišete svoje privilegije.
Štaviše, tokom ove enumeracije, zapamtite da dozvole mogu biti postavljene na najvišem nivou "Organizacije" takođe.
GCP - Privilege EscalationGCP - Post ExploitationGCP - PersistenceDok enumerišete GCP usluge, možda ste pronašli neke od njih koje izlažu elemente internetu (VM/Containers portovi, baze podataka ili usluge reda, snimci ili kante...). Kao pentester/red teamer uvek biste trebali proveriti da li možete pronaći osetljive informacije / ranjivosti na njima jer bi vam mogle pruž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čujem vam da pretražujete specifičnu uslugu u:
Kompromitovanje principa u jednoj platformi može omogućiti napadaču da kompromituje drugu, proverite to u:
GCP <--> Workspace PivotingU GCloud konzoli, na https://console.cloud.google.com/iam-admin/asset-inventory/dashboard možete videti resurse i IAM-ove koji se koriste po projektu.
Ovde možete videti imovinu koju podržava ovaj API: https://cloud.google.com/asset-inventory/docs/supported-asset-types
Proverite alate koji se mogu koristiti u nekoliko cloud-a ovde.
gcp_scanner: Ovo je GCP skener resursa koji može pomoći da se odredi koji nivo pristupa određeni kredencijali poseduju na GCP.
gcp_enum: Bash skripta za enumeraciju GCP okruženja koristeći gcloud cli i čuvanje rezultata u datoteci.
GCP-IAM-Privilege-Escalation: Skripte za enumeraciju visokih IAM privilegija i za eskalaciju privilegija u GCP zloupotrebom istih (nisam mogao da pokrenem skriptu za enumeraciju).
BF My GCP Permissions: Skripta za bruteforce vaših dozvola.
Zapamtite da možete koristiti parametar --log-http
sa gcloud
cli da odštampate zahteve koje alat izvršava. Ako ne želite da se token vrednost rediguje u logovima, koristite gcloud config set log_http_redact_token false
Pored toga, da biste presreli komunikaciju:
Da biste koristili eksfiltrirani OAuth token servisnog naloga sa metadata krajnje tačke možete jednostavno uraditi:
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)