GCP - Sourcerepos Privesc

Reading time: 4 minutes

tip

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) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Izvori Repozitorijumi

Za više informacija o Izvorima Repozitorijuma pogledajte:

GCP - Source Repositories Enum

source.repos.get

Sa ovom dozvolom je moguće preuzeti repozitorijum lokalno:

bash
gcloud source repos clone <repo-name> --project=<project-uniq-name>

source.repos.update

Princip sa ovom dozvolom će moći da piše kod unutar repozitorijuma kloniranog sa gcloud source repos clone <repo>. Ali imajte na umu da se ova dozvola ne može prikačiti na prilagođene uloge, tako da mora biti dodeljena putem unapred definisane uloge kao što su:

  • Vlasnik
  • Urednik
  • Administrator repozitorijuma izvora (roles/source.admin)
  • Pisac repozitorijuma izvora (roles/source.writer)

Da biste pisali, jednostavno izvršite običan git push.

source.repos.setIamPolicy

Sa ovom dozvolom napadač bi mogao da dodeli sebi prethodne dozvole.

Pristup tajnama

Ako napadač ima pristup tajnama gde su tokeni pohranjeni, moći će da ih ukrade. Za više informacija o tome kako pristupiti tajni, proverite:

GCP - Secretmanager Privesc

Dodavanje SSH ključeva

Moguće je dodati ssh ključeve u projekat Source Repository u veb konzoli. To šalje POST zahtev na /v1/sshKeys:add i može se konfigurisati na https://source.cloud.google.com/user/ssh_keys

Kada je vaš ssh ključ postavljen, možete pristupiti repozitorijumu sa:

bash
git clone ssh://username@domain.com@source.developers.google.com:2022/p/<proj-name>/r/<repo-name>

I zatim koristite git komande kao i obično.

Ručne Kredencijale

Moguće je kreirati ručne kredencijale za pristup Source Repositories:

Klikom na prvu vezu 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 prikazati Oauth autorizacijski prozor za davanje pristupa Google Cloud Development. Tako da će vam biti potrebni ili kredencijali korisnika ili otvorena sesija u pretraživaču za ovo.

Ovo će vas odvesti na stranicu sa bash skriptom za izvršavanje i konfiguraciju git kolačića u $HOME/.gitcookies

Izvršavanjem skripte možete koristiti git clone, push... i to će raditi.

source.repos.updateProjectConfig

Sa ovom dozvolom moguće je onemogućiti podrazumevanu zaštitu Source Repositories da ne učitava kod koji sadrži privatne ključeve:

bash
gcloud source project-configs update --disable-pushblock

Možete takođe konfigurisati drugačiju pub/sub temu ili čak potpuno onemogućiti:

bash
gcloud source project-configs update --remove-topic=REMOVE_TOPIC
gcloud source project-configs update --remove-topic=UPDATE_TOPIC

tip

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) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks