GCP - Run Privesc
Cloud Run
Για περισσότερες πληροφορίες σχετικά με το Cloud Run ελέγξτε:
GCP - Cloud Run Enumrun.services.create
, iam.serviceAccounts.actAs
, run.routes.invoke
run.services.create
, iam.serviceAccounts.actAs
, run.routes.invoke
Ένας επιτιθέμενος με αυτές τις άδειες μπορεί να δημιουργήσει ένα υπηρεσία run που εκτελεί αυθαίρετο κώδικα (αυθαίρετο Docker container), να συνδέσει ένα Λογαριασμό Υπηρεσίας σε αυτό και να κάνει τον κώδικα να εξαγάγει το διακριτικό του Λογαριασμού Υπηρεσίας από τα μεταδεδομένα.
Ένα σενάριο εκμετάλλευσης για αυτήν τη μέθοδο μπορεί να βρεθεί εδώ και η εικόνα Docker μπορεί να βρεθεί εδώ.
Σημειώστε ότι όταν χρησιμοποιείτε το gcloud run deploy
αντί να δημιουργήσετε απλώς την υπηρεσία χρειάζεται την άδεια update
. Ελέγξτε ένα παράδειγμα εδώ.
run.services.update
, iam.serviceAccounts.actAs
run.services.update
, iam.serviceAccounts.actAs
Όπως το προηγούμενο αλλά ενημερώνοντας μια υπηρεσία:
run.services.setIamPolicy
run.services.setIamPolicy
Δώστε στον εαυτό σας προηγούμενες άδειες πάνω στο cloud Run.
run.jobs.create
, run.jobs.run
, (run.jobs.get
)
run.jobs.create
, run.jobs.run
, (run.jobs.get
)Ξεκινήστε ένα job με ένα αντίστροφο κέλυφος για να κλέψετε το λογαριασμό υπηρεσίας που υποδεικνύεται στην εντολή. Μπορείτε να βρείτε ένα εκμετάλλευση εδώ.
run.jobs.update
,run.jobs.run
,iam.serviceaccounts.actAs
,(run.jobs.get
)
run.jobs.update
,run.jobs.run
,iam.serviceaccounts.actAs
,(run.jobs.get
)Παρόμοια με το προηγούμενο, είναι δυνατόν να ενημερώσετε ένα job και να ενημερώσετε το SA, τη εντολή και να την εκτελέσετε:
run.jobs.run, run.jobs.runWithOverrides, (run.jobs.get)
Κακοποιήστε τις μεταβλητές περιβάλλοντος μιας εκτέλεσης εργασίας για να εκτελέσετε αυθαίρετο κώδικα και να λάβετε ένα αντίστροφο κέλυφος για να ρίξετε τα περιεχόμενα του container (πηγαίος κώδικας) και να έχετε πρόσβαση στο SA μέσα στα μεταδεδομένα:
çrun.jobs.setIamPolicy
çrun.jobs.setIamPolicy
Δώστε στον εαυτό σας τα προηγούμενα δικαιώματα πάνω στα Cloud Jobs.
Αναφορές
Last updated