GCP - Sourcerepos Privesc
Last updated
Last updated
Za više informacija o Source Repositories proverite:
source.repos.get
Sa ovlašćenjem je moguće preuzeti repozitorijum lokalno:
source.repos.update
Osoba sa ovlašćenjem će moći da piše kod unutar repozitorijuma kloniranih pomoću gcloud source repos clone <repo>
. Međutim, napomena je da ovo ovlašćenje ne može biti pridruženo prilagođenim ulogama, već se mora dodeliti putem predefinisane uloge kao što su:
Vlasnik
Uređivač
Administrator repozitorijuma izvornog koda (roles/source.admin
)
Pisac repozitorijuma izvornog koda (roles/source.writer
)
Za pisanje jednostavno izvršite redovno git push
.
source.repos.setIamPolicy
Sa ovim ovlašćenjem napadač bi mogao sebi da dodeli prethodna ovlašćenja.
Ako napadač ima pristup tajnama gde su tokeni smešteni, moći će da ih ukrade. Za više informacija o tome kako pristupiti tajni proverite:
Moguće je dodati SSH ključeve u projekat repozitorijuma izvornog koda u veb konzoli. To pravi zahtev za postavljanje na /v1/sshKeys:add
i može se konfigurisati na https://source.cloud.google.com/user/ssh_keys
Kada postavite svoj SSH ključ, možete pristupiti repozitorijumu sa:
Zatim koristite git
komande kao i obično.
Moguće je kreirati ručne pristupne podatke za pristup Izvornim repozitorijumima:
Klikom na prvi link bićete preusmereni na https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3
Što će pokrenuti Oauth prozor za autorizaciju kako bi se omogućio pristup Google Cloud Development. Potrebne su poverljive informacije korisnika ili otvorena sesija u pregledaču za ovo.
Bićete preusmereni na stranicu sa bash skriptom za izvršenje i konfigurisanje git kolačića u $HOME/.gitcookies
Izvršavanjem skripte možete koristiti git clone, push... i radiće.
source.repos.updateProjectConfig
Sa ovlašćenjem je moguće onemogućiti podrazumevanu zaštitu Izvornih repozitorijuma kako ne bi otpremali kod koji sadrži privatne ključeve:
Možete konfigurisati drugu pub/sub temu ili je čak potpuno onemogućiti: