GCP - App Engine 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

Basic Information

Η App Engine της Google Cloud Platform (GCP) είναι μια ισχυρή, serverless πλατφόρμα προσαρμοσμένη για την ανάπτυξη και φιλοξενία διαδικτυακών εφαρμογών σε μεγάλη κλίμακα. Ο σχεδιασμός αυτής της πλατφόρμας επικεντρώνεται στην απλοποίηση της διαδικασίας ανάπτυξης και στη βελτίωση της διαχειρισιμότητας των εφαρμογών. Τα κύρια χαρακτηριστικά και οφέλη της App Engine της GCP περιλαμβάνουν:

  1. Serverless Architecture: Η App Engine διαχειρίζεται αυτόματα την υποδομή, συμπεριλαμβανομένης της προμήθειας διακομιστών, της διαμόρφωσης και της κλιμάκωσης. Αυτό επιτρέπει στους προγραμματιστές να επικεντρώνονται στη συγγραφή κώδικα χωρίς να ανησυχούν για το υποκείμενο υλικό.
  2. Automatic Scaling: Η App Engine μπορεί να κλιμακώνει αυτόματα την εφαρμογή σας σε απάντηση στην ποσότητα της κίνησης που λαμβάνει. Κλιμακώνει προς τα πάνω για να διαχειριστεί αυξημένη κίνηση και κλιμακώνει προς τα κάτω όταν η κίνηση μειώνεται, βοηθώντας στη βελτιστοποίηση του κόστους και της απόδοσης.
  3. Language and Runtime Support: Υποστηρίζει δημοφιλείς γλώσσες προγραμματισμού όπως Java, Python, Node.js, Go, Ruby, PHP και .NET. Μπορείτε να εκτελέσετε τις εφαρμογές σας σε ένα τυπικό ή σε ένα ευέλικτο περιβάλλον. Το τυπικό περιβάλλον είναι πιο περιοριστικό αλλά εξαιρετικά βελτιστοποιημένο για συγκεκριμένες γλώσσες, ενώ το ευέλικτο περιβάλλον επιτρέπει περισσότερη προσαρμογή.
  4. Integrated Services: Η App Engine ενσωματώνεται με πολλές άλλες υπηρεσίες GCP, όπως Cloud SQL, Cloud Storage, Cloud Datastore και άλλες. Αυτή η ενσωμάτωση απλοποιεί την αρχιτεκτονική των εφαρμογών που βασίζονται στο cloud.
  5. Versioning and Traffic Splitting: Μπορείτε εύκολα να αναπτύξετε πολλές εκδόσεις της εφαρμογής σας και στη συνέχεια να χωρίσετε την κίνηση μεταξύ τους για A/B testing ή σταδιακή κυκλοφορία.
  6. Application Insights: Η App Engine παρέχει ενσωματωμένες υπηρεσίες όπως logging, αυθεντικοποίηση χρηστών και μια σουίτα εργαλείων προγραμματιστών για την παρακολούθηση και διαχείριση εφαρμογών.
  7. Security: Προσφέρει ενσωματωμένα χαρακτηριστικά ασφαλείας όπως η εκδοχή εφαρμογής, πιστοποιητικά SSL/TLS για ασφαλείς συνδέσεις και διαχείριση ταυτότητας και πρόσβασης.

Firewall

Ένα απλό firewall μπορεί να ρυθμιστεί για τις περιπτώσεις που εκτελούν τις εφαρμογές με τις εξής επιλογές:

SA

Ο προεπιλεγμένος λογαριασμός υπηρεσίας που χρησιμοποιείται από αυτές τις εφαρμογές είναι <proj-name>@appspot.gserviceaccount.com που έχει ρόλο Editor πάνω στο έργο και οι SAs μέσα στην περίπτωση APP Engine εκτελούνται με πεδίο cloud-platform (μεταξύ άλλων).

Storage

Ο πηγαίος κώδικας και τα μεταδεδομένα αποθηκεύονται αυτόματα σε buckets με ονόματα όπως <proj-id>.appspot.com και staging.<proj-id>.appspot.com και <country>.<proj-id>.appspot.com

Κάθε αρχείο της εφαρμογής αποθηκεύεται με το sha1 του περιεχομένου ως όνομα αρχείου:

Μέσα στον ae φάκελο από staging.<proj-id>.appspot.com, υπάρχει ένας φάκελος ανά έκδοση με τα αρχεία πηγαίου κώδικα και το manifest.json αρχείο που περιγράφει τα συστατικά της εφαρμογής:

{"requirements.txt":{"sourceUrl":"https://storage.googleapis.com/staging.onboarding-host-98efbf97812843.appspot.com/a270eedcbe2672c841251022b7105d340129d108","sha1Sum":"a270eedc_be2672c8_41251022_b7105d34_0129d108"},"main_test.py":{"sourceUrl":"https://storage.googleapis.com/staging.onboarding-host-98efbf97812843.appspot.com/0ca32fd70c953af94d02d8a36679153881943f32","sha1Sum":"0ca32fd7_0c953af9_4d02d8a ...

Containers

Η διαδικτυακή εφαρμογή θα εκτελείται μέσα σε ένα κοντέινερ και το Code Build χρησιμοποιείται για να κατασκευάσει το κοντέινερ.

URLs & Regions

Η προεπιλεγμένη διαδικτυακή σελίδα θα είναι εκτεθειμένη στη διεύθυνση URL <project-uniq-name>.appspot.com αν και η διεύθυνση URL παλαιότερων εκδόσεων θα είναι ελαφρώς διαφορετική, όπως https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com (σημειώστε την αρχική χρονική σήμανση).

Μπορεί να φαίνεται ότι είναι δυνατό να αναπτύξετε μόνο 1 εφαρμογή app engine ανά περιοχή, αλλά είναι δυνατό να δηλώσετε service: <servicename> στο app.yml και να δημιουργήσετε μια νέα υπηρεσία (μια νέα διαδικτυακή εφαρμογή). Η μορφή της διεύθυνσης URL για αυτή τη νέα διαδικτυακή εφαρμογή θα είναι <servicename>-dot-<project-uniq-name>.appspot.com.

Enumeration

Caution

Κάθε φορά που ανεβάζετε νέο κώδικα στην Εφαρμογή, δημιουργείται μια νέα έκδοση. Όλες οι εκδόσεις αποθηκεύονται και έχουν ακόμη και μια διεύθυνση URL για πρόσβαση σε αυτές. Έτσι, η τροποποίηση του κώδικα μιας παλαιότερης έκδοσης θα μπορούσε να είναι μια καλή τεχνική επιμονής.

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

# List the apps
gcloud app services list
gcloud app services describe <app-name>
# Access via browser to the specified app
gcloud app services browse <app-name>

# Get App versions
gcloud app versions list
# Get all the info of the app and version, included specific verion URL and the env
gcloud app versions describe -s <app-name> <version-id>

# Logs
gcloud app logs tail -s <app-name>

# Instances
## This is only valid if a flexible environment is used and not a standard one
gcloud app instances list
gcloud app instances describe -s <app-name> --version <version-id> <ID>
## Connect to the instance via ssh
gcloud app instances ssh --service <app-name> --version <version-id> <ID>

# Firewalls
gcloud app firewall-rules list
gcloud app firewall-rules describe <num_fw>

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

# SSl certificates
gcloud app ssl-certificates list
gcloud app ssl-certificates describe <name>

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

GCP - AppEngine Privesc

Μη Αυθεντικοποιημένη Enum

GCP - App Engine Unauthenticated Enum

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

GCP - App Engine Post Exploitation

Επιμονή

GCP - App Engine 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