From 3fa8780566a930ff2903073efcad7eec83603ea2 Mon Sep 17 00:00:00 2001 From: Translator Date: Thu, 9 Jan 2025 08:17:03 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-services/az-static-w --- .../az-services/az-static-web-apps.md | 42 ++++++++++++++----- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-services/az-static-web-apps.md b/src/pentesting-cloud/azure-security/az-services/az-static-web-apps.md index ea8a0426e..50200012b 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-static-web-apps.md +++ b/src/pentesting-cloud/azure-security/az-services/az-static-web-apps.md @@ -4,21 +4,25 @@ ## Static Web Apps Basic Information -Azure Static Web Apps είναι μια υπηρεσία cloud για τη φιλοξενία **στατικών εφαρμογών ιστού με αυτόματη CI/CD από αποθετήρια όπως το GitHub**. Προσφέρει παγκόσμια παράδοση περιεχομένου, serverless backends και ενσωματωμένο HTTPS, καθιστώντας την ασφαλή και κλιμακούμενη. Ωστόσο, οι κίνδυνοι περιλαμβάνουν κακή ρύθμιση CORS, ανεπαρκή αυθεντικοποίηση και παραποίηση περιεχομένου, που μπορεί να εκθέσουν τις εφαρμογές σε επιθέσεις όπως XSS και διαρροή δεδομένων αν δεν διαχειριστούν σωστά. +Azure Static Web Apps είναι μια υπηρεσία cloud για φιλοξενία **στατικών web apps με αυτόματη CI/CD από αποθετήρια όπως το GitHub**. Προσφέρει παγκόσμια παράδοση περιεχομένου, serverless backends και ενσωματωμένο HTTPS, καθιστώντας την ασφαλή και κλιμακούμενη. Ωστόσο, ακόμη και αν η υπηρεσία ονομάζεται "στατική", δεν σημαίνει ότι είναι εντελώς ασφαλής. Οι κίνδυνοι περιλαμβάνουν κακή ρύθμιση CORS, ανεπαρκή αυθεντικοποίηση και παραποίηση περιεχομένου, που μπορεί να εκθέσουν τις εφαρμογές σε επιθέσεις όπως XSS και διαρροή δεδομένων αν δεν διαχειριστούν σωστά. + +### Deployment Authentication > [!TIP] > Όταν δημιουργείται μια Στατική Εφαρμογή, μπορείτε να επιλέξετε την **πολιτική εξουσιοδότησης ανάπτυξης** μεταξύ **Deployment token** και **GitHub Actions workflow**. +- **Deployment token**: Δημιουργείται ένα token και χρησιμοποιείται για την αυθεντικοποίηση της διαδικασίας ανάπτυξης. Οποιοσδήποτε με **αυτό το token είναι αρκετός για να αναπτύξει μια νέα έκδοση της εφαρμογής**. Μια **Github Action αναπτύσσεται αυτόματα** στο repo με το token σε ένα μυστικό για να αναπτύξει μια νέα έκδοση της εφαρμογής κάθε φορά που το repo ενημερώνεται. +- **GitHub Actions workflow**: Σε αυτή την περίπτωση, μια πολύ παρόμοια Github Action αναπτύσσεται επίσης στο repo και το **token αποθηκεύεται επίσης σε ένα μυστικό**. Ωστόσο, αυτή η Github Action έχει μια διαφορά, χρησιμοποιεί την **`actions/github-script@v6`** action για να αποκτήσει το IDToken του αποθετηρίου και να το χρησιμοποιήσει για να αναπτύξει την εφαρμογή. +- Ακόμη και αν και στις δύο περιπτώσεις χρησιμοποιείται η action **`Azure/static-web-apps-deploy@v1`** με ένα token στην παράμετρο `azure_static_web_apps_api_token`, σε αυτή τη δεύτερη περίπτωση, ένα τυχαίο token με έγκυρη μορφή όπως `12345cbb198a77a092ff885781a62a15d51ef5e3654ca11234509ab54547270704-4140ccee-e04f-424f-b4ca-3d4dd123459c00f0702071d12345` είναι απλώς αρκετό για να αναπτύξει την εφαρμογή καθώς η εξουσιοδότηση γίνεται με το IDToken στην παράμετρο `github_id_token`. -### Web App Authentication +### Web App Basic Authentication -Είναι δυνατόν να **ρυθμίσετε έναν κωδικό πρόσβασης** για την πρόσβαση στην Εφαρμογή Ιστού. Η διαδικτυακή κονσόλα επιτρέπει τη ρύθμιση ώστε να προστατεύει μόνο τα περιβάλλοντα staging ή και τα δύο, staging και παραγωγής. +Είναι δυνατόν να **ρυθμίσετε έναν κωδικό πρόσβασης** για την πρόσβαση στην Web App. Η web κονσόλα επιτρέπει να ρυθμιστεί ώστε να προστατεύει μόνο τα περιβάλλοντα staging ή και τα δύο, staging και παραγωγής. -Αυτή είναι η εμφάνιση μιας προστατευμένης με κωδικό πρόσβασης εφαρμογής ιστού τη στιγμή που γράφεται το κείμενο: +Αυτή είναι η εμφάνιση μιας προστατευμένης με κωδικό πρόσβασης web app τη στιγμή που γράφεται:
- Είναι δυνατόν να δείτε **αν χρησιμοποιείται κάποιος κωδικός πρόσβασης** και ποια περιβάλλοντα είναι προστατευμένα με: ```bash az rest --method GET \ @@ -26,9 +30,9 @@ az rest --method GET \ ``` Ωστόσο, αυτό **δεν θα εμφανίσει τον κωδικό πρόσβασης σε καθαρό κείμενο**, μόνο κάτι σαν: `"password": "**********************"`. -### Διαδρομές +### Διαδρομές & Ρόλοι -Οι διαδρομές καθορίζουν **πώς διαχειρίζονται τα εισερχόμενα HTTP αιτήματα** μέσα σε μια στατική εφαρμογή ιστού. Ρυθμισμένες στο **`staticwebapp.config.json`** αρχείο, ελέγχουν την ανακατεύθυνση URL, τις ανακατευθύνσεις, τους περιορισμούς πρόσβασης και την εξουσιοδότηση βάσει ρόλων, διασφαλίζοντας τη σωστή διαχείριση πόρων και ασφάλεια. +Οι διαδρομές καθορίζουν **πώς διαχειρίζονται τα εισερχόμενα HTTP αιτήματα** μέσα σε μια στατική εφαρμογή ιστού. Ρυθμισμένες στο **`staticwebapp.config.json`** αρχείο, ελέγχουν την ανακατεύθυνση URL, τις ανακατευθύνσεις, τους περιορισμούς πρόσβασης και την εξουσιοδότηση με βάση ρόλους, διασφαλίζοντας τη σωστή διαχείριση πόρων και ασφάλεια. Ορισμένα παραδείγματα: ```json @@ -58,7 +62,20 @@ az rest --method GET \ } } ``` -## Καταμέτρηση +Σημειώστε πώς είναι δυνατόν να **προστατεύσετε μια διαδρομή με έναν ρόλο**, τότε, οι χρήστες θα χρειαστεί να αυθεντικοποιηθούν στην εφαρμογή και να τους παραχωρηθεί αυτός ο ρόλος για να αποκτήσουν πρόσβαση στη διαδρομή. Είναι επίσης δυνατό να **δημιουργήσετε προσκλήσεις** που παραχωρούν συγκεκριμένους ρόλους σε συγκεκριμένους χρήστες που συνδέονται μέσω EntraID, Facebook, GitHub, Google, Twitter, κάτι που μπορεί να είναι χρήσιμο για την κλιμάκωση δικαιωμάτων εντός της εφαρμογής. + +> [!TIP] +> Σημειώστε ότι είναι δυνατόν να ρυθμίσετε την εφαρμογή έτσι ώστε **οι αλλαγές στο αρχείο `staticwebapp.config.json`** να μην γίνονται αποδεκτές. Σε αυτή την περίπτωση, μπορεί να μην είναι αρκετό να αλλάξετε απλώς το αρχείο από το Github, αλλά και να **αλλάξετε τη ρύθμιση στην εφαρμογή**. + +Η διεύθυνση URL staging έχει αυτή τη μορφή: `https://-..` όπως: `https://ambitious-plant-0f764e00f-2.eastus2.4.azurestaticapps.net` + +### Managed Identities + +Οι Azure Static Web Apps μπορούν να ρυθμιστούν για να χρησιμοποιούν **managed identities**, ωστόσο, όπως αναφέρεται σε [αυτή την FAQ](https://learn.microsoft.com/en-gb/azure/static-web-apps/faq#does-static-web-apps-support-managed-identity-), υποστηρίζονται μόνο για **εξαγωγή μυστικών από το Azure Key Vault για σκοπούς αυθεντικοποίησης, όχι για πρόσβαση σε άλλους πόρους Azure**. + +Για περισσότερες πληροφορίες μπορείτε να βρείτε έναν οδηγό Azure για τη χρήση ενός μυστικού vault σε μια στατική εφαρμογή στο https://learn.microsoft.com/en-us/azure/static-web-apps/key-vault-secrets. + +## Enumeration ```bash # List Static Webapps az staticwebapp list --output table @@ -86,6 +103,9 @@ az rest --method GET \ ## Once you have the database connection name ("default" by default) you can get the connection string with the credentials az rest --method POST \ --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//databaseConnections/default/show?api-version=2021-03-01" + +# Check connected backends +az staticwebapp backends show --name --resource-group ``` ## Παραδείγματα για τη δημιουργία Ιστοσελίδων @@ -95,10 +115,12 @@ az rest --method POST \ 2. Στο Azure portal δημιουργήστε μια Static Web App ρυθμίζοντας την πρόσβαση στο Github και επιλέγοντας το προηγουμένως forked νέο αποθετήριο 3. Δημιουργήστε το, περιμένετε μερικά λεπτά και ελέγξτε τη νέα σας σελίδα! -## Post Exploitation +## Ανύψωση Προνομίων και Μετά την Εκμετάλλευση + +Όλες οι πληροφορίες σχετικά με την ανύψωση προνομίων και την μετά την εκμετάλλευση στις Azure Static Web Apps μπορούν να βρεθούν στον παρακάτω σύνδεσμο: {{#ref}} -../az-privilege-escalation/az-static-web-apps-post-exploitation.md +../az-privilege-escalation/az-static-web-apps-privesc.md {{#endref}} ## Αναφορές