GCP - Cloud Functions 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 Functions

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

Storage

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

  • gcf-sources-<number>-<region>/<function-name>-<uuid>/version-<n>/function-source.zip
  • gcf-v2-sources-<number>-<region>/<function-name>function-source.zip

Για παράδειγμα:
gcf-sources-645468741258-us-central1/function-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/version-4/function-source.zip

Warning

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

Artifact Registry

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

GCP - Artifact Registry Enum

SA

Εάν δεν καθοριστεί, από προεπιλογή ο App Engine Default Service Account με δικαιώματα Editor πάνω στο έργο θα συσχετιστεί με τη Cloud Function.

Triggers, URL & Authentication

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

Η μορφή της URL είναι https://<region>-<project-gcp-name>.cloudfunctions.net/<func_name>

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

Inside the Cloud Function

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

Enumeration

# 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 '{}'

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

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

GCP - Cloudfunctions Privesc

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

GCP - Cloud Functions Unauthenticated Enum

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

GCP - Cloud Functions Post Exploitation

Επιμονή

GCP - Cloud Functions 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