Az - Table Storage

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

Basic Information

Azure Table Storage είναι μια NoSQL αποθήκη κλειδιού-τιμής σχεδιασμένη για την αποθήκευση μεγάλων όγκων δομημένων, μη σχεσιακών δεδομένων. Προσφέρει υψηλή διαθεσιμότητα, χαμηλή καθυστέρηση και κλιμακωσιμότητα για την αποτελεσματική διαχείριση μεγάλων συνόλων δεδομένων. Τα δεδομένα οργανώνονται σε πίνακες, με κάθε οντότητα να προσδιορίζεται από ένα partition key και ένα row key, επιτρέποντας γρήγορες αναζητήσεις. Υποστηρίζει χαρακτηριστικά όπως κρυπτογράφηση σε κατάσταση ηρεμίας, έλεγχο πρόσβασης βάσει ρόλου και υπογραφές κοινής πρόσβασης για ασφαλή, διαχειριζόμενη αποθήκευση κατάλληλη για ένα ευρύ φάσμα εφαρμογών.

Δεν υπάρχει ενσωματωMechanism backup για την αποθήκευση πίνακα.

Keys

PartitionKey

  • Το PartitionKey ομαδοποιεί τις οντότητες σε λογικές κατανομές. Οι οντότητες με το ίδιο PartitionKey αποθηκεύονται μαζί, γεγονός που βελτιώνει την απόδοση των ερωτημάτων και την κλιμακωσιμότητα.
  • Παράδειγμα: Σε έναν πίνακα που αποθηκεύει δεδομένα υπαλλήλων, το PartitionKey μπορεί να αντιπροσωπεύει ένα τμήμα, π.χ., "HR" ή "IT".

RowKey

  • Το RowKey είναι ο μοναδικός προσδιοριστής για μια οντότητα εντός μιας κατανομής. Όταν συνδυάζεται με το PartitionKey, διασφαλίζει ότι κάθε οντότητα στον πίνακα έχει έναν παγκοσμίως μοναδικό προσδιοριστή.
  • Παράδειγμα: Για την κατανομή "HR", το RowKey μπορεί να είναι ένα ID υπαλλήλου, π.χ., "12345".

Other Properties (Custom Properties)

  • Εκτός από το PartitionKey και το RowKey, μια οντότητα μπορεί να έχει επιπλέον προσαρμοσμένες ιδιότητες για την αποθήκευση δεδομένων. Αυτές είναι καθορισμένες από τον χρήστη και λειτουργούν όπως οι στήλες σε μια παραδοσιακή βάση δεδομένων.
  • Οι ιδιότητες αποθηκεύονται ως ζεύγη κλειδιού-τιμής.
  • Παράδειγμα: Name, Age, Title θα μπορούσαν να είναι προσαρμοσμένες ιδιότητες για έναν υπάλληλο.

Enumeration

# Get storage accounts
az storage account list

# List tables
az storage table list --account-name <name>

# Read table
az storage entity query \
--account-name <name> \
--table-name <t-name> \
--top 10

# Write table
az storage entity insert \
--account-name <STORAGE_ACCOUNT_NAME> \
--table-name <TABLE_NAME> \
--entity PartitionKey=<PARTITION_KEY> RowKey=<ROW_KEY> <PROPERTY_KEY>=<PROPERTY_VALUE>

# Write example
az storage entity insert \
--account-name mystorageaccount \
--table-name mytable \
--entity PartitionKey=HR RowKey=12345 Name="John Doe" Age=30 Title="Manager"

# Update row
az storage entity merge \
--account-name mystorageaccount \
--table-name mytable \
--entity PartitionKey=pk1 RowKey=rk1 Age=31

Note

Από προεπιλογή, το az cli θα χρησιμοποιήσει ένα κλειδί λογαριασμού για να υπογράψει ένα κλειδί και να εκτελέσει την ενέργεια. Για να χρησιμοποιήσετε τα δικαιώματα του Entra ID principal, χρησιμοποιήστε τις παραμέτρους --auth-mode login.

Tip

Χρησιμοποιήστε την παράμετρο --account-key για να υποδείξετε το κλειδί λογαριασμού που θα χρησιμοποιηθεί
Χρησιμοποιήστε την παράμετρο --sas-token με το SAS token για πρόσβαση μέσω ενός SAS token

Privilege Escalation

Το ίδιο με το storage privesc:

Az - Storage Privesc

Post Exploitation

Az - Table Storage Post Exploitation

Persistence

Το ίδιο με την αποθήκευση persistence:

Az - Storage Persistence

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