GCP - Sourcerepos Privesc

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Source Repositories

Για περισσότερες πληροφορίες σχετικά με το Source Repositories δείτε:

GCP - Source Repositories Enum

source.repos.get

Με αυτήν την άδεια είναι δυνατή η λήψη του repository τοπικά:

Κλωνοποίηση source repository ```bash gcloud source repos clone --project= ```

source.repos.update

Ένας principal με αυτό το δικαίωμα θα μπορεί να γράψει κώδικα μέσα σε ένα αποθετήριο που κλωνοποιήθηκε με gcloud source repos clone <repo>. Σημειώστε όμως ότι αυτό το δικαίωμα δεν μπορεί να επισυναφθεί σε custom roles, οπότε πρέπει να δοθεί μέσω ενός predefined role όπως:

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

Για να γράψετε απλώς εκτελέστε ένα κανονικό git push.

source.repos.setIamPolicy

Με αυτό το δικαίωμα ένας attacker θα μπορούσε να παραχωρήσει στον εαυτό του τις προηγούμενες άδειες.

Secret access

Αν ο attacker έχει πρόσβαση στα secrets όπου αποθηκεύονται τα tokens, θα μπορεί να τα κλέψει. Για περισσότερες πληροφορίες σχετικά με το πώς να αποκτήσετε πρόσβαση σε ένα secret δείτε:

GCP - Secretmanager Privesc

Add SSH keys

Είναι δυνατό να προσθέσετε ssh keys στο project του Source Repository μέσω του web console. Κάνει ένα POST request στο /v1/sshKeys:add και μπορεί να ρυθμιστεί στο https://source.cloud.google.com/user/ssh_keys

Μόλις το ssh key σας οριστεί, μπορείτε να αποκτήσετε πρόσβαση σε ένα repo με:

Κλωνοποίηση αποθετηρίου μέσω SSH ```bash git clone ssh://username@domain.com@source.developers.google.com:2022/p//r/ ```

Και στη συνέχεια χρησιμοποιήστε τις εντολές git όπως συνήθως.

Χειροκίνητα Credentials

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

Κάνοντας κλικ στον πρώτο σύνδεσμο θα σας κατευθύνει στο https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3

Αυτό θα εμφανίσει ένα Oauth authorization prompt για να δώσει πρόσβαση στο Google Cloud Development. Επομένως θα χρειαστεί είτε τα credentials του χρήστη είτε μία ανοικτή συνεδρία στον browser.

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

Εκτελώντας το script μπορείτε στη συνέχεια να χρησιμοποιήσετε git clone, push… και θα λειτουργήσει.

source.repos.updateProjectConfig

Με αυτή την άδεια είναι δυνατό να απενεργοποιήσετε την προεπιλεγμένη προστασία των Source Repositories ώστε να μην ανεβαίνει κώδικας που περιέχει Private Keys:

Απενεργοποίηση pushblock και τροποποίηση της διαμόρφωσης pub/sub ```bash gcloud source project-configs update --disable-pushblock ``` Μπορείτε επίσης να ρυθμίσετε ένα διαφορετικό pub/sub topic ή ακόμη να το απενεργοποιήσετε εντελώς: ```bash gcloud source project-configs update --remove-topic=REMOVE_TOPIC gcloud source project-configs update --remove-topic=UPDATE_TOPIC ```

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks