Az - Blob Storage

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

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

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

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

Η αποθήκευση Blob προσφέρει τρεις τύπους πόρων:

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

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

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

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

Αποθήκευση Blob

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

https://<storage-account>.file.core.windows.net

Αποθήκευση ουράς

https://<storage-account>.queue.core.windows.net

Αποθήκευση πίνακα

https://<storage-account>.table.core.windows.net

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

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

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

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

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

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

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

Αν η "Επιτρεπόμενη Δημόσια Πρόσβαση στο Blob" είναι ενεργοποιημένη (απενεργοποιημένη από προεπιλογή), είναι δυνατόν:

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

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

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

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

URL SAS

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

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

  • Ποιες άδειες έχουν για αυτούς τους πόρους.

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

Ένα 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

Χρησιμοποιήστε το 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 the containers
container = svc.get_container_client(container=c['name'])

for b in container.list_blobs():
print(b['name'])


# Download all the blobs
blob_name = b['name'].split("/")[::-1][0]
blob = svc.get_blob_client(container=c['name'],blob=b['name'])
with open(blob_name,"wb") as f:
f.write(blob.download_blob().readall())

Χρήση αντιπροσωπευτικής SAS χρήστη

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

Υποστηρίζεται μια Αντιπροσωπευτική Κοινόχρηστης Υπογραφής Πρόσβασης (SAS) τόσο στην Αποθήκη Blob του Azure όσο και στη Γεν2 Αποθήκη Δεδομένων του Azure. Ωστόσο, είναι σημαντικό να σημειωθεί ότι οι Αποθηκευμένες Πολιτικές Πρόσβασης δεν είναι συμβατές με μια Αντιπροσωπευτική 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.

  • Να αναθέσετε πρόσβαση σε περισσότερες από μία υπηρεσίες σε ένα λογαριασμό αποθήκευσης ταυτόχρονα. Για παράδειγμα, μπορείτε να αναθέσετε πρόσβαση σε πόρους τόσο στην Αποθήκη Blob του Azure όσο και στα Αρχεία 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>

Αναφορές

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

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

Last updated