From 20339c5d2cb51eeb2148e830ff17da87bf0e5502 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 26 Jan 2025 18:01:15 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-persistence/az-cloud --- hacktricks-preprocessor.py | 2 + src/SUMMARY.md | 4 +- .../az-cloud-shell-persistence.md | 10 ++--- .../az-logic-apps-post-exploitation.md | 8 ++-- .../az-services/az-app-services.md | 44 +++++++++---------- .../az-services/az-cloud-shell.md | 2 +- .../azure-security/az-services/az-cosmosDB.md | 20 ++++----- .../az-services/az-function-apps.md | 36 +++++++-------- .../az-services/az-logic-apps.md | 12 ++--- .../az-services/az-servicebus-enum.md | 6 +-- .../az-services/az-static-web-apps.md | 8 ++-- .../az-services/az-table-storage.md | 2 +- 12 files changed, 79 insertions(+), 75 deletions(-) diff --git a/hacktricks-preprocessor.py b/hacktricks-preprocessor.py index f07acbcdf..f19dddbe1 100644 --- a/hacktricks-preprocessor.py +++ b/hacktricks-preprocessor.py @@ -77,6 +77,8 @@ def ref(matchobj): logger.error(f'Error getting chapter title: {path.normpath(path.join(dir,href))}') sys.exit(1) + if href.endswith("/README.md"): + href = href.replace("/README.md", "/index.html") template = f"""{title}""" diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 4d0520541..e01dc44a7 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -398,8 +398,8 @@ - [Az - Enumeration Tools](pentesting-cloud/azure-security/az-enumeration-tools.md) - [Az - Unauthenticated Enum & Initial Entry](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/README.md) - [Az - OAuth Apps Phishing](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-oauth-apps-phishing.md) - - [Az - Storage Unath](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md) - - [Az - VMs Unath](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-vms-unauth.md) + - [Az - Storage Unauth](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md) + - [Az - VMs Unauth](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-vms-unauth.md) - [Az - Device Code Authentication Phishing](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md) - [Az - Password Spraying](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-password-spraying.md) - [Az - Services](pentesting-cloud/azure-security/az-services/README.md) diff --git a/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md b/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md index 341924603..6e25038d8 100644 --- a/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md +++ b/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md @@ -17,10 +17,10 @@ Learn & practice GCP Hacking: -Υποστήριξη HackTricks +Υποστηρίξτε το HackTricks * Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)! -* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.** +* **Εγγραφείτε στο** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.** * **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md index b7fae28b4..166defaf5 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md @@ -23,7 +23,7 @@ {% endcontent-ref %} ### "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action" -Με αυτές τις άδειες, μπορείτε να τροποποιήσετε τις ροές εργασίας Logic App και να διαχειριστείτε τις ταυτότητές τους. Συγκεκριμένα, μπορείτε να αναθέσετε ή να αφαιρέσετε ταυτότητες που ανατίθενται από το σύστημα και ταυτότητες που ανατίθενται από τον χρήστη σε ροές εργασίας, επιτρέποντας στην Logic App να πιστοποιείται και να έχει πρόσβαση σε άλλους πόρους Azure χωρίς ρητές διαπιστευτήρια. +Με αυτές τις άδειες, μπορείτε να τροποποιήσετε τις ροές εργασίας Logic App και να διαχειριστείτε τις ταυτότητές τους. Συγκεκριμένα, μπορείτε να αναθέσετε ή να αφαιρέσετε ταυτότητες που έχουν ανατεθεί από το σύστημα και ταυτότητες που έχουν ανατεθεί από τον χρήστη σε ροές εργασίας, επιτρέποντας στην Logic App να πιστοποιείται και να έχει πρόσβαση σε άλλους πόρους Azure χωρίς ρητές διαπιστευτήρια. {% code overflow="wrap" %} ```bash @@ -36,7 +36,9 @@ az logic workflow identity remove/assign \ {% endcode %} ### "Microsoft.Web/sites/read", "Microsoft.Web/sites/write" -Με αυτές τις άδειες, μπορείτε να δημιουργήσετε ή να ενημερώσετε Logic Apps +Με αυτές τις άδειες, μπορείτε να δημιουργήσετε ή να ενημερώσετε Logic Apps που φιλοξενούνται σε ένα App Service Plan. Αυτό περιλαμβάνει την τροποποίηση ρυθμίσεων όπως η ενεργοποίηση ή η απενεργοποίηση της επιβολής HTTPS. + +{% code overflow="wrap" %} ```bash az logicapp update \ --resource-group \ @@ -46,7 +48,7 @@ az logicapp update \ {% endcode %} ### "Microsoft.Web/sites/stop/action", "Microsoft.Web/sites/start/action" || "Microsoft.Web/sites/restart/action" -Με αυτή την άδεια, μπορείτε να ξεκινήσετε/σταματήσετε/επανεκκινήσετε μια εφαρμογή ιστού, συμπεριλαμβανομένων των Logic Apps που φιλοξενούνται σε ένα App Service Plan. Αυτή η ενέργεια διασφαλίζει ότι μια προηγουμένως σταματημένη εφαρμογή επανέρχεται online και επαναλαμβάνει τη λειτουργικότητά της. Αυτό μπορεί να διαταράξει τις ροές εργασίας, να προκαλέσει μη προγραμματισμένες λειτουργίες ή να προκαλέσει διακοπή λειτουργίας ξεκινώντας, σταματώντας ή επανεκκινώντας τις Logic Apps απροσδόκητα. +Με αυτή την άδεια, μπορείτε να ξεκινήσετε/σταματήσετε/επανεκκινήσετε μια εφαρμογή ιστού, συμπεριλαμβανομένων των Logic Apps που φιλοξενούνται σε ένα App Service Plan. Αυτή η ενέργεια διασφαλίζει ότι μια προηγουμένως σταματημένη εφαρμογή επανέρχεται online και συνεχίζει τη λειτουργικότητά της. Αυτό μπορεί να διαταράξει τις ροές εργασίας, να προκαλέσει μη προγραμματισμένες ενέργειες ή να προκαλέσει διακοπή λειτουργίας ξεκινώντας, σταματώντας ή επανεκκινώντας τις Logic Apps απροσδόκητα. {% code overflow="wrap" %} ```bash diff --git a/src/pentesting-cloud/azure-security/az-services/az-app-services.md b/src/pentesting-cloud/azure-security/az-services/az-app-services.md index 15911fb36..9f3f12dc5 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-app-services.md +++ b/src/pentesting-cloud/azure-security/az-services/az-app-services.md @@ -4,13 +4,13 @@ ## App Service Basic Information -Azure App Services επιτρέπει στους προγραμματιστές να **δημιουργούν, αναπτύσσουν και κλιμακώνουν διαδικτυακές εφαρμογές, backend κινητών εφαρμογών και APIs χωρίς προβλήματα**. Υποστηρίζει πολλές γλώσσες προγραμματισμού και ενσωματώνεται με διάφορα εργαλεία και υπηρεσίες Azure για βελτιωμένη λειτουργικότητα και διαχείριση. +Azure App Services επιτρέπει στους προγραμματιστές να **δημιουργούν, αναπτύσσουν και κλιμακώνουν διαδικτυακές εφαρμογές, backend εφαρμογών κινητών και APIs χωρίς προβλήματα**. Υποστηρίζει πολλές γλώσσες προγραμματισμού και ενσωματώνεται με διάφορα εργαλεία και υπηρεσίες Azure για βελτιωμένη λειτουργικότητα και διαχείριση. Κάθε εφαρμογή εκτελείται μέσα σε ένα sandbox, αλλά η απομόνωση εξαρτάται από τα σχέδια App Service: -- Οι εφαρμογές σε δωρεάν και κοινές κατηγορίες εκτελούνται σε **κοινές VM** -- Οι εφαρμογές σε Standard και Premium κατηγορίες εκτελούνται σε **αφιερωμένες VM που μοιράζονται μόνο από εφαρμογές** στην ίδια κατηγορία App Service. -- Οι απομονωμένες κατηγορίες εκτελούνται σε **αφιερωμένες VM σε αφιερωμένα εικονικά δίκτυα**, βελτιώνοντας την απομόνωση των εφαρμογών. +- Οι εφαρμογές σε δωρεάν και κοινά επίπεδα εκτελούνται σε **κοινές VM** +- Οι εφαρμογές σε τυπικά και premium επίπεδα εκτελούνται σε **αφιερωμένες VM που μοιράζονται μόνο από εφαρμογές** στο ίδιο σχέδιο App Service. +- Τα απομονωμένα επίπεδα εκτελούνται σε **αφιερωμένες VM σε αφιερωμένα εικονικά δίκτυα**, βελτιώνοντας την απομόνωση των εφαρμογών. > [!WARNING] > Σημειώστε ότι **κανένα** από αυτά τα επίπεδα απομόνωσης **δεν αποτρέπει** άλλες κοινές **ευπάθειες ιστού** (όπως η μεταφόρτωση αρχείων ή οι εισβολές). Και αν χρησιμοποιηθεί μια **ταυτότητα διαχείρισης**, θα μπορούσε να είναι σε θέση να **κλιμακώσει τα δικαιώματα σε αυτές**. @@ -18,13 +18,13 @@ Azure App Services επιτρέπει στους προγραμματιστές Οι εφαρμογές έχουν κάποιες ενδιαφέρουσες ρυθμίσεις: - **Always On**: Διασφαλίζει ότι η εφαρμογή είναι πάντα σε λειτουργία. Αν δεν είναι ενεργοποιημένο, η εφαρμογή θα σταματήσει να λειτουργεί μετά από 20 λεπτά αδράνειας και θα ξεκινήσει ξανά όταν ληφθεί ένα αίτημα. -- Αυτό είναι απαραίτητο αν έχετε μια webjob που χρειάζεται να εκτελείται συνεχώς, καθώς η webjob θα σταματήσει αν σταματήσει η εφαρμογή. +- Αυτό είναι απαραίτητο αν έχετε μια webjob που χρειάζεται να εκτελείται συνεχώς, καθώς η webjob θα σταματήσει αν η εφαρμογή σταματήσει. - **SSH**: Αν είναι ενεργοποιημένο, ένας χρήστης με αρκετά δικαιώματα μπορεί να συνδεθεί στην εφαρμογή χρησιμοποιώντας SSH. - **Debugging**: Αν είναι ενεργοποιημένο, ένας χρήστης με αρκετά δικαιώματα μπορεί να αποσφαλματώσει την εφαρμογή. Ωστόσο, αυτό απενεργοποιείται αυτόματα κάθε 48 ώρες. -- **Web App + Database**: Η διαδικτυακή κονσόλα επιτρέπει τη δημιουργία μιας εφαρμογής με μια βάση δεδομένων. Σε αυτή την περίπτωση, είναι δυνατή η επιλογή της βάσης δεδομένων που θα χρησιμοποιηθεί (SQLAzure, PostgreSQL, MySQL, MongoDB) και επιτρέπει επίσης τη δημιουργία ενός Azure Cache για Redis. +- **Web App + Database**: Η διαδικτυακή κονσόλα επιτρέπει τη δημιουργία μιας εφαρμογής με μια βάση δεδομένων. Σε αυτή την περίπτωση, είναι δυνατή η επιλογή της βάσης δεδομένων που θα χρησιμοποιηθεί (SQLAzure, PostgreSQL, MySQL, MongoDB) και επιτρέπει επίσης τη δημιουργία ενός Azure Cache for Redis. - Η διεύθυνση URL που περιέχει τα διαπιστευτήρια για τη βάση δεδομένων και το Redis θα αποθηκευτεί στα **appsettings**. - **Container**: Είναι δυνατή η ανάπτυξη ενός container στην υπηρεσία App Service υποδεικνύοντας τη διεύθυνση URL του container και τα διαπιστευτήρια για την πρόσβαση σε αυτό. -- **Mounts**: Είναι δυνατή η δημιουργία 5 mounts από λογαριασμούς αποθήκευσης, είτε αυτοί είναι Azure Blob (Μόνο για Ανάγνωση) είτε Azure Files. Η ρύθμιση θα αποθηκεύσει το κλειδί πρόσβασης πάνω από τον Λογαριασμό Αποθήκευσης. +- **Mounts**: Είναι δυνατή η δημιουργία 5 mounts από λογαριασμούς αποθήκευσης, είτε αυτοί είναι Azure Blob (Μόνο για Ανάγνωση) είτε Azure Files. Η ρύθμιση θα αποθηκεύσει το κλειδί πρόσβασης πάνω από τον λογαριασμό αποθήκευσης. ## Basic Authentication @@ -41,7 +41,7 @@ Azure App Services επιτρέπει στους προγραμματιστές Kudu είναι η πλατφόρμα που **διαχειρίζεται τόσο το SCM όσο και μια διαδικτυακή και API διεπαφή** για τη διαχείριση μιας υπηρεσίας App Service, και παρέχει δυνατότητες ανάπτυξης βασισμένες σε Git, απομακρυσμένη αποσφαλμάτωση και διαχείριση αρχείων. Είναι προσβάσιμη μέσω της διεύθυνσης URL SCM που ορίζεται στην διαδικτυακή εφαρμογή. -Σημειώστε ότι οι εκδόσεις Kudu που χρησιμοποιούνται από τις Υπηρεσίες App και από τις Function Apps είναι διαφορετικές, με την έκδοση των Function apps να είναι πολύ πιο περιορισμένη. +Σημειώστε ότι οι εκδόσεις Kudu που χρησιμοποιούνται από τις υπηρεσίες App Services και από τις Function Apps είναι διαφορετικές, με την έκδοση των Function apps να είναι πολύ πιο περιορισμένη. Ορισμένα ενδιαφέροντα endpoints που μπορείτε να βρείτε στο Kudu είναι: - `/BasicAuth`: Πρέπει να αποκτήσετε πρόσβαση σε αυτή τη διαδρομή για να **συνδεθείτε στο Kudu**. @@ -52,15 +52,15 @@ Kudu είναι η πλατφόρμα που **διαχειρίζεται τόσ - `/Env`: Λάβετε πληροφορίες σχετικά με το σύστημα, τις ρυθμίσεις εφαρμογής, τις μεταβλητές περιβάλλοντος, τις συμβολοσειρές σύνδεσης και τις κεφαλίδες HTTP. - `/wwwroot/`: Ο ριζικός κατάλογος της διαδικτυακής εφαρμογής. Μπορείτε να κατεβάσετε όλα τα αρχεία από εδώ. -Επιπλέον, το Kudu χρησιμοποιούνταν ως ανοιχτού κώδικα στο [https://github.com/projectkudu/kudu](https://github.com/projectkudu/kudu) αλλά το έργο έχει αποσυρθεί και συγκρίνοντας τη συμπεριφορά του τρέχοντος Kudu στην Azure με το παλιό, είναι δυνατόν να παρατηρηθεί ότι **πολλά πράγματα έχουν ήδη αλλάξει**. +Επιπλέον, το Kudu ήταν ανοιχτού κώδικα στο [https://github.com/projectkudu/kudu](https://github.com/projectkudu/kudu), αλλά το έργο έχει αποσυρθεί και συγκρίνοντας τη συμπεριφορά του τρέχοντος Kudu στην Azure με το παλιό, είναι δυνατό να παρατηρήσετε ότι **πολλά πράγματα έχουν ήδη αλλάξει**. ## Sources -Οι Υπηρεσίες App επιτρέπουν την αποστολή του κώδικα ως αρχείο zip από προεπιλογή, αλλά επιτρέπουν επίσης τη σύνδεση σε μια υπηρεσία τρίτου μέρους και την απόκτηση του κώδικα από εκεί. +Οι υπηρεσίες App Services επιτρέπουν την ανέβασμα του κώδικα ως αρχείο zip από προεπιλογή, αλλά επιτρέπουν επίσης τη σύνδεση σε μια τρίτη υπηρεσία και την απόκτηση του κώδικα από εκεί. -- Οι υποστηριζόμενες τρίτες πηγές είναι **Github** και **Bitbucket**. +- Οι τρέχουσες υποστηριζόμενες τρίτες πηγές είναι **Github** και **Bitbucket**. - Μπορείτε να αποκτήσετε τα διαπιστευτήρια αυθεντικοποίησης εκτελώντας `az rest --url "https://management.azure.com/providers/Microsoft.Web/sourcecontrols?api-version=2024-04-01"` -- Η Azure από προεπιλογή θα ρυθμίσει μια **Github Action** για να αναπτύξει τον κώδικα στην Υπηρεσία App κάθε φορά που ενημερώνεται ο κώδικας. +- Η Azure από προεπιλογή θα ρυθμίσει μια **Github Action** για να αναπτύξει τον κώδικα στην υπηρεσία App Service κάθε φορά που ενημερώνεται ο κώδικας. - Είναι επίσης δυνατή η ένδειξη ενός **απομακρυσμένου git repository** (με όνομα χρήστη και κωδικό πρόσβασης) για να αποκτήσετε τον κώδικα από εκεί. - Μπορείτε να αποκτήσετε τα διαπιστευτήρια για το απομακρυσμένο repo εκτελώντας `az webapp deployment source show --name --resource-group ` ή `az rest --method POST --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//config/metadata/list?api-version=2022-03-01" --resource "https://management.azure.com"` - Είναι επίσης δυνατή η χρήση ενός **Azure Repository**. @@ -70,26 +70,26 @@ Kudu είναι η πλατφόρμα που **διαχειρίζεται τόσ ## Webjobs -Οι Azure WebJobs είναι **εργασίες παρασκηνίου που εκτελούνται στο περιβάλλον Azure App Service**. Επιτρέπουν στους προγραμματιστές να εκτελούν σενάρια ή προγράμματα παράλληλα με τις διαδικτυακές τους εφαρμογές, διευκολύνοντας την εκτέλεση ασύγχρονων ή χρονοβόρων εργασιών όπως η επεξεργασία αρχείων, η διαχείριση δεδομένων ή οι προγραμματισμένες εργασίες. +Οι Azure WebJobs είναι **εργασίες φόντου που εκτελούνται στο περιβάλλον Azure App Service**. Επιτρέπουν στους προγραμματιστές να εκτελούν σενάρια ή προγράμματα παράλληλα με τις διαδικτυακές τους εφαρμογές, διευκολύνοντας την εκτέλεση ασύγχρονων ή χρονοβόρων εργασιών όπως η επεξεργασία αρχείων, η διαχείριση δεδομένων ή οι προγραμματισμένες εργασίες. Υπάρχουν 2 τύποι web jobs: -- **Continuous**: Εκτελείται αδιάκοπα σε βρόχο και ενεργοποιείται μόλις δημιουργηθεί. Είναι ιδανικό για εργασίες που απαιτούν συνεχή επεξεργασία. Ωστόσο, αν η εφαρμογή σταματήσει να λειτουργεί επειδή το Always On είναι απενεργοποιημένο και δεν έχει λάβει αίτημα στα τελευταία 20 λεπτά, η web job θα σταματήσει επίσης. -- **Triggered**: Εκτελείται κατόπιν αιτήματος ή με βάση ένα πρόγραμμα. Είναι καλύτερα προσαρμοσμένο για περιοδικές εργασίες, όπως ενημερώσεις δεδομένων batch ή ρουτίνες συντήρησης. +- **Continuous**: Εκτελείται επ' αόριστον σε βρόχο και ενεργοποιείται μόλις δημιουργηθεί. Είναι ιδανικό για εργασίες που απαιτούν συνεχή επεξεργασία. Ωστόσο, αν η εφαρμογή σταματήσει να λειτουργεί επειδή το Always On είναι απενεργοποιημένο και δεν έχει λάβει αίτημα τα τελευταία 20 λεπτά, η web job θα σταματήσει επίσης. +- **Triggered**: Εκτελείται κατόπιν αιτήματος ή με βάση ένα πρόγραμμα. Είναι πιο κατάλληλο για περιοδικές εργασίες, όπως ενημερώσεις δεδομένων batch ή ρουτίνες συντήρησης. -Οι webjobs είναι πολύ ενδιαφέρουσες από την προοπτική των επιτιθέμενων καθώς θα μπορούσαν να χρησιμοποιηθούν για **εκτέλεση κώδικα** στο περιβάλλον και **κλιμάκωση δικαιωμάτων** στις συνδεδεμένες διαχειριζόμενες ταυτότητες. +Οι webjobs είναι πολύ ενδιαφέρουσες από την προοπτική των επιτιθέμενων, καθώς θα μπορούσαν να χρησιμοποιηθούν για **εκτέλεση κώδικα** στο περιβάλλον και **κλιμάκωση δικαιωμάτων** στις συνδεδεμένες διαχειριζόμενες ταυτότητες. -Επιπλέον, είναι πάντα ενδιαφέρον να ελέγχετε τα **αρχεία καταγραφής** που παράγονται από τις Webjobs καθώς θα μπορούσαν να περιέχουν **ευαίσθητες πληροφορίες**. +Επιπλέον, είναι πάντα ενδιαφέρον να ελέγχετε τα **αρχεία καταγραφής** που παράγονται από τις Webjobs, καθώς θα μπορούσαν να περιέχουν **ευαίσθητες πληροφορίες**. ## Slots -Οι Θέσεις Υπηρεσίας App Azure χρησιμοποιούνται για **να αναπτύξουν διαφορετικές εκδόσεις της εφαρμογής** στην ίδια Υπηρεσία App. Αυτό επιτρέπει στους προγραμματιστές να δοκιμάζουν νέες δυνατότητες ή αλλαγές σε ένα ξεχωριστό περιβάλλον πριν τις αναπτύξουν στο περιβάλλον παραγωγής. +Οι Azure App Service Slots χρησιμοποιούνται για **να αναπτύξουν διαφορετικές εκδόσεις της εφαρμογής** στην ίδια υπηρεσία App Service. Αυτό επιτρέπει στους προγραμματιστές να δοκιμάζουν νέες δυνατότητες ή αλλαγές σε ένα ξεχωριστό περιβάλλον πριν τις αναπτύξουν στο περιβάλλον παραγωγής. -Επιπλέον, είναι δυνατή η δρομολόγηση ενός **ποσοστού της κίνησης** σε μια συγκεκριμένη θέση, κάτι που είναι χρήσιμο για A/B testing και για **σκοπούς backdoor**. +Επιπλέον, είναι δυνατή η δρομολόγηση ενός **ποσοστού της κίνησης** σε μια συγκεκριμένη υποδοχή, κάτι που είναι χρήσιμο για A/B testing και για **σκοπούς backdoor**. ## Azure Function Apps Βασικά, **οι Azure Function apps είναι ένα υποσύνολο της Azure App Service** στην διαδικτυακή κονσόλα και αν πάτε στην διαδικτυακή κονσόλα και καταγράψετε όλες τις υπηρεσίες εφαρμογών ή εκτελέσετε `az webapp list` στο az cli, θα μπορείτε να **δείτε τις Function apps επίσης καταγεγραμμένες εκεί**. -Επομένως, και οι δύο υπηρεσίες έχουν κυρίως τις **ίδιες ρυθμίσεις, δυνατότητες και επιλογές στο az cli**, αν και μπορεί να τις ρυθμίζουν λίγο διαφορετικά (όπως οι προεπιλεγμένες τιμές των appsettings ή η χρήση ενός Λογαριασμού Αποθήκευσης στις Function apps). +Επομένως, και οι δύο υπηρεσίες έχουν κυρίως τις **ίδιες ρυθμίσεις, δυνατότητες και επιλογές στο az cli**, αν και μπορεί να τις ρυθμίζουν λίγο διαφορετικά (όπως οι προεπιλεγμένες τιμές των appsettings ή η χρήση ενός Storage Account στις Function apps). ## Enumeration @@ -283,7 +283,7 @@ cd msdocs-python-flask-webapp-quickstart # Create webapp from this code az webapp up --runtime PYTHON:3.9 --sku B1 --logs ``` -Συνδεόμενοι στο SCM portal ή συνδεόμενοι μέσω FTP, είναι δυνατόν να δούμε στο `/wwwroot` το συμπιεσμένο αρχείο `output.tar.gz` που περιέχει τον κώδικα της webapp. +Συνδεόμενος στο SCM portal ή συνδεόμενος μέσω FTP, είναι δυνατόν να δει κανείς στο `/wwwroot` το συμπιεσμένο αρχείο `output.tar.gz` που περιέχει τον κώδικα της webapp. > [!TIP] > Απλώς η σύνδεση μέσω FTP και η τροποποίηση του αρχείου `output.tar.gz` δεν είναι αρκετή για να αλλάξει τον κώδικα που εκτελείται από την webapp. @@ -298,7 +298,7 @@ az webapp up --runtime PYTHON:3.9 --sku B1 --logs 2. Δημιουργήστε μια νέα python Web App στο Azure. 3. Στο `Deployment Center` αλλάξτε την πηγή, συνδεθείτε με το Github, επιλέξτε το forked repo και κάντε κλικ στο `Save`. -Όπως στην προηγούμενη περίπτωση, συνδεόμενοι στο SCM portal ή συνδεόμενοι μέσω FTP, είναι δυνατόν να δούμε στο `/wwwroot` το συμπιεσμένο αρχείο `output.tar.gz` που περιέχει τον κώδικα της webapp. +Όπως και στην προηγούμενη περίπτωση, συνδεόμενος στο SCM portal ή συνδεόμενος μέσω FTP, είναι δυνατόν να δει κανείς στο `/wwwroot` το συμπιεσμένο αρχείο `output.tar.gz` που περιέχει τον κώδικα της webapp. > [!TIP] > Απλώς η σύνδεση μέσω FTP και η τροποποίηση του αρχείου `output.tar.gz` και η επανενεργοποίηση μιας ανάπτυξης δεν είναι αρκετή για να αλλάξει τον κώδικα που εκτελείται από την webapp. diff --git a/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md b/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md index d3bffe688..f4590b305 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md +++ b/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md @@ -17,7 +17,7 @@ ## Azure Cloud Shell -**Azure Cloud Shell** είναι ένα διαδραστικό, αυθεντικοποιημένο, προσβάσιμο μέσω προγράμματος περιήγησης τερματικό σχεδιασμένο για τη διαχείριση πόρων Azure, προσφέροντας την ευελιξία να εργάζεστε είτε με Bash είτε με PowerShell. Λειτουργεί σε έναν προσωρινό, ανά συνεδρία διακομιστή που λήγει μετά από 20 λεπτά αδράνειας, ενώ διατηρεί αρχεία στην τοποθεσία $HOME χρησιμοποιώντας μια κοινή χρήση αρχείων 5 GB. Το Cloud Shell μπορεί να προσπελαστεί μέσω πολλών σημείων, συμπεριλαμβανομένων του Azure portal, shell.azure.com, Azure CLI και της τεκμηρίωσης PowerShell, της εφαρμογής Azure mobile και της επέκτασης Azure Account του Visual Studio Code. +**Azure Cloud Shell** είναι ένα διαδραστικό, αυθεντικοποιημένο, προσβάσιμο μέσω προγράμματος περιήγησης τερματικό σχεδιασμένο για τη διαχείριση πόρων Azure, προσφέροντας την ευελιξία να εργάζεστε είτε με Bash είτε με PowerShell. Λειτουργεί σε έναν προσωρινό, ανά συνεδρία διακομιστή που λήγει μετά από 20 λεπτά αδράνειας, ενώ διατηρεί αρχεία στην τοποθεσία $HOME χρησιμοποιώντας μια κοινή χρήση 5 GB. Το Cloud Shell μπορεί να προσπελαστεί μέσω πολλών σημείων, συμπεριλαμβανομένων του Azure portal, shell.azure.com, Azure CLI και της τεκμηρίωσης PowerShell, της εφαρμογής Azure mobile και της επέκτασης Azure Account του Visual Studio Code. Δεν υπάρχουν δικαιώματα που να έχουν ανατεθεί σε αυτή την υπηρεσία, επομένως δεν υπάρχουν τεχνικές ανύψωσης προνομίων. Επίσης, δεν υπάρχει κανενός είδους αρίθμηση. diff --git a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md index 3d7ce83da..e4102fdcc 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md +++ b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md @@ -17,11 +17,11 @@ Learn & practice GCP Hacking: :/ {% endcode %} #### Βάσεις Δεδομένων -Στο MongoDB, μπορείτε να δημιουργήσετε μία ή περισσότερες βάσεις δεδομένων μέσα σε μια παρουσία. Κάθε βάση δεδομένων λειτουργεί ως λογική ομαδοποίηση συλλογών και παρέχει ένα όριο για την οργάνωση και διαχείριση πόρων. Οι βάσεις δεδομένων βοηθούν στη λογική διαχωριστική και διαχείριση δεδομένων, όπως για διαφορετικές εφαρμογές ή έργα. +Στο MongoDB, μπορείτε να δημιουργήσετε μία ή περισσότερες βάσεις δεδομένων μέσα σε μια παρουσία. Κάθε βάση δεδομένων λειτουργεί ως λογική ομαδοποίηση συλλογών και παρέχει ένα όριο για την οργάνωση και διαχείριση πόρων. Οι βάσεις δεδομένων βοηθούν στη λογική διαχωρισμό και διαχείριση των δεδομένων, όπως για διαφορετικές εφαρμογές ή έργα. #### Συλλογές Η βασική μονάδα αποθήκευσης δεδομένων στο MongoDB είναι η συλλογή, η οποία περιέχει έγγραφα και έχει σχεδιαστεί για αποδοτική αναζήτηση και ευέλικτο σχεδιασμό σχήματος. Οι συλλογές είναι ελαστικά κλιμακούμενες και μπορούν να υποστηρίξουν λειτουργίες υψηλής απόδοσης σε πολλαπλούς κόμβους σε μια κατανεμημένη ρύθμιση. @@ -333,7 +333,7 @@ print(f"Inserted document with ID: {result.inserted_id}") * [https://learn.microsoft.com/en-us/azure/cosmos-db/introduction](https://learn.microsoft.com/en-us/azure/cosmos-db/introduction) * [https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli](https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli) -## Ανάβαση Δικαιωμάτων +## Ανύψωση Δικαιωμάτων {% content-ref url="../az-privilege-escalation/az-cosmosDB-privesc.md" %} [az-cosmosDB-privesc.md](../az-privilege-escalation/az-cosmosDB-privesc.md) @@ -347,8 +347,8 @@ print(f"Inserted document with ID: {result.inserted_id}") ## ToDo -* Η υπόλοιπη DB εδώ, πίνακες, cassandra, gremlin... -* Ρίξτε μια ματιά στην εκμετάλλευση "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" και τους ορισμούς ρόλων γιατί εδώ μπορεί να υπάρχει privesc +* Η υπόλοιπη βάση δεδομένων εδώ, πίνακες, cassandra, gremlin... +* Ρίξτε μια ματιά στην εκμετάλλευση "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" και τους ορισμούς ρόλων γιατί εδώ μπορεί να υπάρχει ανύψωση δικαιωμάτων * Ρίξτε μια ματιά στις αποκαταστάσεις {% hint style="success" %} diff --git a/src/pentesting-cloud/azure-security/az-services/az-function-apps.md b/src/pentesting-cloud/azure-security/az-services/az-function-apps.md index 7a18890a7..8048d3168 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-function-apps.md +++ b/src/pentesting-cloud/azure-security/az-services/az-function-apps.md @@ -4,7 +4,7 @@ ## Basic Information -**Azure Function Apps** είναι μια **serverless compute service** που σας επιτρέπει να εκτελείτε μικρά κομμάτια κώδικα, που ονομάζονται **functions**, χωρίς να διαχειρίζεστε την υποκείμενη υποδομή. Είναι σχεδιασμένα να εκτελούν κώδικα σε απάντηση σε διάφορους ενεργοποιητές, όπως **HTTP requests, timers, ή events από άλλες υπηρεσίες Azure** όπως Blob Storage ή Event Hubs. Τα Function Apps υποστηρίζουν πολλές γλώσσες προγραμματισμού, συμπεριλαμβανομένων των C#, Python, JavaScript και Java, καθιστώντας τα ευέλικτα για την κατασκευή **event-driven applications**, αυτοματοποίηση ροών εργασίας ή ενσωμάτωση υπηρεσιών. Είναι οικονομικά, καθώς συνήθως πληρώνετε μόνο για τον χρόνο υπολογισμού που χρησιμοποιείται όταν εκτελείται ο κώδικάς σας. +**Azure Function Apps** είναι μια **serverless compute service** που σας επιτρέπει να εκτελείτε μικρά κομμάτια κώδικα, που ονομάζονται **functions**, χωρίς να διαχειρίζεστε την υποκείμενη υποδομή. Είναι σχεδιασμένα να εκτελούν κώδικα σε απάντηση σε διάφορους ενεργοποιητές, όπως **HTTP requests, timers, ή events από άλλες υπηρεσίες Azure** όπως Blob Storage ή Event Hubs. Τα Function Apps υποστηρίζουν πολλές γλώσσες προγραμματισμού, συμπεριλαμβανομένων των C#, Python, JavaScript και Java, καθιστώντας τα ευέλικτα για την κατασκευή **event-driven applications**, αυτοματοποίηση ροών εργασίας ή ενσωμάτωση υπηρεσιών. Είναι οικονομικά αποδοτικά, καθώς συνήθως πληρώνετε μόνο για τον χρόνο υπολογισμού που χρησιμοποιείται όταν εκτελείται ο κώδικάς σας. > [!NOTE] > Σημειώστε ότι **Functions είναι ένα υποσύνολο των App Services**, επομένως, πολλές από τις δυνατότητες που συζητούνται εδώ θα χρησιμοποιηθούν επίσης από εφαρμογές που δημιουργούνται ως Azure Apps (`webapp` στο cli). @@ -13,30 +13,30 @@ - **Flex Consumption Plan**: Προσφέρει **dynamic, event-driven scaling** με τιμολόγηση pay-as-you-go, προσθέτοντας ή αφαιρώντας παραδείγματα λειτουργιών με βάση τη ζήτηση. Υποστηρίζει **virtual networking** και **pre-provisioned instances** για να μειώσει τις κρύες εκκινήσεις, καθιστώντας το κατάλληλο για **variable workloads** που δεν απαιτούν υποστήριξη κοντέινερ. - **Traditional Consumption Plan**: Η προεπιλεγμένη serverless επιλογή, όπου **πληρώνετε μόνο για τους υπολογιστικούς πόρους όταν εκτελούνται οι λειτουργίες**. Αυξάνεται αυτόματα με βάση τα εισερχόμενα γεγονότα και περιλαμβάνει **cold start optimizations**, αλλά δεν υποστηρίζει αναπτύξεις κοντέινερ. Ιδανικό για **intermittent workloads** που απαιτούν αυτόματη κλιμάκωση. -- **Premium Plan**: Σχεδιασμένο για **consistent performance**, με **prewarmed workers** για να εξαλείψει τις κρύες εκκινήσεις. Προσφέρει **extended execution times, virtual networking**, και υποστηρίζει **custom Linux images**, καθιστώντας το τέλειο για **mission-critical applications** που χρειάζονται υψηλή απόδοση και προηγμένες δυνατότητες. +- **Premium Plan**: Σχεδιασμένο για **consistent performance**, με **prewarmed workers** για να εξαλείψει τις κρύες εκκινήσεις. Προσφέρει **extended execution times, virtual networking**, και υποστηρίζει **custom Linux images**, καθιστώντας το ιδανικό για **mission-critical applications** που χρειάζονται υψηλή απόδοση και προηγμένες δυνατότητες. - **Dedicated Plan**: Λειτουργεί σε αφιερωμένες εικονικές μηχανές με **predictable billing** και υποστηρίζει χειροκίνητη ή αυτόματη κλιμάκωση. Επιτρέπει την εκτέλεση πολλών εφαρμογών στο ίδιο σχέδιο, παρέχει **compute isolation**, και εξασφαλίζει **secure network access** μέσω App Service Environments, καθιστώντας το ιδανικό για **long-running applications** που χρειάζονται συνεπή κατανομή πόρων. - **Container Apps**: Επιτρέπει την ανάπτυξη **containerized function apps** σε ένα διαχειριζόμενο περιβάλλον, παράλληλα με μικροϋπηρεσίες και APIs. Υποστηρίζει προσαρμοσμένες βιβλιοθήκες, μετανάστευση κληρονομημένων εφαρμογών, και **GPU processing**, εξαλείφοντας τη διαχείριση του Kubernetes cluster. Ιδανικό για **event-driven, scalable containerized applications**. ### **Storage Buckets** -Όταν δημιουργείτε μια νέα Function App που δεν είναι κοντεϊνεροποιημένη (αλλά δίνετε τον κώδικα για εκτέλεση), τα **κωδικοποιημένα και άλλα δεδομένα που σχετίζονται με τη Function θα αποθηκευτούν σε έναν λογαριασμό Storage**. Από προεπιλογή, η διαδικτυακή κονσόλα θα δημιουργήσει έναν νέο ανά λειτουργία για να αποθηκεύσει τον κώδικα. +Όταν δημιουργείτε μια νέα Function App που δεν είναι κοντεϊνερized (αλλά δίνετε τον κώδικα για εκτέλεση), τα **κωδικοποιημένα και άλλα δεδομένα που σχετίζονται με τη Function θα αποθηκευτούν σε έναν λογαριασμό Storage**. Από προεπιλογή, η διαδικτυακή κονσόλα θα δημιουργήσει έναν νέο ανά λειτουργία για να αποθηκεύσει τον κώδικα. Επιπλέον, τροποποιώντας τον κώδικα μέσα στο bucket (στα διάφορα φορμά που μπορεί να αποθηκευτεί), ο **κώδικας της εφαρμογής θα τροποποιηθεί στον νέο και θα εκτελείται** την επόμενη φορά που θα κληθεί η Function. > [!CAUTION] -> Αυτό είναι πολύ ενδιαφέρον από την προοπτική ενός επιτιθέμενου καθώς η **πρόσβαση εγγραφής σε αυτό το bucket** θα επιτρέψει σε έναν επιτιθέμενο να **συμβιβάσει τον κώδικα και να κλιμακώσει τα προνόμια** στις διαχειριζόμενες ταυτότητες μέσα στην Function App. +> Αυτό είναι πολύ ενδιαφέρον από την προοπτική ενός επιτιθέμενου καθώς η **write access πάνω σε αυτό το bucket** θα επιτρέψει σε έναν επιτιθέμενο να **συμβιβάσει τον κώδικα και να κλιμακώσει τα προνόμια** στις διαχειριζόμενες ταυτότητες μέσα στην Function App. > > Περισσότερα σχετικά με αυτό στην **ενότητα κλιμάκωσης προνομίων**. Είναι επίσης δυνατό να βρείτε τα **master και functions keys** αποθηκευμένα στον λογαριασμό storage στο κοντέινερ **`azure-webjobs-secrets`** μέσα στον φάκελο **``** στα αρχεία JSON που μπορείτε να βρείτε μέσα. -Σημειώστε ότι οι Functions επιτρέπουν επίσης την αποθήκευση του κώδικα σε μια απομακρυσμένη τοποθεσία απλά υποδεικνύοντας το URL της. +Σημειώστε ότι οι Functions επιτρέπουν επίσης την αποθήκευση του κώδικα σε μια απομακρυσμένη τοποθεσία απλά υποδεικνύοντας το URL σε αυτήν. ### Networking Χρησιμοποιώντας έναν HTTP trigger: -- Είναι δυνατό να δώσετε **πρόσβαση σε μια λειτουργία από όλο το Διαδίκτυο** χωρίς να απαιτείται καμία πιστοποίηση ή να δώσετε πρόσβαση με βάση το IAM. Αν και είναι επίσης δυνατό να περιορίσετε αυτή την πρόσβαση. +- Είναι δυνατό να δώσετε **πρόσβαση σε μια λειτουργία από όλο το Διαδίκτυο** χωρίς να απαιτείται καμία αυθεντικοποίηση ή να δώσετε πρόσβαση με βάση το IAM. Αν και είναι επίσης δυνατό να περιορίσετε αυτήν την πρόσβαση. - Είναι επίσης δυνατό να **δώσετε ή να περιορίσετε την πρόσβαση** σε μια Function App από **ένα εσωτερικό δίκτυο (VPC)**. > [!CAUTION] @@ -44,7 +44,7 @@ ### **Function App Settings & Environment Variables** -Είναι δυνατό να ρυθμίσετε μεταβλητές περιβάλλοντος μέσα σε μια εφαρμογή, οι οποίες μπορεί να περιέχουν ευαίσθητες πληροφορίες. Επιπλέον, από προεπιλογή οι env μεταβλητές **`AzureWebJobsStorage`** και **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (μεταξύ άλλων) δημιουργούνται. Αυτές είναι ιδιαίτερα ενδιαφέρουσες γιατί **περιέχουν το κλειδί λογαριασμού για τον έλεγχο με ΠΛΗΡΗ δικαιώματα του λογαριασμού storage που περιέχει τα δεδομένα της εφαρμογής**. Αυτές οι ρυθμίσεις είναι επίσης απαραίτητες για την εκτέλεση του κώδικα από τον Λογαριασμό Storage. +Είναι δυνατό να ρυθμίσετε μεταβλητές περιβάλλοντος μέσα σε μια εφαρμογή, οι οποίες μπορεί να περιέχουν ευαίσθητες πληροφορίες. Επιπλέον, από προεπιλογή οι env μεταβλητές **`AzureWebJobsStorage`** και **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (μεταξύ άλλων) δημιουργούνται. Αυτές είναι ιδιαίτερα ενδιαφέρουσες γιατί **περιέχουν το κλειδί λογαριασμού για τον έλεγχο με ΠΛΗΡΗ δικαιώματα τον λογαριασμό storage που περιέχει τα δεδομένα της εφαρμογής**. Αυτές οι ρυθμίσεις είναι επίσης απαραίτητες για την εκτέλεση του κώδικα από τον λογαριασμό Storage. Αυτές οι env μεταβλητές ή παράμετροι ρύθμισης ελέγχουν επίσης πώς η Function εκτελεί τον κώδικα, για παράδειγμα αν **`WEBSITE_RUN_FROM_PACKAGE`** υπάρχει, θα υποδεικνύει το URL όπου βρίσκεται ο κώδικας της εφαρμογής. @@ -52,7 +52,7 @@ Μέσα στο linux sandbox ο πηγαίος κώδικας βρίσκεται στο **`/home/site/wwwroot`** στο αρχείο **`function_app.py`** (αν χρησιμοποιείται python) ο χρήστης που εκτελεί τον κώδικα είναι **`app`** (χωρίς δικαιώματα sudo). -Σε μια **Windows** function που χρησιμοποιεί NodeJS, ο κώδικας βρισκόταν στο **`C:\home\site\wwwroot\HttpTrigger1\index.js`**, το όνομα χρήστη ήταν **`mawsFnPlaceholder8_f_v4_node_20_x86`** και ήταν μέρος των **groups**: `Mandatory Label\High Mandatory Level Label`, `Everyone`, `BUILTIN\Users`, `NT AUTHORITY\INTERACTIVE`, `CONSOLE LOGON`, `NT AUTHORITY\Authenticated Users`, `NT AUTHORITY\This Organization`, `BUILTIN\IIS_IUSRS`, `LOCAL`, `10-30-4-99\Dwas Site Users`. +Σε μια **Windows** function που χρησιμοποιεί NodeJS ο κώδικας βρισκόταν στο **`C:\home\site\wwwroot\HttpTrigger1\index.js`**, το όνομα χρήστη ήταν **`mawsFnPlaceholder8_f_v4_node_20_x86`** και ήταν μέρος των **groups**: `Mandatory Label\High Mandatory Level Label`, `Everyone`, `BUILTIN\Users`, `NT AUTHORITY\INTERACTIVE`, `CONSOLE LOGON`, `NT AUTHORITY\Authenticated Users`, `NT AUTHORITY\This Organization`, `BUILTIN\IIS_IUSRS`, `LOCAL`, `10-30-4-99\Dwas Site Users`. ### **Managed Identities & Metadata** @@ -61,22 +61,22 @@ Η **system assigned** θα είναι μια διαχειριζόμενη ταυτότητα που **μόνο η λειτουργία** που έχει ανατεθεί θα μπορεί να χρησιμοποιήσει, ενώ οι **user assigned** διαχειριζόμενες ταυτότητες είναι διαχειριζόμενες ταυτότητες που **οποιαδήποτε άλλη υπηρεσία Azure θα μπορεί να χρησιμοποιήσει**. > [!NOTE] -> Ακριβώς όπως στις [**VMs**](vms/index.html), οι Functions μπορούν να έχουν **1 system assigned** διαχειριζόμενη ταυτότητα και **πολλές user assigned**, επομένως είναι πάντα σημαντικό να προσπαθείτε να βρείτε όλες αυτές αν συμβιβάσετε τη λειτουργία γιατί μπορεί να μπορείτε να κλιμακώσετε προνόμια σε πολλές διαχειριζόμενες ταυτότητες από μόνο μία Function. +> Ακριβώς όπως στις [**VMs**](vms/index.html), οι Functions μπορούν να έχουν **1 system assigned** διαχειριζόμενη ταυτότητα και **πολλές user assigned**, επομένως είναι πάντα σημαντικό να προσπαθείτε να βρείτε όλες αυτές αν συμβιβάσετε τη λειτουργία γιατί μπορεί να είστε σε θέση να κλιμακώσετε τα προνόμια σε πολλές διαχειριζόμενες ταυτότητες από μόνο μία Function. > -> Αν δεν χρησιμοποιείται μια διαχειριζόμενη ταυτότητα συστήματος αλλά μία ή περισσότερες διαχειριζόμενες ταυτότητες χρηστών είναι συνδεδεμένες σε μια λειτουργία, από προεπιλογή δεν θα μπορείτε να αποκτήσετε κανένα token. +> Αν δεν χρησιμοποιείται καμία διαχειριζόμενη ταυτότητα συστήματος αλλά μία ή περισσότερες διαχειριζόμενες ταυτότητες χρηστών είναι συνδεδεμένες σε μια λειτουργία, από προεπιλογή δεν θα μπορείτε να αποκτήσετε κανένα token. -Είναι δυνατό να χρησιμοποιήσετε τα [**PEASS scripts**](https://github.com/peass-ng/PEASS-ng) για να αποκτήσετε tokens από την προεπιλεγμένη διαχειριζόμενη ταυτότητα από το endpoint μεταδεδομένων. Ή μπορείτε να τα αποκτήσετε **χειροκίνητα** όπως εξηγείται σε: +Είναι δυνατό να χρησιμοποιήσετε τα [**PEASS scripts**](https://github.com/peass-ng/PEASS-ng) για να αποκτήσετε tokens από την προεπιλεγμένη διαχειριζόμενη ταυτότητα από το metadata endpoint. Ή μπορείτε να τα αποκτήσετε **χειροκίνητα** όπως εξηγείται σε: {% embed url="https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#azure-vm" %} -Σημειώστε ότι πρέπει να βρείτε έναν τρόπο να **ελέγξετε όλες τις Managed Identities που έχει συνδεδεμένες μια λειτουργία** καθώς αν δεν το υποδείξετε, το endpoint μεταδεδομένων θα **χρησιμοποιεί μόνο την προεπιλεγμένη** (ελέγξτε τον προηγούμενο σύνδεσμο για περισσότερες πληροφορίες). +Σημειώστε ότι πρέπει να βρείτε έναν τρόπο να **ελέγξετε όλες τις Managed Identities που έχει συνδεδεμένες μια λειτουργία** καθώς αν δεν το υποδείξετε, το metadata endpoint θα **χρησιμοποιεί μόνο την προεπιλεγμένη** (ελέγξτε τον προηγούμενο σύνδεσμο για περισσότερες πληροφορίες). ## Access Keys > [!NOTE] -> Σημειώστε ότι δεν υπάρχουν δικαιώματα RBAC για να δώσετε πρόσβαση σε χρήστες να καλέσουν τις λειτουργίες. Η **κλήση της λειτουργίας εξαρτάται από τον ενεργοποιητή** που επιλέχθηκε κατά τη δημιουργία της και αν επιλέχθηκε ένας HTTP Trigger, μπορεί να χρειαστεί να χρησιμοποιήσετε ένα **access key**. +> Σημειώστε ότι δεν υπάρχουν δικαιώματα RBAC για να δώσετε πρόσβαση σε χρήστες για να καλέσουν τις λειτουργίες. Η **κλήση της λειτουργίας εξαρτάται από τον ενεργοποιητή** που επιλέχθηκε κατά τη δημιουργία της και αν επιλέχθηκε ένας HTTP Trigger, μπορεί να χρειαστεί να χρησιμοποιήσετε ένα **access key**. -Όταν δημιουργείτε ένα endpoint μέσα σε μια λειτουργία χρησιμοποιώντας έναν **HTTP trigger**, είναι δυνατό να υποδείξετε το **access key authorization level** που απαιτείται για να ενεργοποιήσετε τη λειτουργία. Διατίθενται τρεις επιλογές: +Όταν δημιουργείτε ένα endpoint μέσα σε μια λειτουργία χρησιμοποιώντας έναν **HTTP trigger** είναι δυνατό να υποδείξετε το **access key authorization level** που απαιτείται για να ενεργοποιήσετε τη λειτουργία. Διατίθενται τρεις επιλογές: - **ANONYMOUS**: **Όλοι** μπορούν να έχουν πρόσβαση στη λειτουργία μέσω του URL. - **FUNCTION**: Το endpoint είναι προσβάσιμο μόνο σε χρήστες που χρησιμοποιούν ένα **function, host ή master key**. @@ -84,8 +84,8 @@ **Τύποι κλειδιών:** -- **Function Keys:** Τα κλειδιά λειτουργίας μπορεί να είναι είτε προεπιλεγμένα είτε καθορισμένα από τον χρήστη και έχουν σχεδιαστεί για να παρέχουν πρόσβαση αποκλειστικά σε **συγκεκριμένα endpoints λειτουργίας** εντός μιας Function App επιτρέποντας μια πιο λεπτομερή πρόσβαση στα endpoints. -- **Host Keys:** Τα κλειδιά host, τα οποία μπορεί επίσης να είναι προεπιλεγμένα ή καθορισμένα από τον χρήστη, παρέχουν πρόσβαση σε **όλα τα endpoints λειτουργίας εντός μιας Function App με επίπεδο πρόσβασης FUNCTION**. +- **Function Keys:** Τα κλειδιά λειτουργίας μπορεί να είναι είτε προεπιλεγμένα είτε καθορισμένα από τον χρήστη και έχουν σχεδιαστεί για να παρέχουν πρόσβαση αποκλειστικά σε **συγκεκριμένα endpoints λειτουργίας** μέσα σε μια Function App επιτρέποντας μια πιο λεπτομερή πρόσβαση στα endpoints. +- **Host Keys:** Τα κλειδιά host, τα οποία μπορεί επίσης να είναι προεπιλεγμένα ή καθορισμένα από τον χρήστη, παρέχουν πρόσβαση σε **όλα τα endpoints λειτουργίας μέσα σε μια Function App με επίπεδο πρόσβασης FUNCTION**. - **Master Key:** Το master key (`_master`) χρησιμεύει ως διοικητικό κλειδί που προσφέρει αυξημένα δικαιώματα, συμπεριλαμβανομένης της πρόσβασης σε όλα τα endpoints λειτουργίας (συμπεριλαμβανομένου του επιπέδου πρόσβασης ADMIN). Αυτό το **κλειδί δεν μπορεί να ανακληθεί.** - **System Keys:** Τα συστήματα κλειδιά είναι **διαχειριζόμενα από συγκεκριμένες επεκτάσεις** και απαιτούνται για την πρόσβαση σε webhook endpoints που χρησιμοποιούνται από εσωτερικά συστατικά. Παραδείγματα περιλαμβάνουν τον Event Grid trigger και τις Durable Functions, οι οποίες χρησιμοποιούν συστήματα κλειδιά για να αλληλεπιδρούν με τις αντίστοιχες APIs τους με ασφάλεια. @@ -96,7 +96,7 @@ ### Basic Authentication -Ακριβώς όπως στις App Services, οι Functions υποστηρίζουν επίσης βασική πιστοποίηση για σύνδεση στο **SCM** και **FTP** για την ανάπτυξη κώδικα χρησιμοποιώντας ένα **όνομα χρήστη και κωδικό πρόσβασης σε ένα URL** που παρέχεται από την Azure. Περισσότερες πληροφορίες σχετικά με αυτό σε: +Ακριβώς όπως στις App Services, οι Functions υποστηρίζουν επίσης βασική αυθεντικοποίηση για σύνδεση στο **SCM** και **FTP** για την ανάπτυξη κώδικα χρησιμοποιώντας ένα **όνομα χρήστη και κωδικό πρόσβασης σε ένα URL** που παρέχεται από το Azure. Περισσότερες πληροφορίες σχετικά με αυτό σε: {{#ref}} az-app-services.md @@ -104,7 +104,7 @@ az-app-services.md ### Github Based Deployments -Όταν μια λειτουργία δημιουργείται από ένα Github repo, η διαδικτυακή κονσόλα Azure επιτρέπει να **δημιουργηθεί αυτόματα ένα Github Workflow σε ένα συγκεκριμένο αποθετήριο** έτσι ώστε κάθε φορά που αυτό το αποθετήριο ενημερώνεται, ο κώδικας της λειτουργίας ενημερώνεται. Στην πραγματικότητα, το Github Action yaml για μια python function φαίνεται έτσι: +Όταν μια λειτουργία δημιουργείται από ένα Github repo, η διαδικτυακή κονσόλα Azure επιτρέπει να **δημιουργηθεί αυτόματα ένα Github Workflow σε ένα συγκεκριμένο αποθετήριο** έτσι ώστε κάθε φορά που αυτό το αποθετήριο ενημερώνεται, ο κώδικας της λειτουργίας να ενημερώνεται. Στην πραγματικότητα, το Github Action yaml για μια python function φαίνεται έτσι:
diff --git a/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md b/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md index b7fc63940..2823cd1d8 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md +++ b/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md @@ -11,7 +11,7 @@ Logic Apps παρέχει έναν οπτικό σχεδιαστή για τη ### Examples - **Automating Data Pipelines**: Logic Apps μπορεί να αυτοματοποιήσει **διαδικασίες μεταφοράς και μετασχηματισμού δεδομένων** σε συνδυασμό με το Azure Data Factory. Αυτό είναι χρήσιμο για τη δημιουργία κλιμακούμενων και αξιόπιστων ροών δεδομένων που μεταφέρουν και μετασχηματίζουν δεδομένα μεταξύ διαφόρων αποθηκευτικών χώρων δεδομένων, όπως το Azure SQL Database και το Azure Blob Storage, βοηθώντας σε αναλύσεις και επιχειρηματική ευφυΐα. -- **Integrating with Azure Functions**: Logic Apps μπορεί να λειτουργήσει παράλληλα με το Azure Functions για την ανάπτυξη **πολύπλοκων, εκδηλωτικών εφαρμογών που κλιμακώνονται κατά ανάγκη** και ενσωματώνονται απρόσκοπτα με άλλες υπηρεσίες Azure. Ένα παράδειγμα χρήσης είναι η χρήση μιας Logic App για την ενεργοποίηση μιας Azure Function ως απάντηση σε ορισμένα γεγονότα, όπως οι αλλαγές σε έναν λογαριασμό Azure Storage, επιτρέποντας τη δυναμική επεξεργασία δεδομένων. +- **Integrating with Azure Functions**: Logic Apps μπορεί να λειτουργήσει παράλληλα με το Azure Functions για την ανάπτυξη **πολύπλοκων, εκδηλωτικών εφαρμογών που κλιμακώνονται κατά ανάγκη** και ενσωματώνονται απρόσκοπτα με άλλες υπηρεσίες Azure. Ένα παράδειγμα χρήσης είναι η χρήση μιας Logic App για την ενεργοποίηση μιας Azure Function ως απάντηση σε ορισμένα γεγονότα, όπως αλλαγές σε έναν λογαριασμό Azure Storage, επιτρέποντας τη δυναμική επεξεργασία δεδομένων. ### Visualize a LogicAPP @@ -39,9 +39,9 @@ curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e9741 * **Κανονικό** - **Σχέδιο Υπηρεσίας Ροής Εργασίας**: αφιερωμένοι υπολογιστικοί πόροι με ενσωμάτωση VNET για δικτύωση και χρεώσεις ανά περίπτωση σχεδίου υπηρεσίας ροής εργασίας. Είναι κατάλληλο για πιο απαιτητικά φορτία εργασίας που απαιτούν μεγαλύτερο έλεγχο. - **Περιβάλλον Υπηρεσίας Εφαρμογών V3** αφιερωμένοι υπολογιστικοί πόροι με πλήρη απομόνωση και κλιμάκωση. Επίσης, ενσωματώνεται με VNET για δικτύωση και χρησιμοποιεί ένα μοντέλο τιμολόγησης βασισμένο σε περιπτώσεις Υπηρεσίας Εφαρμογών εντός του περιβάλλοντος. Αυτό είναι ιδανικό για εφαρμογές επιπέδου επιχείρησης που χρειάζονται υψηλή απομόνωση. -- **Υβριδικό** σχεδιασμένο για τοπική επεξεργασία και υποστήριξη πολλών σύννεφων. Επιτρέπει τη διαχείριση υπολογιστικών πόρων από τον πελάτη με τοπική πρόσβαση στο δίκτυο και χρησιμοποιεί το Kubernetes Event-Driven Autoscaling (KEDA). +- **Υβριδικό** σχεδιασμένο για τοπική επεξεργασία και υποστήριξη πολλών σύννεφων. Επιτρέπει διαχειριζόμενους από τον πελάτη υπολογιστικούς πόρους με τοπική πρόσβαση δικτύου και χρησιμοποιεί το Kubernetes Event-Driven Autoscaling (KEDA). -### Αριθμητική +### Αρίθμηση {% tabs %} {% tab title="az cli" %} @@ -146,13 +146,13 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "" -Name " [!TIP] > Σημειώστε ότι είναι δυνατόν να ρυθμίσετε την εφαρμογή έτσι ώστε **οι αλλαγές στο αρχείο `staticwebapp.config.json`** να μην γίνονται αποδεκτές. Σε αυτή την περίπτωση, μπορεί να μην είναι αρκετό να αλλάξετε απλώς το αρχείο από το Github, αλλά και να **αλλάξετε τη ρύθμιση στην εφαρμογή**. @@ -170,7 +170,7 @@ Get-AzStaticWebAppUserProvidedFunctionApp -ResourceGroupName 1. Fork το αποθετήριο https://github.com/staticwebdev/react-basic/generate στον λογαριασμό σας στο GitHub και ονομάστε το `my-first-static-web-app` 2. Στο Azure portal δημιουργήστε μια Static Web App ρυθμίζοντας την πρόσβαση στο Github και επιλέγοντας το προηγουμένως forked νέο αποθετήριο -3. Δημιουργήστε το, περιμένετε μερικά λεπτά και ελέγξτε τη νέα σας σελίδα! +3. Δημιουργήστε το και περιμένετε μερικά λεπτά, και ελέγξτε τη νέα σας σελίδα! ## Ανάβαση Δικαιωμάτων και Μετά την Εκμετάλλευση diff --git a/src/pentesting-cloud/azure-security/az-services/az-table-storage.md b/src/pentesting-cloud/azure-security/az-services/az-table-storage.md index 1ff8ac906..e116e2c75 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-table-storage.md +++ b/src/pentesting-cloud/azure-security/az-services/az-table-storage.md @@ -6,7 +6,7 @@ **Azure Table Storage** είναι μια NoSQL αποθήκη κλειδιού-τιμής σχεδιασμένη για την αποθήκευση μεγάλων όγκων δομημένων, μη σχεσιακών δεδομένων. Προσφέρει υψηλή διαθεσιμότητα, χαμηλή καθυστέρηση και κλιμακωσιμότητα για την αποτελεσματική διαχείριση μεγάλων συνόλων δεδομένων. Τα δεδομένα οργανώνονται σε πίνακες, με κάθε οντότητα να προσδιορίζεται από ένα partition key και ένα row key, επιτρέποντας γρήγορες αναζητήσεις. Υποστηρίζει χαρακτηριστικά όπως κρυπτογράφηση σε κατάσταση ηρεμίας, έλεγχο πρόσβασης βάσει ρόλου και υπογραφές κοινής πρόσβασης για ασφαλή, διαχειριζόμενη αποθήκευση κατάλληλη για ένα ευρύ φάσμα εφαρμογών. -Δεν **υπάρχει ενσωματωμένος μηχανισμός δημιουργίας αντιγράφων ασφαλείας** για την αποθήκευση πίνακα. +Δεν **υπάρχει ενσωματωMechanism backup** για την αποθήκευση πίνακα. ### Keys