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
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Cloud Functions
Google Cloud Functions έχουν σχεδιαστεί για να φιλοξενούν τον κώδικά σας, ο οποίος εκτελείται ως απάντηση σε γεγονότα, χωρίς να απαιτεί τη διαχείριση ενός λειτουργικού συστήματος φιλοξενίας. Επιπλέον, αυτές οι λειτουργίες υποστηρίζουν την αποθήκευση μεταβλητών περιβάλλοντος, τις οποίες μπορεί να χρησιμοποιήσει ο κώδικας.
Storage
Ο κώδικας των Cloud Functions αποθηκεύεται στο GCP Storage. Επομένως, οποιοσδήποτε έχει δικαιώματα ανάγνωσης στους κάδους στο GCP θα μπορεί να διαβάσει τον κώδικα των Cloud Functions.
Ο κώδικας αποθηκεύεται σε έναν κάδο όπως ένας από τους παρακάτω:
gcf-sources-<number>-<region>/<function-name>-<uuid>/version-<n>/function-source.zipgcf-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 θα μπορεί να κατεβάσει την εικόνα και να ελέγξει τον πηγαίο κώδικα. Για περισσότερες πληροφορίες δείτε:
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 ή αν ο καθένας μπορεί απλώς να την καλέσει:
.png)
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 - 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
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

