Az - Storage Accounts & Blobs
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Οι λογαριασμοί Azure Storage είναι θεμελιώδεις υπηρεσίες στο Microsoft Azure που παρέχουν κλιμακωτή, ασφαλή και εξαιρετικά διαθέσιμη cloud αποθήκευση για διάφορους τύπους δεδομένων, συμπεριλαμβανομένων των blobs (binary large objects), αρχείων, ουρών και πινάκων. Λειτουργούν ως δοχεία που ομαδοποιούν αυτές τις διαφορετικές υπηρεσίες αποθήκευσης κάτω από ένα ενιαίο namespace για εύκολη διαχείριση.
Κύριες επιλογές διαμόρφωσης:
Κάθε λογαριασμός αποθήκευσης πρέπει να έχει ένα μοναδικό όνομα σε όλους τους Azure.
Κάθε λογαριασμός αποθήκευσης αναπτύσσεται σε μια περιοχή ή σε μια επεκταμένη ζώνη Azure.
Είναι δυνατή η επιλογή της premium έκδοσης του λογαριασμού αποθήκευσης για καλύτερη απόδοση.
Είναι δυνατή η επιλογή μεταξύ 4 τύπων πλεονασμού για προστασία από αποτυχίες rack, δίσκου και κέντρου δεδομένων.
Επιλογές διαμόρφωσης ασφαλείας:
Απαιτεί ασφαλή μεταφορά για τις λειτουργίες REST API: Απαιτεί TLS σε οποιαδήποτε επικοινωνία με την αποθήκευση.
Επιτρέπει την ενεργοποίηση ανώνυμης πρόσβασης σε μεμονωμένα δοχεία: Αν όχι, δεν θα είναι δυνατή η ενεργοποίηση ανώνυμης πρόσβασης στο μέλλον.
Ενεργοποίηση πρόσβασης με κλειδί λογαριασμού αποθήκευσης: Αν όχι, η πρόσβαση με Shared Keys θα απαγορευτεί.
Ελάχιστη έκδοση TLS.
Επιτρεπόμενη έκταση για λειτουργίες αντιγραφής: Επιτρέπεται από οποιονδήποτε λογαριασμό αποθήκευσης, από οποιονδήποτε λογαριασμό αποθήκευσης από τον ίδιο ενοικιαστή Entra ή από λογαριασμό αποθήκευσης με ιδιωτικά endpoints στο ίδιο εικονικό δίκτυο.
Επιλογές Blob Storage:
Επιτρέπεται η διασυνοριακή αναπαραγωγή.
Επίπεδο πρόσβασης: Hot (συχνά προσβάσιμα δεδομένα), Cool και Cold (σπάνια προσβάσιμα δεδομένα).
Επιλογές δικτύωσης:
Πρόσβαση δικτύου:
Επιτρέπεται από όλα τα δίκτυα.
Επιτρέπεται από επιλεγμένα εικονικά δίκτυα και διευθύνσεις IP.
Απενεργοποίηση δημόσιας πρόσβασης και χρήση ιδιωτικής πρόσβασης.
Ιδιωτικά endpoints: Επιτρέπει μια ιδιωτική σύνδεση στον λογαριασμό αποθήκευσης από ένα εικονικό δίκτυο.
Επιλογές προστασίας δεδομένων:
Ανάκτηση σε συγκεκριμένη χρονική στιγμή για δοχεία: Επιτρέπει την αποκατάσταση δοχείων σε προηγούμενη κατάσταση.
Απαιτεί ενεργοποίηση της εκδοχής, της ροής αλλαγών και της ήπιας διαγραφής blob.
Ενεργοποίηση ήπιας διαγραφής για blobs: Ενεργοποιεί μια περίοδο διατήρησης σε ημέρες για διαγραμμένα blobs (ακόμη και αν έχουν αντικατασταθεί).
Ενεργοποίηση ήπιας διαγραφής για δοχεία: Ενεργοποιεί μια περίοδο διατήρησης σε ημέρες για διαγραμμένα δοχεία.
Ενεργοποίηση ήπιας διαγραφής για κοινές χρήσεις αρχείων: Ενεργοποιεί μια περίοδο διατήρησης σε ημέρες για διαγραμμένες κοινές χρήσεις αρχείων.
Ενεργοποίηση εκδοχής για blobs: Διατηρεί προηγούμενες εκδόσεις των blobs σας.
Ενεργοποίηση ροής αλλαγών blob: Διατηρεί αρχεία καταγραφής δημιουργίας, τροποποίησης και διαγραφής αλλαγών στα blobs.
Ενεργοποίηση υποστήριξης αμεταβλητότητας σε επίπεδο εκδοχής: Σας επιτρέπει να ορίσετε πολιτική διατήρησης βάσει χρόνου σε επίπεδο λογαριασμού που θα ισχύει για όλες τις εκδόσεις blob.
Η υποστήριξη αμεταβλητότητας σε επίπεδο εκδοχής και η ανάκτηση σε συγκεκριμένη χρονική στιγμή για δοχεία δεν μπορούν να ενεργοποιηθούν ταυτόχρονα.
Επιλογές διαμόρφωσης κρυπτογράφησης:
Τύπος κρυπτογράφησης: Είναι δυνατή η χρήση κλειδιών που διαχειρίζεται η Microsoft (MMK) ή κλειδιών που διαχειρίζεται ο πελάτης (CMK).
Ενεργοποίηση κρυπτογράφησης υποδομής: Επιτρέπει την διπλή κρυπτογράφηση των δεδομένων "για περισσότερη ασφάλεια".
Blob storage
https://<storage-account>.blob.core.windows.net
https://<stg-acc>.blob.core.windows.net/<container-name>?restype=container&comp=list
Data Lake Storage
https://<storage-account>.dfs.core.windows.net
Azure Files
https://<storage-account>.file.core.windows.net
Queue storage
https://<storage-account>.queue.core.windows.net
Table storage
https://<storage-account>.table.core.windows.net
Αν η "Επιτρέπεται η δημόσια πρόσβαση Blob" είναι ενεργοποιημένη (απενεργοποιημένη από προεπιλογή), κατά τη δημιουργία ενός δοχείου είναι δυνατή η:
Παροχή δημόσιας πρόσβασης για ανάγνωση blobs (πρέπει να γνωρίζετε το όνομα).
Λίστα των blobs του δοχείου και ανάγνωση τους.
Να είναι πλήρως ιδιωτικό.
Αν βρείτε οποιαδήποτε αποθήκευση στην οποία μπορείτε να συνδεθείτε, μπορείτε να χρησιμοποιήσετε το εργαλείο Microsoft Azure Storage Explorer για να το κάνετε.
Είναι δυνατή η χρήση των αρχών Entra ID με ρόλους RBAC για πρόσβαση στους λογαριασμούς αποθήκευσης και είναι ο προτεινόμενος τρόπος.
Οι λογαριασμοί αποθήκευσης έχουν κλειδιά πρόσβασης που μπορούν να χρησιμοποιηθούν για την πρόσβαση σε αυτούς. Αυτό παρέχει πλήρη πρόσβαση στον λογαριασμό αποθήκευσης.
Είναι δυνατή η δημιουργία Shared Keys υπογεγραμμένων με τα κλειδιά πρόσβασης για την εξουσιοδότηση πρόσβασης σε ορισμένους πόρους μέσω μιας υπογεγραμμένης διεύθυνσης URL.
Note that the CanonicalizedResource
part represents the storage services resource (URI). And if any part in the URL is encoded, it should also be encoded inside the CanonicalizedResource
.
This is used by default by az
cli to authenticate requests. To make it use the Entra ID principal credentials indicate the param --auth-mode login
.
Είναι δυνατή η δημιουργία ενός shared key για blob, queue και file services υπογράφοντας τις παρακάτω πληροφορίες:
Είναι δυνατόν να δημιουργήσετε ένα κοινό κλειδί για τις υπηρεσίες πίνακα υπογράφοντας τις παρακάτω πληροφορίες:
Είναι δυνατόν να δημιουργηθεί ένα lite shared key για τις υπηρεσίες blob, queue και file υπογράφοντας τις παρακάτω πληροφορίες:
Είναι δυνατόν να δημιουργηθεί ένα lite shared key για υπηρεσίες πίνακα υπογράφοντας τις παρακάτω πληροφορίες:
Τότε, για να χρησιμοποιήσετε το κλειδί, μπορεί να γίνει στην κεφαλίδα Authorization ακολουθώντας τη σύνταξη:
Οι Υπογραφές Κοινής Πρόσβασης (SAS) είναι ασφαλή, χρονικά περιορισμένα URLs που παρέχουν συγκεκριμένα δικαιώματα πρόσβασης σε πόρους σε έναν λογαριασμό Azure Storage χωρίς να εκθέτουν τα κλειδιά πρόσβασης του λογαριασμού. Ενώ τα κλειδιά πρόσβασης παρέχουν πλήρη διαχειριστική πρόσβαση σε όλους τους πόρους, η SAS επιτρέπει λεπτομερή έλεγχο καθορίζοντας δικαιώματα (όπως ανάγνωση ή εγγραφή) και ορίζοντας χρόνο λήξης.
SAS εξουσιοδότησης χρήστη: Δημιουργείται από ένα Entra ID principal το οποίο θα υπογράψει τη SAS και θα μεταβιβάσει τα δικαιώματα από τον χρήστη στη SAS. Μπορεί να χρησιμοποιηθεί μόνο με blob και data lake storage (docs). Είναι δυνατή η ανάκληση όλων των παραγόμενων SAS εξουσιοδότησης χρήστη.
Ακόμα και αν είναι δυνατή η δημιουργία μιας SAS εξουσιοδότησης με "περισσότερα" δικαιώματα από αυτά που έχει ο χρήστης. Ωστόσο, αν το principal δεν τα έχει, δεν θα λειτουργήσει (χωρίς privesc).
Service SAS: Υπογράφεται χρησιμοποιώντας ένα από τα κλειδιά πρόσβασης του λογαριασμού αποθήκευσης. Μπορεί να χρησιμοποιηθεί για να παραχωρήσει πρόσβαση σε συγκεκριμένους πόρους σε μια μόνο υπηρεσία αποθήκευσης. Αν το κλειδί ανανεωθεί, η SAS θα σταματήσει να λειτουργεί.
Account SAS: Υπογράφεται επίσης με ένα από τα κλειδιά πρόσβασης του λογαριασμού αποθήκευσης. Παρέχει πρόσβαση σε πόρους σε όλες τις υπηρεσίες ενός λογαριασμού αποθήκευσης (Blob, Queue, Table, File) και μπορεί να περιλαμβάνει λειτουργίες σε επίπεδο υπηρεσίας.
Ένα URL SAS υπογεγραμμένο με ένα κλειδί πρόσβασης φαίνεται έτσι:
https://<container_name>.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
Ένα URL SAS υπογεγραμμένο ως εξουσιοδότηση χρήστη φαίνεται έτσι:
https://<container_name>.blob.core.windows.net/testing-container?sp=r&st=2024-11-22T15:07:40Z&se=2024-11-22T23:07:40Z&skoid=d77c71a1-96e7-483d-bd51-bd753aa66e62&sktid=fdd066e1-ee37-49bc-b08f-d0e152119b04&skt=2024-11-22T15:07:40Z&ske=2024-11-22T23:07:40Z&sks=b&skv=2022-11-02&spr=https&sv=2022-11-02&sr=c&sig=7s5dJyeE6klUNRulUj9TNL0tMj2K7mtxyRc97xbYDqs%3D
Σημειώστε μερικές http params:
Η παράμετρος se
υποδεικνύει την ημερομηνία λήξης της SAS
Η παράμετρος sp
υποδεικνύει τα δικαιώματα της SAS
Η sig
είναι η υπογραφή που επικυρώνει τη SAS
Κατά τη δημιουργία μιας SAS, είναι απαραίτητο να υποδειχθούν τα δικαιώματα που θα παρέχει. Ανάλογα με το αντικείμενο πάνω στο οποίο δημιουργείται η SAS, μπορεί να περιλαμβάνονται διαφορετικά δικαιώματα. Για παράδειγμα:
(a)dd, (c)reate, (d)elete, (e)xecute, (f)ilter_by_tags, (i)set_immutability_policy, (l)ist, (m)ove, (r)ead, (t)ag, (w)rite, (x)delete_previous_version, (y)permanent_delete
Η Azure Blob Storage υποστηρίζει τώρα το Πρωτόκολλο Μεταφοράς Αρχείων SSH (SFTP), επιτρέποντας ασφαλή μεταφορά και διαχείριση αρχείων απευθείας στην Blob Storage χωρίς να απαιτούνται προσαρμοσμένες λύσεις ή προϊόντα τρίτων.
Υποστήριξη Πρωτοκόλλου: Το SFTP λειτουργεί με λογαριασμούς Blob Storage που είναι διαμορφωμένοι με ιεραρχικό χώρο ονομάτων (HNS). Αυτό οργανώνει τα blobs σε καταλόγους και υποκαταλόγους για ευκολότερη πλοήγηση.
Ασφάλεια: Το SFTP χρησιμοποιεί τοπικές ταυτότητες χρηστών για την αυθεντικοποίηση και δεν ενσωματώνεται με RBAC ή ABAC. Κάθε τοπικός χρήστης μπορεί να αυθεντικοποιηθεί μέσω:
Κωδικών πρόσβασης που δημιουργούνται από την Azure
Δημόσιων-ιδιωτικών ζευγών κλειδιών SSH
Λεπτομερή Δικαιώματα: Δικαιώματα όπως Ανάγνωση, Εγγραφή, Διαγραφή και Λίστα μπορούν να ανατεθούν σε τοπικούς χρήστες για έως 100 κοντέινερ.
Δικτυακές Σκέψεις: Οι συνδέσεις SFTP γίνονται μέσω της θύρας 22. Η Azure υποστηρίζει δικτυακές διαμορφώσεις όπως τείχη προστασίας, ιδιωτικά endpoints ή εικονικά δίκτυα για την ασφάλιση της κυκλοφορίας SFTP.
Ιεραρχικός Χώρος Ονομάτων: Το HNS πρέπει να είναι ενεργοποιημένο κατά τη δημιουργία του λογαριασμού αποθήκευσης.
Υποστηριζόμενη Κρυπτογράφηση: Απαιτείται η έγκριση κρυπτογραφικών αλγορίθμων από τον Κύκλο Ζωής Ανάπτυξης Ασφαλείας της Microsoft (SDL) (π.χ., rsa-sha2-256, ecdsa-sha2-nistp256).
Ρύθμιση SFTP:
Ενεργοποιήστε το SFTP στον λογαριασμό αποθήκευσης.
Δημιουργήστε τοπικές ταυτότητες χρηστών με κατάλληλα δικαιώματα.
Ρυθμίστε τους καταλόγους αρχικής τοποθεσίας για τους χρήστες για να ορίσετε την αρχική τους τοποθεσία εντός του κοντέινερ.
Ανάγνωση
r
Ανάγνωση περιεχομένου αρχείου.
Εγγραφή
w
Μεταφόρτωση αρχείων και δημιουργία καταλόγων.
Λίστα
l
Λίστα περιεχομένων καταλόγων.
Διαγραφή
d
Διαγραφή αρχείων ή καταλόγων.
Δημιουργία
c
Δημιουργία αρχείων ή καταλόγων.
Τροποποίηση Ιδιοκτησίας
o
Αλλαγή του κατόχου χρήστη ή ομάδας.
Τροποποίηση Δικαιωμάτων
p
Αλλαγή ACLs σε αρχεία ή καταλόγους.
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)