Az - Storage Privesc
Reading time: 6 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Storage Privesc
Для отримання додаткової інформації про зберігання дивіться:
Microsoft.Storage/storageAccounts/listkeys/action
Принципал з цим дозволом зможе переглядати (та секретні значення) ключів доступу до облікових записів зберігання. Це дозволяє принципалу підвищити свої привілеї над обліковими записами зберігання.
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>
Специфічний привілейований доступ до файлових ресурсів
Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action
Це повинно дозволити користувачу, який має це дозволення, взяти на себе право власності на файли в спільній файловій системі.
Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action
Це повинно дозволити користувачу, який має це дозволення, змінювати дозволи файлів у спільній файловій системі.
Microsoft.Storage/storageAccounts/fileServices/fileshares/files/actassuperuser/action
Це повинно дозволити користувачу, який має це дозволення, виконувати дії в файловій системі як суперкористувач.
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 має бути true), використовуючи локального користувача через SFTP, ви можете (також можна використовувати ssh ключ для підключення):
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 видаленої версії, або відновити конкретні блоби в контейнері, якщо вони були раніше м'яко видалені. Це підвищення привілеїв може дозволити зловмиснику відновити чутливі дані, які мали бути назавжди видалені, що потенційно призведе до несанкціонованого доступу.
#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 файл-шар, вказавши його 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: Змінює власність блобу
- Microsoft.Storage/storageAccounts/blobServices/containers/blobs/modifyPermissions/action: Модифікує дозволи блобу
- Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action: Повертає результат команди блобу
- 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)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.