GCP - Sourcerepos Privesc

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Source Repositories

Vir meer inligting oor Source Repositories sien:

GCP - Source Repositories Enum

source.repos.get

Met hierdie toestemming is dit moontlik om die repository plaaslik af te laai:

Kloon source repository ```bash gcloud source repos clone --project= ```

source.repos.update

’n principal met hierdie toestemming sal in staat wees om kode binne ’n repository te skryf wat met gcloud source repos clone <repo> gekloon is. Let wel dat hierdie toestemming nie aan aangepaste rolle gekoppel kan word nie, dus moet dit gegee word via ’n vooraf gedefinieerde rol soos:

  • Owner
  • Editor
  • Source Repository Administrator (roles/source.admin)
  • Source Repository Writer (roles/source.writer)

Om te kan skryf, voer bloot ’n gewone git push uit.

source.repos.setIamPolicy

Met hierdie toestemming kan ’n aanvaller homself die vorige toestemmings toeken.

Toegang tot secrets

As die aanvaller toegang tot die secrets het waar die tokens gestoor is, sal hy dit kan steel. Vir meer inligting oor hoe om toegang tot ’n secret te kry, kyk:

GCP - Secretmanager Privesc

Voeg SSH-sleutels by

Dit is moontlik om SSH-sleutels by die Source Repository-projek te voeg in die web-konsol. Dit maak ’n POST-versoek na /v1/sshKeys:add en kan gekonfigureer word by https://source.cloud.google.com/user/ssh_keys

Sodra jou SSH-sleutel gestel is, kan jy toegang tot ’n repo kry met:

Clone repository using SSH ```bash git clone ssh://username@domain.com@source.developers.google.com:2022/p//r/ ```

En dan gebruik jy soos gewoonlik die git-opdragte.

Manual Credentials

It’s possible to create manual credentials to access the Source Repositories:

Clicking on the first link it will direct you to https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3

Dit sal ’n Oauth authorization prompt teweegbring om toegang aan Google Cloud Development te verleen. Jy sal dus óf die credentials of the user óf ’n open session in the browser hiervoor nodig hê.

This will send you to a page with a bash script to execute and configure a git cookie in $HOME/.gitcookies

Deur die script uit te voer kan jy dan git clone, push… gebruik en dit sal werk.

source.repos.updateProjectConfig

With this permission it’s possible to disable Source Repositories default protection to not upload code containing Private Keys:

Deaktiveer pushblock en wysig die pub/sub-konfigurasie ```bash gcloud source project-configs update --disable-pushblock ``` Jy kan ook 'n ander pub/sub topic konfigureer of dit selfs heeltemal deaktiveer: ```bash gcloud source project-configs update --remove-topic=REMOVE_TOPIC gcloud source project-configs update --remove-topic=UPDATE_TOPIC ```

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks