From f0657f054ad1c2e47fa267e2fa5d96548e7238d7 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 26 Jan 2025 10:44:55 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/README.md', 'src/pentes --- src/pentesting-cloud/azure-security/README.md | 48 ++++++++++++++----- .../az-privilege-escalation/README.md | 1 - .../az-storage-unauth.md | 41 ++++++++++++++++ 3 files changed, 78 insertions(+), 12 deletions(-) delete mode 100644 src/pentesting-cloud/azure-security/az-privilege-escalation/README.md create mode 100644 src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md diff --git a/src/pentesting-cloud/azure-security/README.md b/src/pentesting-cloud/azure-security/README.md index 0365dac2a..a4be62220 100644 --- a/src/pentesting-cloud/azure-security/README.md +++ b/src/pentesting-cloud/azure-security/README.md @@ -20,7 +20,7 @@ az-basic-information/ Το πρώτο βήμα είναι φυσικά να καταγράψετε πληροφορίες σχετικά με τον ενοικιαστή που επιτίθεστε και να προσπαθήσετε να αποκτήσετε ένα foothold. -Με βάση το όνομα τομέα, είναι δυνατόν να γνωρίζετε **αν η εταιρεία χρησιμοποιεί Azure**, να αποκτήσετε το **tenant ID**, να αποκτήσετε άλλους **έγκυρους τομείς** στον ίδιο ενοικιαστή (αν υπάρχουν περισσότεροι) και να αποκτήσετε **σχετικές πληροφορίες** όπως αν είναι ενεργοποιημένο το SSO, ρυθμίσεις email, έγκυρες διευθύνσεις email χρηστών... +Με βάση το όνομα τομέα, είναι δυνατόν να γνωρίζετε **αν η εταιρεία χρησιμοποιεί Azure**, να αποκτήσετε το **tenant ID**, να βρείτε άλλους **έγκυρους τομείς** στον ίδιο ενοικιαστή (αν υπάρχουν περισσότεροι) και να αποκτήσετε **σχετικές πληροφορίες** όπως αν είναι ενεργοποιημένο το SSO, ρυθμίσεις email, έγκυρες διευθύνσεις email χρηστών... Ελέγξτε την παρακάτω σελίδα για να μάθετε πώς να εκτελέσετε την **εξωτερική καταγραφή**: @@ -36,13 +36,14 @@ az-unauthenticated-enum-and-initial-entry/ - [Phishing με Κωδικό Συσκευής](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md) - 3rd parties **breached** - Ευπάθειες σε εφαρμογές που φιλοξενούνται στο Azure -- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) με πρόσβαση στο metadata endpoint -- **Subdomain takeovers** όπως στο [https://godiego.co/posts/STO-Azure/](https://godiego.co/posts/STO-Azure/) +- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) με πρόσβαση στο endpoint μεταδεδομένων +- **Αναλήψεις υποτομέων** όπως στο [https://godiego.co/posts/STO-Azure/](https://godiego.co/posts/STO-Azure/) +- **Άλλες κακοδιαχειρίσεις υπηρεσιών Azure** - Αν κάποιο laptop προγραμματιστή έχει συμβιβαστεί ([WinPEAS και LinPEAS](https://github.com/peass-ng/PEASS-ng) μπορούν να βρουν αυτές τις πληροφορίες): - Μέσα στο **`/.Azure`** - **`azureProfile.json`** περιέχει πληροφορίες σχετικά με τους συνδεδεμένους χρήστες από το παρελθόν - **`clouds.config` περιέχει** πληροφορίες σχετικά με τις συνδρομές -- **`service_principal_entries.json`** περιέχει τα credentials των εφαρμογών (tenant id, clients και secret). Μόνο σε Linux & macOS +- **`service_principal_entries.json`** περιέχει credentials εφαρμογών (tenant id, clients και secret). Μόνο σε Linux & macOS - **`msal_token_cache.json`** περιέχει access tokens και refresh tokens. Μόνο σε Linux & macOS - **`service_principal_entries.bin`** και msal_token_cache.bin χρησιμοποιούνται σε Windows και είναι κρυπτογραφημένα με DPAPI - **`msal_http_cache.bin`** είναι μια cache HTTP αιτημάτων @@ -54,6 +55,12 @@ az-unauthenticated-enum-and-initial-entry/ - Σε Windows αυτό απλώς δημιουργεί id tokens. - Είναι δυνατόν να δείτε αν χρησιμοποιήθηκε το Az PowerShell σε Linux και macOS ελέγχοντας αν υπάρχει το `$HOME/.local/share/.IdentityService/` (αν και τα περιεχόμενα αρχεία είναι κενά και άχρηστα) +Βρείτε **άλλες κακοδιαχειρίσεις υπηρεσιών Azure** που μπορούν να οδηγήσουν σε ένα foothold στην παρακάτω σελίδα: + +{{#ref}} +az-unauthenticated-enum-and-initial-entry/ +{{#endref}} + > [!NOTE] > Θυμηθείτε ότι συνήθως το **θορυβώδες** μέρος της καταγραφής είναι η **σύνδεση**, όχι η ίδια η καταγραφή. @@ -69,14 +76,14 @@ az-enumeration-tools.md
-Σε περιπτώσεις όπου έχετε κάποια έγκυρα credentials αλλά δεν μπορείτε να συνδεθείτε, αυτές είναι μερικές κοινές προστασίες που θα μπορούσαν να υπάρχουν: +Σε περιπτώσεις όπου έχετε κάποια έγκυρα credentials αλλά δεν μπορείτε να συνδεθείτε, αυτές είναι μερικές κοινές προστασίες που θα μπορούσαν να είναι σε εφαρμογή: - **IP whitelisting** -- Πρέπει να συμβιβάσετε μια έγκυρη IP - **Geo restrictions** -- Βρείτε πού ζει ο χρήστης ή πού βρίσκονται τα γραφεία της εταιρείας και αποκτήστε μια IP από την ίδια πόλη (ή τουλάχιστον από τη χώρα) -- **Browser** -- Ίσως μόνο ένας browser από ορισμένα OS (Windows, Linux, Mac, Android, iOS) να επιτρέπεται. Ανακαλύψτε ποιο OS χρησιμοποιεί το θύμα/εταιρεία. +- **Browser** -- Ίσως επιτρέπεται μόνο ένας browser από συγκεκριμένο OS (Windows, Linux, Mac, Android, iOS). Ανακαλύψτε ποιο OS χρησιμοποιεί το θύμα/εταιρεία. - Μπορείτε επίσης να προσπαθήσετε να **συμβιβάσετε τα credentials του Service Principal** καθώς συνήθως είναι λιγότερο περιορισμένα και η σύνδεσή τους ελέγχεται λιγότερο. -Αφού παρακάμψετε αυτό, μπορεί να είστε σε θέση να επιστρέψετε στην αρχική σας ρύθμιση και θα έχετε ακόμα πρόσβαση. +Αφού το παρακάμψετε, μπορεί να είστε σε θέση να επιστρέψετε στην αρχική σας ρύθμιση και θα έχετε ακόμα πρόσβαση. ### Whoami @@ -148,19 +155,38 @@ az-enumeration-tools.md#automated-post-exploitation-tools Μόλις γνωρίζετε ποιος είστε, μπορείτε να αρχίσετε να εντοπίζετε τις **υπηρεσίες Azure στις οποίες έχετε πρόσβαση**. -Η εντολή Az PowerShell **`Get-AzResource`** σας επιτρέπει να **γνωρίζετε τους πόρους που έχει ο τρέχων χρήστης ορατούς**. +Πρέπει να αρχίσετε να ανακαλύπτετε τα **δικαιώματα που έχετε** πάνω στους πόρους. Για αυτό: + +1. **Βρείτε τον πόρο στον οποίο έχετε κάποια πρόσβαση**: + +Η εντολή Az PowerShell **`Get-AzResource`** σας επιτρέπει να **γνωρίζετε τους πόρους στους οποίους έχει ο τρέχων χρήστης ορατότητα**. Επιπλέον, μπορείτε να αποκτήσετε τις ίδιες πληροφορίες στην **ιστοσελίδα** πηγαίνοντας στο [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) ή αναζητώντας "Όλοι οι πόροι" ή εκτελώντας: `az rest --method GET --url "https://management.azure.com/subscriptions//resources?api-version=2021-04-01"` -Επιπλέον, με αρκετά δικαιώματα, ο ρόλος **`Get-AzRoleAssignment`** μπορεί να χρησιμοποιηθεί για να **εντοπίσει όλους τους ρόλους** στην υπογραφή ή την άδεια σε έναν συγκεκριμένο πόρο υποδεικνύοντάς τον όπως σε: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`** +2. **Βρείτε τα δικαιώματα που έχετε πάνω στους πόρους στους οποίους έχετε πρόσβαση και βρείτε τους ρόλους που σας έχουν ανατεθεί**: -Στην επόμενη ενότητα μπορείτε να βρείτε πληροφορίες σχετικά με τις πιο κοινές υπηρεσίες Azure και πώς να τις εντοπίσετε: +Σημειώστε ότι χρειάζεστε το δικαίωμα **`Microsoft.Authorization/roleAssignments/read`** για να εκτελέσετε αυτή την ενέργεια. + +Επιπλέον, με αρκετά δικαιώματα, ο ρόλος **`Get-AzRoleAssignment`** μπορεί να χρησιμοποιηθεί για να **εντοπίσετε όλους τους ρόλους** στην υπογραφή ή τα δικαιώματα πάνω σε έναν συγκεκριμένο πόρο υποδεικνύοντάς τον όπως σε: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`**. + +Είναι επίσης δυνατό να αποκτήσετε αυτές τις πληροφορίες εκτελώντας **`az rest --method GET --uri "https://management.azure.com//providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`** όπως σε: + +- **`az rest --method GET --uri "https://management.azure.com//subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`** + +3. **Βρείτε τα λεπτομερή δικαιώματα των ρόλων που σας έχουν ανατεθεί**: + +Στη συνέχεια, για να αποκτήσετε τα λεπτομερή δικαιώματα μπορείτε να εκτελέσετε **`(Get-AzRoleDefinition -Id "").Actions`**. + +Ή να καλέσετε την API απευθείας με **`az rest --method GET --uri "https://management.azure.com//subscriptions//providers/Microsoft.Authorization/roleDefinitions/?api-version=2020-08-01-preview" | jq ".properties"`**. + + +Στην επόμενη ενότητα μπορείτε να βρείτε **πληροφορίες σχετικά με τις πιο κοινές υπηρεσίες Azure και πώς να τις εντοπίσετε**: {{#ref}} az-services/ {{#endref}} -### Κλιμάκωση Δικαιωμάτων, Post-Exploitation & Διατήρηση στην Azure Services +### Κλιμάκωση Δικαιωμάτων, Post-Exploitation & Διατήρηση στην Υπηρεσία Azure Μόλις γνωρίζετε πώς είναι δομημένο το περιβάλλον Azure και ποιες υπηρεσίες χρησιμοποιούνται, μπορείτε να αρχίσετε να αναζητάτε τρόπους για να **κλιμακώσετε δικαιώματα, να μετακινηθείτε οριζόντια, να εκτελέσετε άλλες επιθέσεις post-exploitation και να διατηρήσετε την επιμονή**. diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/README.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/README.md deleted file mode 100644 index 880048578..000000000 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/README.md +++ /dev/null @@ -1 +0,0 @@ -# Az - Ανύψωση Δικαιωμάτων diff --git a/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md b/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md new file mode 100644 index 000000000..bfebb3e50 --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md @@ -0,0 +1,41 @@ +# Az - Storage Unauth + +{{#include ../../../banners/hacktricks-training.md}} + +## Storage Unauth + +Για περισσότερες πληροφορίες σχετικά με την αποθήκευση, ελέγξτε: + +{{#ref}} +../az-services/az-storage.md +{{#endref}} + +### Open Storage + +Μπορείτε να ανακαλύψετε ανοιχτή αποθήκευση με ένα εργαλείο όπως το [**InvokeEnumerateAzureBlobs.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/Misc/Invoke-EnumerateAzureBlobs.ps1) το οποίο θα χρησιμοποιήσει το αρχείο **`Microburst/Misc/permutations.txt`** για να δημιουργήσει παραλλαγές (πολύ απλές) για να προσπαθήσει να **βρει ανοιχτούς λογαριασμούς αποθήκευσης**. +```bash +Import-Module .\MicroBurst\MicroBurst.psm1 +Invoke-EnumerateAzureBlobs -Base corp +[...] +https://corpcommon.blob.core.windows.net/secrets?restype=container&comp=list +[...] + +# Access https://corpcommon.blob.core.windows.net/secrets?restype=container&comp=list +# Check: ssh_info.json +# Access then https://corpcommon.blob.core.windows.net/secrets/ssh_info.json +``` +Μπορείτε επίσης να χρησιμοποιήσετε μια μέθοδο από [**MicroBust**](https://github.com/NetSPI/MicroBurst) για αυτόν τον σκοπό. Αυτή η λειτουργία θα αναζητήσει το βασικό όνομα τομέα (και μερικές παραλλαγές) σε αρκετούς **azure domains** (συμπεριλαμβανομένων των τομέων αποθήκευσης): +```bash +Import-Module .\MicroBurst\MicroBurst.psm1 -Verbose +Invoke-EnumerateAzureSubDomains -Base corp -Verbose +``` +### SAS URLs + +Ένα _**shared access signature**_ (SAS) URL είναι ένα URL που **παρέχει πρόσβαση** σε συγκεκριμένο μέρος ενός λογαριασμού Storage (μπορεί να είναι ένα πλήρες container, ένα αρχείο...) με ορισμένες συγκεκριμένες άδειες (ανάγνωση, εγγραφή...) πάνω στους πόρους. Αν βρείτε ένα που έχει διαρρεύσει, θα μπορούσατε να έχετε πρόσβαση σε ευαίσθητες πληροφορίες, μοιάζουν έτσι (αυτό είναι για πρόσβαση σε ένα container, αν απλώς χορηγούσε πρόσβαση σε ένα αρχείο, η διαδρομή του URL θα περιλάμβανε επίσης αυτό το αρχείο): + +`https://.blob.core.windows.net/newcontainer?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D` + +Χρησιμοποιήστε [**Storage Explorer**](https://azure.microsoft.com/en-us/features/storage-explorer/) για να αποκτήσετε πρόσβαση στα δεδομένα + + +{{#include ../../../banners/hacktricks-training.md}}