GCP - Cloud Run Enum

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

Cloud Run

Το Cloud Run είναι μια διαχειριζόμενη πλατφόρμα υπολογιστικού νέφους χωρίς διακομιστές που σας επιτρέπει να τρέχετε κοντέινερ απευθείας πάνω από την κλιμακούμενη υποδομή της Google.

Μπορείτε να τρέξετε το κοντέινερ σας ή αν χρησιμοποιείτε Go, Node.js, Python, Java, .NET Core ή Ruby, μπορείτε να χρησιμοποιήσετε την επιλογή source-based deployment που δημιουργεί το κοντέινερ για εσάς.

Η Google έχει κατασκευάσει το Cloud Run για να λειτουργεί καλά μαζί με άλλες υπηρεσίες στο Google Cloud, ώστε να μπορείτε να δημιουργήσετε πλήρως λειτουργικές εφαρμογές.

Υπηρεσίες και εργασίες

Στο Cloud Run, ο κώδικάς σας μπορεί είτε να τρέχει συνεχώς ως υπηρεσία είτε ως εργασία. Και οι δύο υπηρεσίες και εργασίες τρέχουν στο ίδιο περιβάλλον και μπορούν να χρησιμοποιούν τις ίδιες ενσωματώσεις με άλλες υπηρεσίες στο Google Cloud.

  • Υπηρεσίες Cloud Run. Χρησιμοποιούνται για να τρέχουν κώδικα που απαντά σε διαδικτυακά αιτήματα ή γεγονότα.
  • Εργασίες Cloud Run. Χρησιμοποιούνται για να τρέχουν κώδικα που εκτελεί εργασία (μια εργασία) και σταματά όταν ολοκληρωθεί η εργασία.

Υπηρεσία Cloud Run

Η Google Cloud Run είναι μια άλλη προσφορά χωρίς διακομιστές όπου μπορείτε επίσης να αναζητήσετε μεταβλητές περιβάλλοντος. Το Cloud Run δημιουργεί έναν μικρό διακομιστή ιστού, που τρέχει στην πόρτα 8080 μέσα στο κοντέινερ από προεπιλογή, που περιμένει για ένα HTTP GET αίτημα. Όταν ληφθεί το αίτημα, εκτελείται μια εργασία και το ημερολόγιο της εργασίας εξάγεται μέσω μιας HTTP απάντησης.

Σχετικές λεπτομέρειες

  • Από προεπιλογή, η πρόσβαση στον διακομιστή ιστού είναι δημόσια, αλλά μπορεί επίσης να είναι περιορισμένη σε εσωτερική κίνηση (VPC…)
    Επιπλέον, η αυθεντικοποίηση για την επαφή με τον διακομιστή ιστού μπορεί να είναι επιτρέποντας όλους ή να απαιτεί αυθεντικοποίηση μέσω IAM.
  • Από προεπιλογή, η κρυπτογράφηση χρησιμοποιεί ένα κλειδί διαχειριζόμενο από την Google, αλλά μπορεί επίσης να επιλεγεί ένα CMEK (Customer Managed Encryption Key) από το KMS.
  • Από προεπιλογή, ο λογαριασμός υπηρεσίας που χρησιμοποιείται είναι ο προεπιλεγμένος του Compute Engine που έχει Editor πρόσβαση στο έργο και έχει το scope cloud-platform.
  • Είναι δυνατή η ορισμός μεταβλητών περιβάλλοντος σε καθαρό κείμενο για την εκτέλεση, και ακόμη και η σύνδεση μυστικών του νέφους ή η προσθήκη μυστικών του νέφους σε μεταβλητές περιβάλλοντος.
  • Είναι επίσης δυνατή η προσθήκη συνδέσεων με το Cloud SQL και η σύνδεση ενός συστήματος αρχείων.
  • Οι διευθύνσεις URL των υπηρεσιών που αναπτύσσονται είναι παρόμοιες με https://<svc-name>-<random>.a.run.app
  • Μια Υπηρεσία Run μπορεί να έχει περισσότερες από 1 έκδοση ή αναθεώρηση, και να διαχωρίζει την κίνηση μεταξύ αρκετών αναθεωρήσεων.

Enumeration

# List services
gcloud run services list
gcloud run services list --platform=managed
gcloud run services list --platform=gke

# Get info of a service
gcloud run services describe --region <region> <svc-name>

# Get info of all the services together
gcloud run services list --format=yaml
gcloud run services list --platform=managed --format=json
gcloud run services list --platform=gke --format=json

# Get policy
gcloud run services get-iam-policy --region <region> <svc-name>

# Get revisions
gcloud run revisions list --region <region>
gcloud run revisions describe --region <region> <revision>

# Get domains
gcloud run domain-mappings list
gcloud run domain-mappings describe <name>

# Attempt to trigger a job unauthenticated
curl <url>

# Attempt to trigger a job with your current gcloud authorization
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" <url>

Cloud Run Jobs

Οι εργασίες Cloud Run είναι πιο κατάλληλες για δοχεία που εκτελούνται μέχρι την ολοκλήρωση και δεν εξυπηρετούν αιτήματα. Οι εργασίες δεν έχουν τη δυνατότητα να εξυπηρετούν αιτήματα ή να ακούν σε μια θύρα. Αυτό σημαίνει ότι σε αντίθεση με τις υπηρεσίες Cloud Run, οι εργασίες δεν θα πρέπει να περιλαμβάνουν έναν διακομιστή ιστού. Αντίθετα, τα δοχεία εργασιών θα πρέπει να τερματίζονται όταν ολοκληρωθούν.

Enumeration

gcloud beta run jobs list
gcloud beta run jobs describe --region <region> <job-name>
gcloud beta run jobs get-iam-policy --region <region> <job-name>

Ανάβαση Δικαιωμάτων

Στην παρακάτω σελίδα, μπορείτε να δείτε πώς να καταχραστείτε τα δικαιώματα του cloud run για να αναβαθμίσετε τα δικαιώματα:

GCP - Run Privesc

Μη Αυθεντικοποιημένη Πρόσβαση

GCP - Cloud Run Unauthenticated Enum

Μετά την Εκμετάλλευση

GCP - Cloud Run Post Exploitation

Επιμονή

GCP - Cloud Run Persistence

Αναφορές

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