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
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Storage Privesc
Για περισσότερες πληροφορίες σχετικά με την αποθήκευση, ελέγξτε:
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
Αναφορές
- https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/storage#microsoftstorage
- https://learn.microsoft.com/en-us/azure/storage/blobs/secure-file-transfer-protocol-support
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
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

