Az - Storage Privesc

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

Storage Privesc

Pour plus d’informations sur le stockage, consultez :

Az - Storage Accounts & Blobs

Microsoft.Storage/storageAccounts/listkeys/action

Un principal avec cette permission pourra lister (et les valeurs secrĂštes) des clĂ©s d’accĂšs des comptes de stockage. Cela permet au principal d’escalader ses privilĂšges sur les comptes de stockage.

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

Microsoft.Storage/storageAccounts/regenerateKey/action

Un principal avec cette permission pourra renouveler et obtenir la nouvelle valeur secrĂšte des clĂ©s d’accĂšs des comptes de stockage. Cela permet au principal d’escalader ses privilĂšges sur les comptes de stockage.

De plus, dans la rĂ©ponse, l’utilisateur obtiendra la valeur de la clĂ© renouvelĂ©e ainsi que celle de la clĂ© non renouvelĂ©e :

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

Microsoft.Storage/storageAccounts/write

Un principal avec cette autorisation pourra crĂ©er ou mettre Ă  jour un compte de stockage existant en mettant Ă  jour n’importe quel paramĂštre comme les rĂšgles rĂ©seau ou les politiques.

# 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

La premiĂšre permission permet de modifier les politiques d’immuabilitĂ© dans les conteneurs et la seconde de les supprimer.

Note

Notez que si une politique d’immuabilitĂ© est en Ă©tat de verrouillage, vous ne pouvez pas faire l’un ou l’autre.

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>

Privesc spécifique aux partages de fichiers

Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action

Cela devrait permettre Ă  un utilisateur ayant cette permission de prendre possession des fichiers Ă  l’intĂ©rieur du systĂšme de fichiers partagĂ©.

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

Cela devrait permettre Ă  un utilisateur ayant cette permission de modifier les permissions des fichiers Ă  l’intĂ©rieur du systĂšme de fichiers partagĂ©.

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

Cela devrait permettre Ă  un utilisateur ayant cette permission d’effectuer des actions Ă  l’intĂ©rieur d’un systĂšme de fichiers en tant que superutilisateur.

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

Avec cette permission, un attaquant peut crĂ©er et mettre Ă  jour (s’il a la permission Microsoft.Storage/storageAccounts/localusers/read) un nouvel utilisateur local pour un compte de stockage Azure (configurĂ© avec un espace de noms hiĂ©rarchique), y compris la spĂ©cification des permissions et du rĂ©pertoire personnel de l’utilisateur. Cette permission est significative car elle permet Ă  l’attaquant de se donner accĂšs Ă  un compte de stockage avec des permissions spĂ©cifiques telles que lecture (r), Ă©criture (w), suppression (d) et liste (l) et plus encore. De plus, les mĂ©thodes d’authentification utilisĂ©es peuvent ĂȘtre des mots de passe gĂ©nĂ©rĂ©s par Azure et des paires de clĂ©s SSH. Il n’y a pas de vĂ©rification si un utilisateur existe dĂ©jĂ , donc vous pouvez Ă©craser d’autres utilisateurs qui sont dĂ©jĂ  prĂ©sents. L’attaquant pourrait Ă©lever ses privilĂšges et obtenir un accĂšs SSH au compte de stockage, exposant potentiellement ou compromettant des donnĂ©es sensibles.

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

Avec cette autorisation, un attaquant peut rĂ©gĂ©nĂ©rer le mot de passe d’un utilisateur local dans un compte de stockage Azure. Cela accorde Ă  l’attaquant la capacitĂ© d’obtenir de nouvelles informations d’identification d’authentification (comme un mot de passe SSH ou SFTP) pour l’utilisateur. En utilisant ces informations d’identification, l’attaquant pourrait obtenir un accĂšs non autorisĂ© au compte de stockage, effectuer des transferts de fichiers ou manipuler des donnĂ©es dans les conteneurs de stockage. Cela pourrait entraĂźner une fuite de donnĂ©es, une corruption ou une modification malveillante du contenu du compte de stockage.

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

Pour accĂ©der Ă  Azure Blob Storage via SFTP (is_hns_enabled doit ĂȘtre vrai) en utilisant un utilisateur local via SFTP, vous pouvez (vous pouvez Ă©galement utiliser une clĂ© ssh pour vous connecter) :

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

Avec ces autorisations, un attaquant peut restaurer un conteneur supprimĂ© en spĂ©cifiant son ID de version supprimĂ©e ou annuler la suppression de blobs spĂ©cifiques dans un conteneur, s’ils ont Ă©tĂ© prĂ©cĂ©demment supprimĂ©s de maniĂšre douce. Cette Ă©lĂ©vation de privilĂšges pourrait permettre Ă  un attaquant de rĂ©cupĂ©rer des donnĂ©es sensibles qui Ă©taient censĂ©es ĂȘtre dĂ©finitivement supprimĂ©es, ce qui pourrait entraĂźner un accĂšs non autorisĂ©.

#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

Avec ces autorisations, un attaquant peut restaurer un partage de fichiers Azure supprimĂ© en spĂ©cifiant son ID de version supprimĂ©e. Cette Ă©lĂ©vation de privilĂšges pourrait permettre Ă  un attaquant de rĂ©cupĂ©rer des donnĂ©es sensibles qui Ă©taient censĂ©es ĂȘtre dĂ©finitivement supprimĂ©es, ce qui pourrait entraĂźner un accĂšs non autorisĂ©.

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

Autres autorisations intéressantes (TODO)

  • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/manageOwnership/action: Change la propriĂ©tĂ© du blob
  • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/modifyPermissions/action: Modifie les autorisations du blob
  • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action: Renvoie le rĂ©sultat de la commande blob
  • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/immutableStorage/runAsSuperUser/action

Références

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks