Az - Blob Storage

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Βασικές Πληροφορίες

Από τα έγγραφα: Το Azure Blob storage είναι η λύση αποθήκευσης αντικειμένων της Microsoft για τον υπολογιστικό νέφους. Το Blob storage είναι βελτιστοποιημένο για την αποθήκευση μεγάλων ποσοτήτων μη δομημένων δεδομένων. Τα μη δομημένα δεδομένα είναι δεδομένα που δεν συμμορφώνονται σε ένα συγκεκριμένο μοντέλο ή ορισμό δεδομένων, όπως κείμενο ή δυαδικά δεδομένα.

Το Blob storage προσφέρει τρεις τύπους πόρων:

  • Ο λογαριασμός αποθήκευσης (μοναδικό όνομα)

  • Ένα δοχείο στον λογαριασμό αποθήκευσης (φάκελος)

  • Ένα blob σε ένα δοχείο

Διάφοροι τύποι αποθήκευσης

Blob storage

https://<storage-account>.blob.core.windows.net https://<stg-acc>.blob.core.windows.net/<container-name>?restype=container&comp=list

Azure Data Lake Storage Gen2

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

Πρόσβαση στην Αποθήκευση

  • Χρησιμοποιήστε τους αρχέγονους Azure AD μέσω των υποστηριζόμενων RBAC ρόλων.

  • Κλειδιά πρόσβασης: Χρησιμοποιήστε τα κλειδιά πρόσβασης του λογαριασμού αποθήκευσης. Αυτό παρέχει πλήρη πρόσβαση στον λογαριασμό αποθήκευσης.

  • Κοινόχρηστη Υπογραφή Πρόσβασης (SAS): Περιορισμένη χρονική διάρκεια και συγκεκριμένα δικαιώματα.

  • Μπορείτε να δημιουργήσετε ένα URL SAS με ένα κλειδί πρόσβασης (πιο περίπλοκο να ανιχνευθεί).

  • Καθώς το SAS δημιουργείται από το κλειδί πρόσβασης, εάν ανανεωθεί το SAS σταματά να λειτουργεί.

Δημόσια Έκθεση

Εάν το "Allow Blob public access" είναι ενεργοποιημένο (απενεργοποιημένο από προεπιλογή), είναι δυνατόν:

  • Να δοθεί δημόσια πρόσβαση για ανάγνωση blobs (χρειάζεστε να γνωρίζετε το όνομα).

  • Να καταλογογραφηθούν τα blobs του δοχείου και να τα διαβαστούν.

Σύνδεση στην Αποθήκευση

Εάν βρείτε οποιαδήποτε αποθήκευση μπορείτε να συνδεθείτε χρησιμοποιώντας το εργαλείο Microsoft Azure Storage Explorer για να το κάνετε.

Σύνδεσμοι SAS

Από τα έγγραφα: Ένα κοινόχρηστο υπογεγραμμένο σύνδεσμο (SAS) παρέχει ασφαλή αναθέσιμη πρόσβαση σε πόρους στον λογαριασμό αποθήκευσής σας. Με ένα SAS, έχετε λεπτομερή έλεγχο επί του τρόπου πρόσβασης των δεδομένων σας από έναν πελάτη. Για παράδειγμα:

  • Ποιους πόρους μπορεί να αποκτήσει πρόσβαση ο πελάτης.

  • Ποια δικαιώματα έχουν για αυτούς τους πόρους.

  • Πόσο διάρκεια είναι έγκυρο το SAS.

Ένας σύνδεσμος 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

Χρησιμοποιήστε το Storage Explorer για να αποκτήσετε πρόσβαση στα δεδομένα ή την python:

#pip3 install azure-storage-blob
from azure.storage.blob import BlobServiceClient

