Az - Storage Privesc

Reading time: 7 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Storage Privesc

Kwa maelezo zaidi kuhusu uhifadhi angalia:

Az - Storage Accounts & Blobs

Microsoft.Storage/storageAccounts/listkeys/action

Mtu mwenye ruhusa hii ataweza kuorodhesha (na thamani za siri) za funguo za ufikiaji za akaunti za uhifadhi. Hii inaruhusu mtu huyo kupandisha hadhi yake juu ya akaunti za uhifadhi.

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

Microsoft.Storage/storageAccounts/regenerateKey/action

Mtu mwenye ruhusa hii ataweza kufufua na kupata thamani mpya ya siri ya access keys za akaunti za hifadhi. Hii inaruhusu mtu huyo kuongeza mamlaka yake juu ya akaunti za hifadhi.

Zaidi ya hayo, katika jibu, mtumiaji atapata thamani ya funguo zilizofufuliwa na pia ya zile zisizofufuliwa:

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

Microsoft.Storage/storageAccounts/write

Mtu mwenye ruhusa hii ataweza kuunda au kuboresha akaunti ya kuhifadhi iliyopo akisasisha mipangilio yoyote kama sheria za mtandao au sera.

bash
# 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

Ruhusa ya kwanza inaruhusu kubadilisha sera za kutokuweza kubadilishwa katika kontena na ya pili kufuta hizo.

note

Kumbuka kwamba ikiwa sera ya kutokuweza kubadilishwa iko katika hali ya kufungwa, huwezi kufanya mojawapo ya hizo mbili.

bash
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

Hii inapaswa kumruhusu mtumiaji mwenye ruhusa hii kuchukua umiliki wa faili ndani ya mfumo wa faili wa pamoja.

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

Hii inapaswa kumruhusu mtumiaji mwenye ruhusa hii kubadilisha ruhusa za faili ndani ya mfumo wa faili wa pamoja.

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

Hii inapaswa kumruhusu mtumiaji mwenye ruhusa hii kufanya vitendo ndani ya mfumo wa faili kama superuser.

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

Kwa ruhusa hii, mshambuliaji anaweza kuunda na kusasisha (ikiwa ana ruhusa ya Microsoft.Storage/storageAccounts/localusers/read) mtumiaji mpya wa ndani kwa akaunti ya Azure Storage (iliyowekwa na namespace ya kihierarkia), ikiwa ni pamoja na kuweka ruhusa za mtumiaji na saraka ya nyumbani. Ruhusa hii ni muhimu kwa sababu inamruhusu mshambuliaji kujipa ruhusa kwa akaunti ya hifadhi yenye ruhusa maalum kama kusoma (r), kuandika (w), kufuta (d), na orodha (l) na zaidi. Zaidi ya hayo, mbinu za uthibitishaji zinazotumika zinaweza kuwa nywila zinazozalishwa na Azure na funguo za SSH. Hakuna ukaguzi ikiwa mtumiaji tayari yupo, hivyo unaweza kufuta watumiaji wengine ambao tayari wapo. Mshambuliaji anaweza kuongeza haki zao na kupata ufikiaji wa SSH kwa akaunti ya hifadhi, ambayo inaweza kufichua au kuhatarisha data nyeti.

bash
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

Kwa ruhusa hii, mshambuliaji anaweza kuunda upya nenosiri la mtumiaji wa ndani katika akaunti ya Azure Storage. Hii inampa mshambuliaji uwezo wa kupata akreditif mpya za uthibitishaji (kama vile nenosiri la SSH au SFTP) kwa mtumiaji. Kwa kutumia akreditif hizi, mshambuliaji anaweza kupata ufikiaji usioidhinishwa kwenye akaunti ya hifadhi, kufanya uhamishaji wa faili, au kubadilisha data ndani ya kontena za hifadhi. Hii inaweza kusababisha uvujaji wa data, uharibifu, au mabadiliko mabaya ya maudhui ya akaunti ya hifadhi.

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

Ili kufikia Azure Blob Storage kupitia SFTP (is_hns_enabled inapaswa kuwa kweli) kwa kutumia mtumiaji wa ndani kupitia SFTP unaweza (unaweza pia kutumia ssh key kuungana):

bash
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

Kwa ruhusa hizi, mshambuliaji anaweza kurejesha kontena lililofutwa kwa kubainisha kitambulisho cha toleo lake lililofutwa au kuondoa blobs maalum ndani ya kontena, ikiwa zilikuwa zimefutwa kwa njia ya laini awali. Kuinua ruhusa hii kunaweza kumwezesha mshambuliaji kurejesha data nyeti ambayo ilikusudiwa kufutwa kabisa, ambayo inaweza kusababisha ufikiaji usioidhinishwa.

bash
#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

Kwa ruhusa hizi, mshambuliaji anaweza kurejesha sehemu ya faili ya Azure iliyofutwa kwa kubainisha kitambulisho cha toleo lake lililofutwa. Kuinua kwa ruhusa hii kunaweza kumwezesha mshambuliaji kurejesha data nyeti ambayo ilikusudiwa kufutwa kabisa, ambayo inaweza kusababisha ufikiaji usioidhinishwa.

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

Mamlaka mengine ya kuvutia (TODO)

  • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/manageOwnership/action: Inabadilisha umiliki wa blob
  • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/modifyPermissions/action: Inabadilisha mamlaka ya blob
  • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action: Inarudisha matokeo ya amri ya blob
  • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/immutableStorage/runAsSuperUser/action

Marejeo

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks