Az - Storage Privesc

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

Storage Privesc

Για περισσότερες πληροφορίες σχετικά με την αποθήκευση, ελέγξτε:

Az - Storage Accounts & Blobs

Microsoft.Storage/storageAccounts/listkeys/action

Ένας κύριος με αυτή την άδεια θα είναι σε θέση να καταγράψει (και τις μυστικές τιμές) των access keys των λογαριασμών αποθήκευσης. Επιτρέποντας στον κύριο να κλιμακώσει τα προνόμιά του στους λογαριασμούς αποθήκευσης.

az storage account keys list --account-name <acc-name>

Microsoft.Storage/storageAccounts/regenerateKey/action

Ένας κύριος με αυτή την άδεια θα είναι σε θέση να ανανεώσει και να αποκτήσει την νέα μυστική τιμή των access keys των λογαριασμών αποθήκευσης. Επιτρέποντας στον κύριο να κλιμακώσει τα προνόμιά του πάνω στους λογαριασμούς αποθήκευσης.

Επιπλέον, στην απάντηση, ο χρήστης θα λάβει την τιμή του ανανεωμένου κλειδιού και επίσης του μη ανανεωμένου:

az storage account keys renew --account-name <acc-name> --key key2

Microsoft.Storage/storageAccounts/write

Ένας κύριος με αυτή την άδεια θα είναι σε θέση να δημιουργήσει ή να ενημερώσει έναν υπάρχοντα λογαριασμό αποθήκευσης ενημερώνοντας οποιαδήποτε ρύθμιση όπως κανόνες δικτύου ή πολιτικές.

# e.g. set default action to allow so network restrictions are avoided
az storage account update --name <acc-name> --default-action Allow

# e.g. allow an IP address
az storage account update --name <acc-name> --add networkRuleSet.ipRules value=<ip-address>

Blobs Specific privesc

Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write | Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete

Η πρώτη άδεια επιτρέπει να τροποποιήσετε τις πολιτικές αμεταβλητότητας σε κοντέινερ και η δεύτερη να τις διαγράψετε.

Note

Σημειώστε ότι αν μια πολιτική αμεταβλητότητας είναι σε κατάσταση κλειδώματος, δεν μπορείτε να κάνετε ούτε το ένα ούτε το άλλο.

az storage container immutability-policy delete \
--account-name <STORAGE_ACCOUNT_NAME> \
--container-name <CONTAINER_NAME> \
--resource-group <RESOURCE_GROUP>

az storage container immutability-policy update \
--account-name <STORAGE_ACCOUNT_NAME> \
--container-name <CONTAINER_NAME> \
--resource-group <RESOURCE_GROUP> \
--period <NEW_RETENTION_PERIOD_IN_DAYS>

File shares specific privesc

Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action

Αυτό θα πρέπει να επιτρέπει σε έναν χρήστη που έχει αυτή την άδεια να μπορεί να αναλάβει την ιδιοκτησία αρχείων μέσα στο κοινόχρηστο σύστημα αρχείων.

Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action

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

Microsoft.Storage/storageAccounts/fileServices/fileshares/files/actassuperuser/action

Αυτό θα πρέπει να επιτρέπει σε έναν χρήστη που έχει αυτή την άδεια να μπορεί να εκτελεί ενέργειες μέσα σε ένα σύστημα αρχείων ως superuser.

Microsoft.Storage/storageAccounts/localusers/write (Microsoft.Storage/storageAccounts/localusers/read)

Με αυτή την άδεια, ένας επιτιθέμενος μπορεί να δημιουργήσει και να ενημερώσει (αν έχει την άδεια Microsoft.Storage/storageAccounts/localusers/read) έναν νέο τοπικό χρήστη για έναν λογαριασμό Azure Storage (ρυθμισμένο με ιεραρχικό χώρο ονομάτων), συμπεριλαμβανομένου του καθορισμού των αδειών και του καταλόγου αρχικής τοποθεσίας του χρήστη. Αυτή η άδεια είναι σημαντική γιατί επιτρέπει στον επιτιθέμενο να παραχωρήσει στον εαυτό του πρόσβαση σε έναν λογαριασμό αποθήκευσης με συγκεκριμένες άδειες όπως ανάγνωση (r), εγγραφή (w), διαγραφή (d) και λίστα (l) και άλλα. Επιπλέον, οι μέθοδοι αυθεντικοποίησης που χρησιμοποιούνται μπορεί να είναι κωδικοί πρόσβασης που δημιουργούνται από το Azure και ζεύγη κλειδιών SSH. Δεν υπάρχει έλεγχος αν ένας χρήστης υπάρχει ήδη, οπότε μπορείτε να αντικαταστήσετε άλλους χρήστες που είναι ήδη εκεί. Ο επιτιθέμενος θα μπορούσε να αναβαθμίσει τα δικαιώματά του και να αποκτήσει πρόσβαση SSH στον λογαριασμό αποθήκευσης, ενδεχομένως εκθέτοντας ή διακυβεύοντας ευαίσθητα δεδομένα.

az storage account local-user create \
--account-name <STORAGE_ACCOUNT_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--name <LOCAL_USER_NAME> \
--permission-scope permissions=rwdl service=blob resource-name=<CONTAINER_NAME> \
--home-directory <HOME_DIRECTORY> \
--has-ssh-key false/true # Depends on the auth method to use

Microsoft.Storage/storageAccounts/localusers/regeneratePassword/action

Με αυτή την άδεια, ένας επιτιθέμενος μπορεί να αναγεννήσει τον κωδικό πρόσβασης για έναν τοπικό χρήστη σε έναν λογαριασμό Azure Storage. Αυτό δίνει στον επιτιθέμενο τη δυνατότητα να αποκτήσει νέα διαπιστευτήρια αυθεντικοποίησης (όπως έναν κωδικό πρόσβασης SSH ή SFTP) για τον χρήστη. Εκμεταλλευόμενος αυτά τα διαπιστευτήρια, ο επιτιθέμενος θα μπορούσε να αποκτήσει μη εξουσιοδοτημένη πρόσβαση στον λογαριασμό αποθήκευσης, να εκτελέσει μεταφορές αρχείων ή να χειριστεί δεδομένα εντός των κοντέινερ αποθήκευσης. Αυτό θα μπορούσε να έχει ως αποτέλεσμα διαρροή δεδομένων, διαφθορά ή κακόβουλη τροποποίηση του περιεχομένου του λογαριασμού αποθήκευσης.

az storage account local-user regenerate-password \
--account-name <STORAGE_ACCOUNT_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--name <LOCAL_USER_NAME>

Για να αποκτήσετε πρόσβαση στο Azure Blob Storage μέσω SFTP (το is_hns_enabled θα πρέπει να είναι αληθές) χρησιμοποιώντας έναν τοπικό χρήστη μέσω SFTP μπορείτε (μπορείτε επίσης να χρησιμοποιήσετε το ssh key για να συνδεθείτε):

sftp <storage-account-name>.<local-user-name>@<storage-account-name>.blob.core.windows.net
#regenerated-password

Microsoft.Storage/storageAccounts/restoreBlobRanges/action, Microsoft.Storage/storageAccounts/blobServices/containers/read, Microsoft.Storage/storageAccounts/read && Microsoft.Storage/storageAccounts/listKeys/action

Με αυτές τις άδειες, ένας επιτιθέμενος μπορεί να επαναφέρει ένα διαγραμμένο κοντέινερ καθορίζοντας το ID της διαγραμμένης έκδοσής του ή να αναιρέσει τη διαγραφή συγκεκριμένων blobs εντός ενός κοντέινερ, εάν είχαν προηγουμένως διαγραφεί μαλακά. Αυτή η κλιμάκωση προνομίων θα μπορούσε να επιτρέψει σε έναν επιτιθέμενο να ανακτήσει ευαίσθητα δεδομένα που προορίζονταν να διαγραφούν μόνιμα, ενδεχομένως οδηγώντας σε μη εξουσιοδοτημένη πρόσβαση.

#Restore the soft deleted container
az storage container restore \
--account-name <STORAGE_ACCOUNT_NAME> \
--name <CONTAINER_NAME> \
--deleted-version <VERSION>

#Restore the soft deleted blob
az storage blob undelete \
--account-name <STORAGE_ACCOUNT_NAME> \
--container-name <CONTAINER_NAME> \
--name "fileName.txt"

Microsoft.Storage/storageAccounts/fileServices/shares/restore/action && Microsoft.Storage/storageAccounts/read

Με αυτές τις άδειες, ένας επιτιθέμενος μπορεί να επαναφέρει μια διαγραμμένη Azure file share καθορίζοντας το ID της διαγραμμένης έκδοσής της. Αυτή η κλιμάκωση προνομίων θα μπορούσε να επιτρέψει σε έναν επιτιθέμενο να ανακτήσει ευαίσθητα δεδομένα που προορίζονταν να διαγραφούν μόνιμα, ενδεχομένως οδηγώντας σε μη εξουσιοδοτημένη πρόσβαση.

az storage share-rm restore \
--storage-account <STORAGE_ACCOUNT_NAME> \
--name <FILE_SHARE_NAME> \
--deleted-version <VERSION>

Άλλες ενδιαφέρουσες άδειες (TODO)

  • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/manageOwnership/action: Αλλάζει την ιδιοκτησία του blob
  • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/modifyPermissions/action: Τροποποιεί τις άδειες του blob
  • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action: Επιστρέφει το αποτέλεσμα της εντολής blob
  • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/immutableStorage/runAsSuperUser/action

Αναφορές

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