# List containers
conn_str="<SAS URL>"
svc = BlobServiceClient.from_connection_string(conn_str=conn_str)
for c in svc.list_containers():
print(c['name']

# List blobs inside conteiner
container = svc.get_container_client(container="<container_name>")
for b in container.list_blobs():
print(b['name']

# Download file
blob = svc.get_blob_client(container="<container_name>",blob="<blob_name>")
with open("download.out","wb") as f:
f.write(blob.download_blob().readall())

Πιστοποίηση χρήστη με SAS

Μπορείτε να ασφαλίσετε ένα διαμοιραζόμενο υπογεγραμμένο διακριτικό πρόσβασης (SAS) για πρόσβαση σε έναν εμπορευματοκιβώτιο, έναν κατάλογο ή ένα blob χρησιμοποιώντας είτε τα διαπιστευτήρια του Azure Active Directory (Azure AD) είτε ένα κλειδί λογαριασμού. Για να δημιουργήσετε ένα διακριτικό πρόσβασης SAS με πιστοποίηση χρήστη, πρέπει πρώτα να ζητήσετε ένα κλειδί πιστοποίησης χρήστη, το οποίο στη συνέχεια χρησιμοποιείτε για να υπογράψετε το SAS.

Υποστηρίζεται ένα Διακριτικό Πρόσβασης SAS Πιστοποίησης Χρήστη (User Delegation SAS) τόσο στο Azure Blob Storage όσο και στο Azure Data Lake Storage Gen2. Ωστόσο, είναι σημαντικό να σημειωθεί ότι οι Αποθηκευμένες Πολιτικές Πρόσβασης δεν είναι συμβατές με ένα Διακριτικό Πρόσβασης SAS Πιστοποίησης Χρήστη.

Σημειώστε ότι το διακριτικό πρόσβασης SAS πιστοποίησης χρήστη είναι ασφαλισμένο με τα διαπιστευτήρια του Azure AD αντί για τα κλειδιά του λογαριασμού αποθήκευσης. Αυτό εμποδίζει τους πελάτες/εφαρμογές από το να αποθηκεύουν/ανακτούν τα κλειδιά αποθήκευσης για να δημιουργήσουν SAS.

SAS υπηρεσίας

Ένα SAS υπηρεσίας ασφαλίζεται με το κλειδί λογαριασμού αποθήκευσης. Ένα SAS υπηρεσίας αναθέτει πρόσβαση σε έναν πόρο μόνο από τις υπηρεσίες αποθήκευσης Azure: αποθήκη Blob, αποθήκη Ουράς, αποθήκη Πίνακα ή αρχεία Azure. Το URI για ένα SAS σε επίπεδο υπηρεσίας αποτελείται από το URI προς τον πόρο για τον οποίο το SAS θα αναθέσει πρόσβαση, ακολουθούμενο από το διακριτικό πρόσβασης SAS.

Για να χρησιμοποιήσετε τα διαπιστευτήρια του Azure Active Directory (Azure AD) για να ασφαλίσετε ένα SAS για ένα εμπορευματοκιβώτιο ή ένα blob, χρησιμοποιήστε ένα διακριτικό πρόσβασης SAS πιστοποίησης χρήστη.

SAS λογαριασμού

Ένα SAS λογαριασμού ασφαλίζεται με ένα από τα κλειδιά λογαριασμού αποθήκευσης (υπάρχουν 2). Ένα SAS λογαριασμού αναθέτει πρόσβαση σε πόρους σε μία ή περισσότερες από τις υπηρεσίες αποθήκευσης. Όλες οι λειτουργίες που είναι διαθέσιμες μέσω ενός SAS σε επίπεδο υπηρεσίας ή πιστοποίησης χρήστη είναι επίσης διαθέσιμες μέσω ενός SAS λογαριασμού.

από τα έγγραφα: Δημιουργώντας ένα SAS λογαριασμού, μπορείτε:

  • Να αναθέσετε πρόσβαση σε λειτουργίες σε επίπεδο υπηρεσίας που δεν είναι διαθέσιμες αυτή τη στιγμή με ένα συγκεκριμένο για την υπηρεσία SAS, όπως οι λειτουργίες Get/Set Service Properties και Get Service Stats.

  • Να αναθέσετε πρόσβαση σε περισσότερες από μία υπηρεσίες σε ένα λογαριασμό αποθήκευσης ταυτόχρονα. Για παράδειγμα, μπορείτε να αναθέσετε πρόσβαση σε πόρους τόσο στο Azure Blob Storage όσο και στα αρχεία Azure χρησιμοποιώντας ένα SAS λογαριασμού.

  • Να αναθέσετε πρόσβαση σε λειτουργίες εγγραφής και διαγραφής για εμπορευματοκιβώτια, ουρές, πίνακες και κοινόχρηστα αρχεία, που δεν είναι διαθέσιμες με ένα συγκεκριμένο για αντικείμενο SAS.

  • Να καθορίσετε μια διεύθυνση IP ή ένα εύρος διευθύνσεων IP από τα οποία να αποδέχεστε αιτήσεις.

  • Να καθορίσετε το πρωτόκολλο HTTP από το οποίο να αποδέχεστε αιτήσεις (είτε HTTPS είτε HTTP/HTTPS).

Απαρίθμηση

# Get storage accounts
az storage account list #Get the account name from here

# Get keys to authenticate
az storage account keys list --account-name <name>

# Get shares
az storage share list --account-name <name> --account-key <key>

# Get dirs/files inside the share
az storage file list --account-name <name> --share-name <share-name> --account-key <key>
## If type is "dir", you can continue enumerationg files inside of it
az storage file list --account-name <name> --share-name <prev_dir/share-name> --account-key <key>

# Download a complete share (with directories and files inside of them)
az storage file download-batch -d . --source <share-name> --account-name <name> --account-key <key>

Αναφορές

Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated