GCP - Cloud Functions Enum

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

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

Συναρτήσεις Cloud

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

Αποθήκευση

Ο κώδικας των Cloud Functions αποθηκεύεται στην αποθήκη GCP. Συνεπώς, οποιοσδήποτε με πρόσβαση ανάγνωσης σε κάδους στο GCP θα μπορεί να διαβάσει τον κώδικα των Cloud Functions. Ο κώδικας αποθηκεύεται σε έναν κάδο όπως οι παρακάτω:

  • gcf-sources-<αριθμός>-<περιοχή>/<όνομα-συνάρτησης>-<uuid>/έκδοση-<n>/κώδικας-συνάρτησης.zip

  • gcf-v2-sources-<αριθμός>-<περιοχή>/<όνομα-συνάρτησης>κώδικας-συνάρτησης.zip

Για παράδειγμα: gcf-sources-645468741258-us-central1/sυνάρτηση-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/έκδοση-4/κώδικας-συνάρτησης.zip

Οποιοσδήποτε χρήστης με δικαιώματα ανάγνωσης στον κάδο που αποθηκεύει την Cloud Function θα μπορούσε να διαβάσει τον εκτελούμενο κώδικα.

Καταχώριση Τεκμηρίου

Αν η συνάρτηση cloud είναι ρυθμισμένη έτσι ώστε το εκτελούμενο Docker container να αποθηκεύεται μέσα σε ένα αποθετήριο Artifact Registry μέσα στο έργο, οποιοσδήποτε με πρόσβαση ανάγνωσης στο αποθετήριο θα μπορεί να κατεβάσει την εικόνα και να ελέγξει τον πηγαίο κώδικα. Για περισσότερες πληροφορίες ελέγξτε:

GCP - Artifact Registry Enum

SA

Αν δεν καθοριστεί, από προεπιλογή το Προεπιλεγμένο Λογαριασμό Υπηρεσίας App Engine με δικαιώματα Επεξεργαστή πάνω στο έργο θα συνδεθεί με την Cloud Function.

Ενεργοποιητές, URL & Ταυτοποίηση

Όταν δημιουργείται μια Cloud Function πρέπει να καθοριστεί ο ενεργοποιητής. Ένας συνηθισμένος είναι το HTTPS, αυτό θα δημιουργήσει ένα URL όπου η συνάρτηση μπορεί να ενεργοποιηθεί μέσω περιήγησης στον ιστό. Άλλοι ενεργοποιητές είναι pub/sub, Storage, Filestore...

Η μορφή του URL είναι https://<περιοχή>-<όνομα-έργου-gcp>.cloudfunctions.net/<όνομα-συνάρτησης>

Όταν χρησιμοποιείται ο ενεργοποιητής HTTPS, επίσης υποδεικνύεται αν ο καλούντας χρειάζεται εξουσιοδότηση IAM για να καλέσει τη Συνάρτηση ή αν ο καθένας μπορεί απλά να την καλέσει:

Μέσα στην Συνάρτηση Cloud

Ο κώδικας κατεβαίνει μέσα στον φάκελο /workspace με τα ίδια ονόματα αρχείων όπως τα αρχεία έχουν στη Συνάρτηση Cloud και εκτελείται με τον χρήστη www-data. Το δίσκος δεν είναι τοποθετημένος ως μόνο για ανάγνωση.

Απαρίθμηση

# List functions
gcloud functions list
gcloud functions describe <func_name> # Check triggers to see how is this function invoked
gcloud functions get-iam-policy <func_name>

# Get logs of previous runs. By default, limits to 10 lines
gcloud functions logs read <func_name> --limit [NUMBER]

# Call a function
curl https://<region>-<project>.cloudfunctions.net/<func_name>
gcloud functions call <func_name> --data='{"message": "Hello World!"}'

# If you know the name of projects you could try to BF cloud functions names

# Get events that could be used to trigger a cloud function
gcloud functions event-types list

# Access function with authentication
curl -X POST https://<region>-<project>.cloudfunctions.net/<func_name> \
-H "Authorization: bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" \
-d '{}'

Εscalation προνομίων

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

GCP - Cloudfunctions Privesc

Μη εξουσιοδοτημένη πρόσβαση

GCP - Cloud Functions Unauthenticated Enum

Μετά από εκμετάλλευση

GCP - Cloud Functions Post Exploitation

Διατήρηση

GCP - Cloud Functions Persistence

Αναφορές

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

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

Last updated