Azure Pentesting
Last updated
Last updated
Για να ελέγξετε ένα περιβάλλον AZURE, είναι πολύ σημαντικό να γνωρίζετε: ποιες υπηρεσίες χρησιμοποιούνται, τι εκτίθεται, ποιος έχει πρόσβαση σε τι και πώς συνδέονται οι εσωτερικές υπηρεσίες Azure και εξωτερικές υπηρεσίες.
Από την άποψη της Ομάδας Red Team, το πρώτο βήμα για την επιτυχία ενός περιβάλλοντος Azure είναι να καταφέρετε να αποκτήσετε κάποια διαπιστευτήρια για το Azure AD. Εδώ έχετε μερικές ιδέες για το πώς να το κάνετε:
Διαρροές στο github (ή παρόμοιες) - OSINT
Κοινωνική Μηχανική
Επαναχρησιποίηση κωδικού πρόσβασης (διαρροές κωδικών πρόσβασης)
Ευπάθειες σε εφαρμογές που φιλοξενούνται στο Azure
Server Side Request Forgery με πρόσβαση στο σημείο αναφοράς μεταδεδομένων
Ανάγνωση τοπικού αρχείου
/home/USERNAME/.azure
C:\Users\USERNAME\.azure
Το αρχείο accessTokens.json
στο az cli
πριν από την έκδοση 2.30 - Jan2022 - αποθηκεύει διαπιστευτήρια πρόσβασης σε καθαρό κείμενο
Το αρχείο azureProfile.json
περιέχει πληροφορίες για τον συνδεδεμένο χρήστη.
az logout
αφαιρεί το διαπιστευτήριο.
Οι παλαιότερες εκδόσεις του Az PowerShell
αποθηκεύουν διαπιστευτήρια πρόσβασης σε καθαρό κείμενο στο TokenCache.dat
. Αποθηκεύει επίσης το ServicePrincipalSecret σε καθαρό κείμενο στο AzureRmContext.json
. Το cmdlet Save-AzContext
μπορεί να χρησιμοποιηθεί για να αποθηκεύσει διαπιστευτήρια.
Χρησιμοποιήστε το Disconnect-AzAccount
για να τα αφαιρέσετε.
Παραβιάσεις από τρίτους
Εσωτερικός Υπάλληλος
Φιςινγκ (διαπιστευτήρια ή Oauth App)
Ακόμα κι αν δεν έχετε παραβιάσει κανέναν χρήστη μέσα στο Azure tenant που επιτίθεστε, μπορείτε να συγκεντρώσετε κάποιες πληροφορίες από αυτό:
Αφού καταφέρετε να αποκτήσετε διαπιστευτήρια, πρέπει να γνωρίζετε σε ποιον ανήκουν αυτά τα διαπιστευτήρια και τι έχουν πρόσβαση, οπότε πρέπει να πραγματοποιήσετε μερικές βασικές απαρίθμηση:
Θυμηθείτε ότι η πιο θορυβώδης μέρος της απαρίθμησης είναι η σύνδεση, όχι η απαρίθμηση ίδια.
Εάν βρήκατε ένα SSRF σε μια μηχανή μέσα στο Azure, ελέγξτε αυτήν τη σελίδα για κόλπα:
{% embed url="https://book.hacktricks.xyz/pent
Για να εκτελέσετε τις εντολές PowerShell για την ασφάλεια του Azure, πρέπει να εγκαταστήσετε το Azure PowerShell module. Μπορείτε να το κάνετε αυτό με την εντολή Install-Module -Name Az -AllowClobber -Scope CurrentUser
στο PowerShell.
Για να συνδεθείτε στο Azure, χρησιμοποιήστε την εντολή Connect-AzAccount
. Θα σας ζητηθεί να συνδεθείτε με τα διαπιστευτήριά σας.
Μετά τη σύνδεση, μπορείτε να εκτελέσετε εντολές για να ελέγξετε την ασφάλεια του Azure. Ορισμένες χρήσιμες εντολές περιλαμβάνουν:
Get-AzSubscription
για να εμφανίσετε τις συνδρομές Azure που είστε εγγεγραμμένοι.
Get-AzResourceGroup
για να εμφανίσετε τις ομάδες πόρων Azure.
Get-AzVM
για να εμφανίσετε τις εικονικές μηχανές Azure.
Get-AzNetworkSecurityGroup
για να εμφανίσετε τις ομάδες ασφαλείας δικτύου Azure.
Μπορείτε επίσης να χρησιμοποιήσετε το PowerShell για να δημιουργήσετε και να διαμορφώσετε αντικείμενα ασφαλείας στο Azure. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε την εντολή New-AzNetworkSecurityGroup
για να δημιουργήσετε μια νέα ομάδα ασφαλείας δικτύου.
Για περισσότερες πληροφορίες και εντολές PowerShell για την ασφάλεια του Azure, μπορείτε να επισκεφθείτε την επίσημη τεκμηρίωση της Microsoft για το Azure PowerShell.
Ένα από τα πιο σημαντικά εργαλεία για την απαρίθμηση του Azure είναι το Get-AzResource
από το Az PowerShell, καθώς σας επιτρέπει να γνωρίζετε τους πόρους που ο τρέχων χρήστης έχει ορατότητα.
Μπορείτε να λάβετε τις ίδιες πληροφορίες στη διαδικτυακή κονσόλα μεταβαίνοντας στη διεύθυνση https://portal.azure.com/#view/HubsExtension/BrowseAll ή αναζητώντας "Όλοι οι πόροι"
Από προεπιλογή, οποιοσδήποτε χρήστης θα πρέπει να έχει αρκετές άδειες για να απαριθμήσει πράγματα όπως χρήστες, ομάδες, ρόλους, υπηρεσίες αρχής... (ελέγξτε τις προεπιλεγμένες άδειες AzureAD). Μπορείτε να βρείτε εδώ έναν οδηγό:
Τώρα που έχετε κάποιες πληροφορίες για τα διαπιστευτήριά σας (και αν είστε μια κόκκινη ομάδα ελπίζω να μην έχετε ανιχνευθεί). Είναι ώρα να καταλάβετε ποιες υπηρεσίες χρησιμοποιούνται στο περιβάλλον. Στην επόμενη ενότητα μπορείτε να ελέγξετε μερικούς τρόπους για να απαριθμήσετε μερικές κοινές υπηρεσίες.
Μια υπηρεσία Azure μπορεί να έχει ένα Σύστημα Ταυτότητας (της ίδιας της υπηρεσίας) ή να χρησιμοποιεί μια Διαχειριζόμενη Ταυτότητα Που Έχει Ανατεθεί σε Χρήστη. Αυτή η Ταυτότητα μπορεί να έχει Πολιτική Πρόσβασης για παράδειγμα, σε ένα KeyVault για να διαβάσει μυστικά. Αυτές οι Πολιτικές Πρόσβασης πρέπει να είναι περιορισμένες (αρχή της ελάχιστης προνομιοδότησης), αλλά μπορεί να έχουν περισσότερες άδειες από ό,τι απαιτείται. Συνήθως, μια Υπηρεσία Εφαρμογής θα χρησιμοποιεί το KeyVault για να ανακτήσει μυστικά και πιστοποιητικά.
Επομένως, είναι χρήσιμο να εξερευνήσετε αυτές τις ταυτότητες.
Κονσόλα Kudu για να συνδεθείτε στο 'container' της υπηρεσίας App Service.
Χρησιμοποιήστε το portal.azure.com και επιλέξτε το shell, ή χρησιμοποιήστε το shell.azure.com, για ένα bash ή powershell. Το 'δίσκος' αυτού του shell αποθηκεύεται ως αρχείο εικόνας σε ένα λογαριασμό αποθήκευσης.
Το Azure DevOps είναι ξεχωριστό από το Azure. Διαθέτει αποθετήρια, αγωγούς (yaml ή release), πίνακες, wiki και άλλα. Ομάδες μεταβλητών χρησιμοποιούνται για να αποθηκεύουν τιμές μεταβλητών και μυστικά.
Το AzureHound είναι ένα εργαλείο ανοικτού κώδικα που αναπτύχθηκε από την κοινότητα του BloodHoundAD και χρησιμοποιείται για την εντοπισμό αδυναμιών ασφαλείας στο Azure. Αυτό το εργαλείο επιτρέπει στους ερευνητές ασφαλείας να εξερευνήσουν την υποδομή του Azure και να εντοπίσουν πιθανές ευπάθειες που μπορεί να εκμεταλλευτούν. Μπορεί να χρησιμοποιηθεί για την ανίχνευση διαρροών δεδομένων, την εύρεση αδυναμιών στην αυθεντικοποίηση και την εξερεύνηση των δικαιωμάτων πρόσβασης στο Azure. Το AzureHound είναι ένα ισχυρό εργαλείο για την αξιολόγηση της ασφάλειας του Azure και την εντοπισμό πιθανών ευπαθειών.
Το MicroBurst είναι ένα εργαλείο που χρησιμοποιείται για την εκτέλεση επιθέσεων εκμετάλλευσης στο Azure. Αυτό το εργαλείο εκμεταλλεύεται την αδυναμία του Azure να αντιμετωπίσει τις αιτήσεις μεγάλου μεγέθους, γνωστές ως "MicroBursts". Αυτές οι αιτήσεις μπορούν να προκαλέσουν αποτυχία των υπηρεσιών και να προκαλέσουν διακοπή της λειτουργίας του Azure.
Το MicroBurst είναι ένα ισχυρό εργαλείο που μπορεί να χρησιμοποιηθεί για την εκτέλεση επιθέσεων απόρριψης υπηρεσίας (DoS) και την προκάλεση αποτυχίας του Azure. Αυτό μπορεί να οδηγήσει σε απώλεια δεδομένων και παραβίαση της ασφάλειας του συστήματος.
Για να χρησιμοποιήσετε το MicroBurst, ακολουθήστε τις οδηγίες που παρέχονται στο επίσημο αποθετήριο του GitHub. Πριν χρησιμοποιήσετε αυτό το εργαλείο, θα πρέπει να έχετε την άδεια και την εξουσιοδότηση να εκτελέσετε επιθέσεις στο Azure. Χρησιμοποιήστε το MicroBurst με προσοχή και μόνο για νόμιμους σκοπούς.
Το PowerZure είναι ένα εργαλείο που χρησιμοποιείται για την εκμετάλλευση ευπάθειών ασφαλείας στο Azure. Το εργαλείο αυτό είναι γραμμένο σε PowerShell και παρέχει δυνατότητες για την εκτέλεση επιθέσεων, την ανάκτηση πληροφοριών και την εξόρυξη δεδομένων από το Azure περιβάλλον.
Με το PowerZure μπορείτε να εκτελέσετε επιθέσεις όπως την εκμετάλλευση ευπάθειών σε εικονικές μηχανές, την ανάκτηση διαπιστευτηρίων, την εξόρυξη δεδομένων από αποθηκευτικούς χώρους και την εκτέλεση κακόβουλου κώδικα.
Για να χρησιμοποιήσετε το PowerZure, πρέπει να εγκαταστήσετε το PowerShell και να κατεβάσετε τον κώδικα του εργαλείου από το αποθετήριο του στο GitHub. Στη συνέχεια, μπορείτε να εκτελέσετε το εργαλείο από το PowerShell και να ξεκινήσετε να εκμεταλλεύεστε ευπάθειες ασφαλείας στο Azure.