Azure Pentesting
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.
Basic Information
Μάθετε τα βασικά του Azure και του Entra ID στην παρακάτω σελίδα:
Azure Pentester/Red Team Methodology
Για να ελέγξετε ένα περιβάλλον AZURE, είναι πολύ σημαντικό να γνωρίζετε: ποιες υπηρεσίες χρησιμοποιούνται, τι εκτίθεται, ποιος έχει πρόσβαση σε τι και πώς συνδέονται οι εσωτερικές υπηρεσίες Azure με τις εξωτερικές υπηρεσίες.
Από την οπτική γωνία της Red Team, το πρώτο βήμα για να συμβιβαστεί ένα περιβάλλον Azure είναι να καταφέρετε να αποκτήσετε κάποιο foothold.
External enum & Initial Access
Το πρώτο βήμα είναι φυσικά να καταγράψετε πληροφορίες σχετικά με τον ενοικιαστή που επιτίθεστε και να προσπαθήσετε να αποκτήσετε ένα foothold.
Με βάση το όνομα τομέα, είναι δυνατόν να γνωρίζετε αν η εταιρεία χρησιμοποιεί Azure, να αποκτήσετε το tenant ID, να βρείτε άλλους έγκυρους τομείς στον ίδιο ενοικιαστή (αν υπάρχουν) και να αποκτήσετε σχετικές πληροφορίες όπως αν είναι ενεργοποιημένο το SSO, ρυθμίσεις email, έγκυρες διευθύνσεις email χρηστών…
Ελέγξτε την παρακάτω σελίδα για να μάθετε πώς να εκτελέσετε την εξωτερική καταγραφή:
Az - Unauthenticated Enum & Initial Entry
Με αυτές τις πληροφορίες, οι πιο κοινές μέθοδοι για να προσπαθήσετε να αποκτήσετε ένα foothold είναι:
- OSINT: Ελέγξτε για leaks στο Github ή σε οποιαδήποτε άλλη ανοιχτή πηγή που θα μπορούσε να περιέχει credentials ή ενδιαφέρουσες πληροφορίες.
- Επαναχρησιμοποίηση κωδικών πρόσβασης, leaks ή password spraying
- Αγορά credentials από έναν υπάλληλο
- Κοινό Phishing (credentials ή Oauth App)
- Phishing με Κωδικό Συσκευής
- παραβιασμένα τρίτα μέρη
- Ευπάθειες σε εφαρμογές που φιλοξενούνται στο Azure
- Server Side Request Forgery με πρόσβαση στο endpoint μεταδεδομένων
- Καταλήψεις υποτομέων όπως στο https://godiego.co/posts/STO-Azure/
- Άλλες κακορυθμίσεις υπηρεσιών Azure
- Αν κάποιο laptop προγραμματιστή έχει παραβιαστεί (WinPEAS και LinPEAS μπορούν να βρουν αυτές τις πληροφορίες):
- Μέσα στο
<HOME>/.Azure azureProfile.jsonπεριέχει πληροφορίες σχετικά με τους συνδεδεμένους χρήστες από το παρελθόνclouds.configπεριέχει πληροφορίες σχετικά με τις συνδρομέςservice_principal_entries.jsonπεριέχει credentials εφαρμογών (tenant id, clients και secret). Μόνο σε Linux & macOSmsal_token_cache.jsonπεριέχει access tokens και refresh tokens. Μόνο σε Linux & macOSservice_principal_entries.binκαι msal_token_cache.bin χρησιμοποιούνται σε Windows και είναι κρυπτογραφημένα με DPAPImsal_http_cache.binείναι μια cache HTTP αιτημάτων- Φορτώστε το:
with open("msal_http_cache.bin", 'rb') as f: pickle.load(f) AzureRmContext.jsonπεριέχει πληροφορίες σχετικά με προηγούμενες συνδέσεις χρησιμοποιώντας Az PowerShell (αλλά όχι credentials)- Μέσα στο
C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*υπάρχουν αρκετά αρχεία.binμε access tokens, ID tokens και πληροφορίες λογαριασμού κρυπτογραφημένα με το DPAPI των χρηστών. - Είναι δυνατόν να βρείτε περισσότερα access tokens στα αρχεία
.tbresμέσα στοC:\Users\<username>\AppData\Local\Microsoft\TokenBroken\Cache\που περιέχουν ένα base64 κρυπτογραφημένο με DPAPI με access tokens. - Σε Linux και macOS μπορείτε να αποκτήσετε access tokens, refresh tokens και id tokens από το Az PowerShell (αν χρησιμοποιείται) εκτελώντας
pwsh -Command "Save-AzContext -Path /tmp/az-context.json" - Σε Windows αυτό απλά δημιουργεί id tokens.
- Είναι δυνατόν να δείτε αν χρησιμοποιήθηκε το Az PowerShell σε Linux και macOS ελέγχοντας αν υπάρχει το
$HOME/.local/share/.IdentityService/(αν και τα περιεχόμενα αρχεία είναι κενά και άχρηστα)
Βρείτε άλλες κακορυθμίσεις υπηρεσιών Azure που μπορούν να οδηγήσουν σε ένα foothold στην παρακάτω σελίδα:
Az - Unauthenticated Enum & Initial Entry
Note
Θυμηθείτε ότι συνήθως το θορυβώδες μέρος της καταγραφής είναι η σύνδεση, όχι η ίδια η καταγραφή.
Azure & Entra ID tooling
Τα παρακάτω εργαλεία θα είναι πολύ χρήσιμα για να καταγράψετε αργά (για να αποφύγετε την ανίχνευση) ή αυτόματα (για να εξοικονομήσετε χρόνο) τόσο τους ενοικιαστές Entra ID όσο και τα περιβάλλοντα Azure:
Bypass Access Policies
.png)
Σε περιπτώσεις όπου έχετε κάποια έγκυρα credentials αλλά δεν μπορείτε να συνδεθείτε, αυτές είναι μερικές κοινές προστασίες που θα μπορούσαν να είναι σε εφαρμογή:
- IP whitelisting – Πρέπει να παραβιάσετε μια έγκυρη IP
- Geo restrictions – Βρείτε πού ζει ο χρήστης ή πού βρίσκονται τα γραφεία της εταιρείας και αποκτήστε μια IP από την ίδια πόλη (ή τουλάχιστον από τη χώρα)
- Browser – Ίσως μόνο ένας browser από ορισμένα OS (Windows, Linux, Mac, Android, iOS) είναι επιτρεπτός. Ανακαλύψτε ποιο OS χρησιμοποιεί το θύμα/εταιρεία.
- Μπορείτε επίσης να προσπαθήσετε να παραβιάσετε τα credentials του Service Principal καθώς συνήθως είναι λιγότερο περιορισμένα και η σύνδεσή τους ελέγχεται λιγότερο.
Αφού το παρακάμψετε, μπορεί να είστε σε θέση να επιστρέψετε στην αρχική σας ρύθμιση και θα έχετε ακόμα πρόσβαση.
Ελέγξτε:
Az - Conditional Access Policies & MFA Bypass
Whoami
Caution
Μάθετε πώς να εγκαταστήσετε το az cli, το AzureAD και το Az PowerShell στην ενότητα Az - Entra ID.
Ένα από τα πρώτα πράγματα που πρέπει να γνωρίζετε είναι ποιος είστε (σε ποιο περιβάλλον βρίσκεστε):
az account list
az account tenant list # Current tenant info
az account subscription list # Current subscription info
az ad signed-in-user show # Current signed-in user
az ad signed-in-user list-owned-objects # Get owned objects by current user
az account management-group list #Not allowed by default
Entra ID Enumeration & Privesc
Από προεπιλογή, οποιοσδήποτε χρήστης θα πρέπει να έχει αρκετά δικαιώματα για να καταγράψει πράγματα όπως χρήστες, ομάδες, ρόλους, υπηρεσιακούς κύριους… (ελέγξτε default AzureAD permissions).
Μπορείτε να βρείτε εδώ έναν οδηγό:
Az - Entra ID (AzureAD) & Azure IAM
Ελέγξτε τα Post-Exploitation tools για να βρείτε εργαλεία που να επιτρέπουν την κλιμάκωση δικαιωμάτων στο Entra ID όπως το AzureHound:
Automated Post Exploitation Tools
Azure Enumeration
Μόλις γνωρίζετε ποιος είστε, μπορείτε να αρχίσετε να καταγράφετε τις υπηρεσίες Azure στις οποίες έχετε πρόσβαση.
Πρέπει να αρχίσετε να ανακαλύπτετε τα δικαιώματα που έχετε πάνω στους πόρους. Για αυτό:
- Βρείτε τον πόρο στον οποίο έχετε κάποια πρόσβαση:
Tip
Αυτό δεν απαιτεί κανένα ειδικό δικαίωμα.
Η εντολή Az PowerShell Get-AzResource σας επιτρέπει να γνωρίζετε τους πόρους που έχει ο τρέχων χρήστης σας ορατούς.
Επιπλέον, μπορείτε να αποκτήσετε τις ίδιες πληροφορίες στην ιστοσελίδα πηγαίνοντας στο https://portal.azure.com/#view/HubsExtension/BrowseAll ή αναζητώντας “Όλοι οι πόροι” ή εκτελώντας:
az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"
- Βρείτε τις άδειες που έχετε πάνω στους πόρους που μπορείτε να δείτε:
Tip
Αυτό δεν απαιτεί καμία ειδική άδεια.
Μιλώντας στην API https://management.azure.com/{resource_id}/providers/Microsoft.Authorization/permissions?api-version=2022-04-01 μπορείτε να λάβετε τις άδειες που έχετε πάνω στον καθορισμένο πόρο στο resource_id.
Επομένως, ελέγχοντας κάθε έναν από τους πόρους που έχετε πρόσβαση, μπορείτε να λάβετε τις άδειες που έχετε πάνω τους.
Warning
Μπορείτε να αυτοματοποιήσετε αυτή την καταμέτρηση χρησιμοποιώντας το εργαλείο Find_My_Az_Management_Permissions.
Καταμέτρηση αδειών με **`Microsoft.Authorization/roleAssignments/read`**
Tip
Σημειώστε ότι χρειάζεστε την άδεια
Microsoft.Authorization/roleAssignments/readγια να εκτελέσετε αυτή την ενέργεια.
- Με αρκετές άδειες, ο ρόλος
Get-AzRoleAssignmentμπορεί να χρησιμοποιηθεί για να καταμετρήσει όλους τους ρόλους στην συνδρομή ή την άδεια πάνω σε έναν συγκεκριμένο πόρο υποδεικνύοντάς τον όπως:
Get-AzRoleAssignment -Scope /subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4
Είναι επίσης δυνατό να αποκτήσετε αυτές τις πληροφορίες εκτελώντας:
az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01" | jq ".value"
όπως σε:
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01" | jq ".value"
- Μια άλλη επιλογή είναι να λάβετε τους ρόλους που είναι συνδεδεμένοι σε εσάς στο azure. Αυτό απαιτεί επίσης την άδεια
Microsoft.Authorization/roleAssignments/read:
az role assignment list --assignee "<email>" --all --output table
Ή εκτελώντας το παρακάτω (Εάν τα αποτελέσματα είναι κενά, μπορεί να είναι επειδή δεν έχετε την άδεια να τα αποκτήσετε):
az rest --method GET --uri 'https://management.azure.com/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId eq '<user-id>'
- Βρείτε τις λεπτομερείς άδειες των ρόλων που είναι συνδεδεμένοι σε εσάς:
Στη συνέχεια, για να αποκτήσετε την λεπτομερή άδεια μπορείτε να εκτελέσετε (Get-AzRoleDefinition -Id "<RoleDefinitionId>").Actions.
Ή καλέστε την API απευθείας με
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<RoleDefinitionId>?api-version=2022-04-01" | jq ".properties"
Στην παρακάτω ενότητα μπορείτε να βρείτε πληροφορίες σχετικά με τις πιο κοινές υπηρεσίες Azure και πώς να τις καταγράψετε:
Κλιμάκωση Δικαιωμάτων, Μετά-Εκμετάλλευση & Διαρκής Παρουσία
Μόλις κατανοήσετε πώς είναι δομημένο το περιβάλλον Azure και ποιες υπηρεσίες χρησιμοποιούνται, μπορείτε να αρχίσετε να αναζητάτε τρόπους για να κλιμακώσετε δικαιώματα, να μετακινηθείτε οριζόντια, να εκτελέσετε άλλες επιθέσεις μετά-εκμετάλλευσης και να διατηρήσετε διαρκή παρουσία.
Στην παρακάτω ενότητα μπορείτε να βρείτε πληροφορίες σχετικά με το πώς να κλιμακώσετε δικαιώματα στις πιο κοινές υπηρεσίες Azure:
Στην επόμενη μπορείτε να βρείτε πληροφορίες σχετικά με το πώς να εκτελέσετε επιθέσεις μετά-εκμετάλλευσης στις πιο κοινές υπηρεσίες Azure:
Στην επόμενη μπορείτε να βρείτε πληροφορίες σχετικά με το πώς να διατηρήσετε διαρκή παρουσία στις πιο κοινές υπηρεσίες Azure:
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

