GCP - Cloud Build Enum
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Google Cloud Build is 'n bestuurde CI/CD-platform wat sagteware bou en vrystellingsprosesse outomatiseer, wat integreer met bronkode-repositories en 'n wye verskeidenheid programmeertale ondersteun. Dit laat ontwikkelaars toe om kode outomaties te bou, te toets en te ontplooi terwyl dit buigsaamheid bied om boustappe en werkvloei aan te pas.
Elke Cloud Build Trigger is verwant aan 'n Cloud Repository of direk gekoppel aan 'n eksterne repository (Github, Bitbucket en Gitlab).
Ek kon nie enige manier sien om die Github/Bitbucket token hier of van Cloud Repositories te steel nie, want wanneer die repo afgelaai word, word dit via 'n https://source.cloud.google.com/ URL toegang verkry en Github word nie deur die kliënt aangespreek nie.
Die Cloud Build kan geaktiveer word as:
Duw na 'n tak: Spesifiseer die tak
Duw 'n nuwe etiket: Spesifiseer die etiket
Pull versoek: Spesifiseer die tak wat die PR ontvang
Handmatige Aanroep
Pub/Sub boodskap: Spesifiseer die onderwerp
Webhook gebeurtenis: Sal 'n HTTPS URL blootstel en die versoek moet geverifieer word met 'n geheim
Daar is 3 opsies:
'n yaml/json wat die opdragte spesifiseer om uit te voer. Gewoonlik: /cloudbuild.yaml
Slegs een wat “inline” in die webkonsol en in die cli gespesifiseer kan word
Meest algemene opsie
Relevant vir ongeverifieerde toegang
'n Dockerfile om te bou
'n Buildpack om te bou
Die Diensrekening het die cloud-platform
omvang, so dit kan alle voorregte gebruik. As geen SA gespesifiseer is (soos wanneer jy indien) sal die standaard SA <proj-number>@cloudbuild.gserviceaccount.com
gebruik word.
Standaard word geen toestemmings gegee nie, maar dit is redelik maklik om dit 'n paar te gee:
Dit is moontlik om 'n Cloud Build te konfigureer om goedkeuringe vir bou-uitvoerings te vereis (standaard gedeaktiveer).
Wanneer die trigger 'n PR is omdat enige iemand PRs na openbare repositories kan uitvoer, sou dit baie gevaarlik wees om net die uitvoering van die trigger met enige PR toe te laat. Daarom sal die uitvoering standaard slegs outomaties wees vir eienaars en medewerkers, en om die trigger met ander gebruikers se PRs uit te voer, moet 'n eienaar of medewerker kommentaar lewer /gcbrun
.
Verbindinge kan geskep word oor:
GitHub: Dit sal 'n OAuth-prompt toon wat vra vir toestemmings om 'n Github token te verkry wat binne die Secret Manager gestoor sal word.
GitHub Enterprise: Dit sal vra om 'n GithubApp te installeer. 'n authentikasie token van jou GitHub Enterprise gasheer sal geskep en in hierdie projek as 'n Secret Manager geheim gestoor word.
GitLab / Enterprise: Jy moet die API-toegangstoken en die Lees API-toegangstoken verskaf wat in die Secret Manager gestoor sal word.
Sodra 'n verbinding gegenereer is, kan jy dit gebruik om repositories te koppel waartoe die Github-rekening toegang het.
Hierdie opsie is beskikbaar deur die knoppie:
Let daarop dat repositories wat met hierdie metode gekoppel is, slegs beskikbaar is in Triggers wat 2de generasie gebruik.
Dit is nie dieselfde as 'n verbinding
nie. Dit laat verskillende maniere toe om toegang tot 'n Github of Bitbucket repository te verkry, maar genereer nie 'n verbindingsobjek nie, maar dit genereer wel 'n repository objek (van 1ste generasie).
Hierdie opsie is beskikbaar deur die knoppie:
Soms sal Cloud Build 'n nuwe berging genereer om die lêers vir die trigger te stoor. Dit gebeur byvoorbeeld in die voorbeeld wat GCP bied met:
'n Stoor emmer genaamd security-devbox_cloudbuild is geskep om 'n .tgz
met die lêers wat gebruik gaan word, te stoor.
Installeer gcloud binne cloud build:
Jy kan sensitiewe inligting in boukonfigurasies en logs vind.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)