GCP - Cloud Functions Enum

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

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Cloud Functions

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

Αποθήκευση

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

gcf-sources-<αριθμός>-<περιοχή>/<όνομα-συνάρτησης>-<uuid>/version-<n>/function-source.zip για παράδειγμα: gcf-sources-645468741258-us-central1/function-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/version-4/function-source.zip

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

SA

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

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

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

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

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

Μέσα στην Cloud Function

Ο κώδικας λήψης γίνεται μέσα στον φάκελο /workspace με τα ίδια ονόματα αρχείων όπως τα αρχεία που έχουν οι αρχεία στην Cloud Function και εκτελείται με τον χρήστη 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 '{}'

Ανέλιξη Προνομίων

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

pageGCP - Cloudfunctions Privesc

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

pageGCP - Cloud Functions Unauthenticated Enum

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

pageGCP - Cloud Functions Post Exploitation

Διατήρηση

pageGCP - Cloud Functions Persistence

Αναφορές

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

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated