mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-05 11:26:11 -08:00
Translated ['src/pentesting-cloud/azure-security/az-persistence/az-queue
This commit is contained in:
@@ -425,8 +425,8 @@
|
||||
- [Az - Management Groups, Subscriptions & Resource Groups](pentesting-cloud/azure-security/az-services/az-management-groups-subscriptions-and-resource-groups.md)
|
||||
- [Az - MySQL](pentesting-cloud/azure-security/az-services/az-mysql.md)
|
||||
- [Az - PostgreSQL](pentesting-cloud/azure-security/az-services/az-postgresql.md)
|
||||
- [Az - Queue Storage](pentesting-cloud/azure-security/az-services/az-queue-enum.md)
|
||||
- [Az - Service Bus](pentesting-cloud/azure-security/az-services/az-servicebus-enum.md)
|
||||
- [Az - Queue Storage](pentesting-cloud/azure-security/az-services/az-queue.md)
|
||||
- [Az - Service Bus](pentesting-cloud/azure-security/az-services/az-servicebus.md)
|
||||
- [Az - SQL](pentesting-cloud/azure-security/az-services/az-sql.md)
|
||||
- [Az - Static Web Applications](pentesting-cloud/azure-security/az-services/az-static-web-apps.md)
|
||||
- [Az - Storage Accounts & Blobs](pentesting-cloud/azure-security/az-services/az-storage.md)
|
||||
@@ -489,6 +489,7 @@
|
||||
- [Az - Persistence](pentesting-cloud/azure-security/az-persistence/README.md)
|
||||
- [Az - Automation Accounts Persistence](pentesting-cloud/azure-security/az-persistence/az-automation-accounts-persistence.md)
|
||||
- [Az - Cloud Shell Persistence](pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md)
|
||||
- [Az - Queue SQL Persistence](pentesting-cloud/azure-security/az-persistence/az-sql-persistance.md)
|
||||
- [Az - Queue Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md)
|
||||
- [Az - VMs Persistence](pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md)
|
||||
- [Az - Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-storage-persistence.md)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
有关更多信息,请查看:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-queue-enum.md
|
||||
../az-services/az-queue.md
|
||||
{{#endref}}
|
||||
|
||||
### 操作: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
# Az - SQL Persistence
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## SQL
|
||||
|
||||
有关更多信息,请查看:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-sql.md
|
||||
{{#endref}}
|
||||
|
||||
### 常见持久性技术
|
||||
|
||||
- 破坏 SQL 凭据或创建 SQL 用户(如有需要,启用 SQL 身份验证)
|
||||
- 将被破坏的用户分配为 Entrad ID 管理员(如有需要,启用 Entra ID 身份验证)
|
||||
- 在 VM 中设置后门(如果使用 SQL VM)
|
||||
- 创建防火墙规则以保持对 SQL 数据库的访问
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
@@ -7,7 +7,7 @@
|
||||
有关更多信息,请查看:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-queue-enum.md
|
||||
../az-services/az-queue.md
|
||||
{{#endref}}
|
||||
|
||||
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`
|
||||
@@ -26,7 +26,7 @@ az storage message get --queue-name <queue_name> --account-name <storage_account
|
||||
```
|
||||
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/add/action`
|
||||
|
||||
通过此权限,攻击者可以向 Azure 存储队列添加新消息。这使他们能够将恶意或未经授权的数据注入队列,可能触发意外的操作或干扰处理消息的下游服务。
|
||||
通过此权限,攻击者可以向 Azure 存储队列添加新消息。这使他们能够将恶意或未经授权的数据注入队列,可能触发意外操作或干扰处理消息的下游服务。
|
||||
```bash
|
||||
az storage message put --queue-name <queue-name> --content "Injected malicious message" --account-name <storage-account>
|
||||
```
|
||||
|
||||
@@ -7,18 +7,18 @@
|
||||
有关更多信息,请查看:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-servicebus-enum.md
|
||||
../az-services/az-servicebus.md
|
||||
{{#endref}}
|
||||
|
||||
### Actions: `Microsoft.ServiceBus/namespaces/Delete`
|
||||
|
||||
拥有此权限的攻击者可以删除整个 Azure Service Bus 命名空间。此操作会删除命名空间及所有相关资源,包括队列、主题、订阅及其消息,导致所有依赖系统和工作流的广泛中断和永久数据丢失。
|
||||
具有此权限的攻击者可以删除整个 Azure Service Bus 命名空间。此操作会删除命名空间及所有相关资源,包括队列、主题、订阅及其消息,导致所有依赖系统和工作流的广泛中断和永久数据丢失。
|
||||
```bash
|
||||
az servicebus namespace delete --resource-group <ResourceGroupName> --name <NamespaceName>
|
||||
```
|
||||
### Actions: `Microsoft.ServiceBus/namespaces/topics/Delete`
|
||||
|
||||
拥有此权限的攻击者可以删除 Azure Service Bus 主题。此操作会删除主题及其所有相关的订阅和消息,可能导致关键数据丢失,并干扰依赖该主题的系统和工作流程。
|
||||
拥有此权限的攻击者可以删除 Azure Service Bus 主题。此操作会删除主题及其所有相关的订阅和消息,可能导致关键数据丢失,并干扰依赖于该主题的系统和工作流程。
|
||||
```bash
|
||||
az servicebus topic delete --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <TopicName>
|
||||
```
|
||||
@@ -50,7 +50,7 @@ az servicebus topic update --resource-group <ResourceGroupName> --namespace-name
|
||||
```
|
||||
### Actions: `Microsoft.ServiceBus/namespaces/topics/subscriptions/write` (`Microsoft.ServiceBus/namespaces/topics/subscriptions/read`)
|
||||
|
||||
拥有创建或修改订阅权限的攻击者(要修改订阅,您还需要 Action: `Microsoft.ServiceBus/namespaces/topics/subscriptions/read`)可以利用这一点在 Azure Service Bus 主题中拦截、重定向或干扰消息工作流。使用诸如 az servicebus topic subscription update 的命令,他们可以操纵配置,例如启用死信以转移消息,将消息转发到未经授权的端点,或修改 TTL 和锁定持续时间以保留或干扰消息传递。此外,他们可以更改状态或最大交付计数设置,以干扰操作或逃避检测,使订阅控制成为后期利用场景中的关键方面。
|
||||
拥有创建或修改订阅权限的攻击者(要修改订阅,您还需要操作:`Microsoft.ServiceBus/namespaces/topics/subscriptions/read`)可以利用这一点在 Azure Service Bus 主题中拦截、重定向或干扰消息工作流。使用诸如 az servicebus topic subscription update 的命令,他们可以操控配置,例如启用死信以转移消息,将消息转发到未经授权的端点,或修改 TTL 和锁定持续时间以保留或干扰消息传递。此外,他们可以更改状态或最大交付计数设置,以干扰操作或逃避检测,使订阅控制成为后期利用场景中的关键方面。
|
||||
```bash
|
||||
az servicebus topic subscription create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
|
||||
az servicebus topic subscription update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
有关更多信息,请查看:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-queue-enum.md
|
||||
../az-services/az-queue.md
|
||||
{{#endref}}
|
||||
|
||||
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`
|
||||
|
||||
具有此权限的攻击者可以从 Azure 存储队列中查看消息。这使攻击者能够查看消息的内容,而不将其标记为已处理或更改其状态。这可能导致对敏感信息的未经授权访问,从而使数据外泄或收集进一步攻击的情报。
|
||||
拥有此权限的攻击者可以从 Azure 存储队列中查看消息。这使攻击者能够查看消息的内容,而不将其标记为已处理或更改其状态。这可能导致对敏感信息的未经授权访问,从而使数据外泄或收集进一步攻击的情报。
|
||||
```bash
|
||||
az storage message peek --queue-name <queue_name> --account-name <storage_account>
|
||||
```
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
有关更多信息,请查看:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-servicebus-enum.md
|
||||
../az-services/az-servicebus.md
|
||||
{{#endref}}
|
||||
|
||||
### Microsoft.ServiceBus/namespaces/authorizationrules/listKeys/action 或 Microsoft.ServiceBus/namespaces/authorizationrules/regenerateKeys/action
|
||||
|
||||
这些权限允许您获取或重新生成 Service Bus 命名空间内本地授权规则的密钥。使用这些密钥可以作为 Service Bus 命名空间进行身份验证,使您能够向任何队列或主题发送消息,从任何队列或订阅接收消息,或可能以可能干扰操作、冒充有效用户或将恶意数据注入消息工作流的方式与系统进行交互。
|
||||
这些权限允许您获取或重新生成 Service Bus 命名空间内本地授权规则的密钥。使用这些密钥可以作为 Service Bus 命名空间进行身份验证,使您能够向任何队列或主题发送消息,从任何队列或订阅接收消息,或可能以可能干扰操作、冒充有效用户或向消息工作流注入恶意数据的方式与系统进行交互。
|
||||
|
||||
请注意,默认情况下 **`RootManageSharedAccessKey` 规则对 Service Bus 命名空间具有完全控制权**,并且它被 `az` cli 使用,但可能存在其他具有其他密钥值的规则。
|
||||
请注意,默认情况下,**`RootManageSharedAccessKey` 规则对 Service Bus 命名空间具有完全控制权**,并且它被 `az` cli 使用,但可能存在其他具有其他密钥值的规则。
|
||||
```bash
|
||||
# List keys
|
||||
az servicebus namespace authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --authorization-rule-name RootManageSharedAccessKey [--authorization-rule-name RootManageSharedAccessKey]
|
||||
@@ -57,7 +57,7 @@ az servicebus queue authorization-rule keys renew --key [PrimaryKey|SecondaryKey
|
||||
```
|
||||
### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/write
|
||||
|
||||
拥有此权限,可以**创建一个新的授权规则**,并赋予所有权限及其自己的密钥:
|
||||
拥有此权限可以**创建一个新的授权规则**,并赋予所有权限及其自己的密钥:
|
||||
```bash
|
||||
# In a topic
|
||||
az servicebus topic authorization-rule create --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name> --rights Manage Listen Send
|
||||
@@ -68,7 +68,7 @@ az servicebus queue authorization-rule create --resource-group <res-group> --nam
|
||||
>[!WARNING]
|
||||
>此命令不会返回密钥,因此您需要通过之前的命令(和权限)获取它们,以便提升权限。
|
||||
|
||||
此外,通过该命令(和 `Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/read`),如果您通过 Azure CLI 执行此操作,可以使用以下命令更新现有的授权规则并赋予更多权限(如果缺少某些权限):
|
||||
此外,通过该命令(和 `Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/read`),如果您通过 Azure CLI 执行此操作,可以使用以下命令更新现有的授权规则并赋予其更多权限(如果缺少某些权限):
|
||||
```bash
|
||||
# In a topic
|
||||
az servicebus topic authorization-rule update --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name> --rights Manage Listen Send
|
||||
@@ -78,17 +78,18 @@ az servicebus queue authorization-rule update --resource-group <res-group> --nam
|
||||
```
|
||||
### Microsoft.ServiceBus/namespaces/write (& Microsoft.ServiceBus/namespaces/read if az cli is used)
|
||||
|
||||
拥有这些权限**攻击者可以通过以下命令重新启用“本地身份验证”**,因此所有来自共享策略的密钥将有效。
|
||||
拥有这些权限 **攻击者可以通过以下命令重新启用“本地身份验证”**,因此所有来自共享策略的密钥将有效。
|
||||
```bash
|
||||
az servicebus namespace update --disable-local-auth false -n <namespace-name> --resource-group <res-group>
|
||||
```
|
||||
### 发送带有密钥的消息 (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
|
||||
### 发送带有密钥的消息 (Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action 或 Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action)
|
||||
|
||||
您可以检索 `PrimaryConnectionString`,它作为 Service Bus 命名空间的凭据。使用此连接字符串,您可以完全以 Service Bus 命名空间的身份进行身份验证,使您能够向任何队列或主题发送消息,并可能以可能干扰操作、冒充有效用户或将恶意数据注入消息工作流的方式与系统交互。如果将 `--disable-local-auth` 设置为 false,则此方法有效。
|
||||
您可以检索 `PrimaryConnectionString`,它作为 Service Bus 命名空间的凭据。使用此连接字符串,您可以完全以 Service Bus 命名空间的身份进行身份验证,使您能够向任何队列或主题发送消息,并可能以可能干扰操作、冒充有效用户或向消息工作流注入恶意数据的方式与系统进行交互。此方法在 `--disable-local-auth` 设置为 false(即启用本地身份验证)时有效。
|
||||
```python
|
||||
import asyncio
|
||||
from azure.servicebus.aio import ServiceBusClient
|
||||
from azure.servicebus import ServiceBusMessage
|
||||
# pip install azure-servicebus
|
||||
|
||||
NAMESPACE_CONNECTION_STR = "<PrimaryConnectionString>"
|
||||
TOPIC_OR_QUEUE_NAME = "<TOPIC_OR_QUEUE_NAME>"
|
||||
@@ -101,7 +102,7 @@ print("Sent message")
|
||||
|
||||
asyncio.run(send_message())
|
||||
```
|
||||
此外,您可以使用 az rest 发送消息,在这种情况下,您需要生成一个 sas 令牌以供使用。
|
||||
此外,您可以使用 az rest 发送消息,在这种情况下,您需要生成一个 sas 令牌来使用。
|
||||
```python
|
||||
import time, urllib.parse, hmac, hashlib, base64
|
||||
|
||||
@@ -129,12 +130,13 @@ az rest --method post \
|
||||
--body "<MESSAGE_BODY>"
|
||||
|
||||
```
|
||||
### Receive with keys (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
|
||||
### Receive with keys (Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action OR Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action)
|
||||
|
||||
您可以检索 PrimaryConnectionString,它作为 Service Bus 命名空间的凭据。使用此连接字符串,您可以从命名空间内的任何队列或订阅接收消息,从而访问潜在的敏感或关键数据,启用数据外泄,或干扰消息处理和应用程序工作流。如果将 `--disable-local-auth` 设置为 false,此方法有效。
|
||||
```python
|
||||
import asyncio
|
||||
from azure.servicebus.aio import ServiceBusClient
|
||||
# pip install azure-servicebus
|
||||
|
||||
CONN_STR = "<PrimaryConnectionString>"
|
||||
QUEUE = "<QUEUE_NAME>"
|
||||
@@ -162,7 +164,7 @@ await receiver.complete_message(msg)
|
||||
asyncio.run(receive())
|
||||
print("Done receiving messages")
|
||||
```
|
||||
此外,您可以使用 az rest 发送消息,在这种情况下,您需要生成一个 sas 令牌以供使用。
|
||||
此外,您可以使用 az rest 发送消息,在这种情况下,您需要生成一个 sas 令牌来使用。
|
||||
```python
|
||||
import time, urllib.parse, hmac, hashlib, base64
|
||||
|
||||
@@ -224,13 +226,15 @@ import asyncio
|
||||
from azure.identity.aio import DefaultAzureCredential
|
||||
from azure.servicebus.aio import ServiceBusClient
|
||||
from azure.servicebus import ServiceBusMessage
|
||||
# pip install azure-servicebus
|
||||
|
||||
NS = "<namespace>.servicebus.windows.net" # Your namespace
|
||||
QUEUE_OR_TOPIC = "<QUEUE_OR_TOPIC>" # Your queue name
|
||||
QUEUE_OR_TOPIC = "<QUEUE_OR_TOPIC>" # Your queue name
|
||||
|
||||
async def run():
|
||||
credential = DefaultAzureCredential()
|
||||
async with ServiceBusClient(fully_qualified_namespace=NS, credential=credential) as client:
|
||||
#async with client.get_topic_sender(topic_name=TOPIC) as sender: # Use this to send the message to a topic
|
||||
async with client.get_queue_sender(queue_name=QUEUE) as sender:
|
||||
await sender.send_messages(ServiceBusMessage("Single Message"))
|
||||
print("Sent a single message")
|
||||
@@ -246,6 +250,7 @@ asyncio.run(run())
|
||||
import asyncio
|
||||
from azure.identity.aio import DefaultAzureCredential
|
||||
from azure.servicebus.aio import ServiceBusClient
|
||||
# pip install azure-servicebus
|
||||
|
||||
NS = "<namespace>.servicebus.windows.net"
|
||||
QUEUE = "<QUEUE>"
|
||||
|
||||
@@ -14,7 +14,7 @@ Azure Service Bus 是一个基于云的 **消息服务**,旨在实现 **应用
|
||||
- 以拉取模式(按需检索)交付给一个消费者。
|
||||
- 可以配置为在消息共享时自动删除,或在“Peek lock”模式下,消费者需要确认可以删除。如果没有确认,消息将返回队列。
|
||||
- 支持点对点通信。
|
||||
3. **Topics:** 发布-订阅消息用于广播。
|
||||
3. **Topics:** 发布-订阅消息,用于广播。
|
||||
- 多个独立的订阅接收消息的副本。
|
||||
- 每个订阅就像主题内部的一个队列。
|
||||
- 订阅可以有规则/过滤器来控制交付或添加元数据。
|
||||
@@ -35,29 +35,29 @@ https://<namespace>.servicebus.windows.net:443/
|
||||
- **事务**:将操作分组为原子执行。
|
||||
- **过滤器和操作**:应用规则以过滤或注释消息。
|
||||
- **空闲自动删除**:在不活动后删除队列(最小:5分钟)。
|
||||
- **重复检测**:在重发期间移除重复消息。
|
||||
- **重复检测**:在重发期间删除重复消息。
|
||||
- **批量删除**:批量删除过期或不必要的消息。
|
||||
|
||||
### 本地身份验证
|
||||
|
||||
**`--disable-local-auth`** az cli 参数用于控制是否为您的 Service Bus 命名空间启用 **本地身份验证**(允许使用共享访问签名(SAS)密钥)。
|
||||
az cli参数中的 **`--disable-local-auth`** 用于控制是否为您的Service Bus命名空间启用 **本地身份验证**(允许使用共享访问签名(SAS)密钥)。
|
||||
|
||||
- 当 disable 设置为 **true**:禁用使用 SAS 密钥的本地身份验证,允许使用 Entra ID 身份验证。
|
||||
- 当 disable 设置为 **false(默认)**:同时提供 SAS 本地身份验证和 Entra ID 身份验证,您可以使用包含 SAS 密钥的连接字符串访问您的 Service Bus 资源。
|
||||
- 当disable设置为 **true**:禁用使用SAS密钥的本地身份验证,允许使用Entra ID身份验证。
|
||||
- 当disable设置为 **false(默认)**:同时提供SAS本地身份验证和Entra ID身份验证,您可以使用包含SAS密钥的连接字符串访问您的Service Bus资源。
|
||||
|
||||
### 授权规则 / SAS 策略
|
||||
### 授权规则 / SAS策略
|
||||
|
||||
SAS 策略定义了 Azure Service Bus 实体命名空间(最重要的一个)、队列和主题的访问权限。每个策略具有以下组件:
|
||||
SAS策略定义了Azure Service Bus实体命名空间(最重要的一个)、队列和主题的访问权限。每个策略具有以下组件:
|
||||
|
||||
- **权限**:复选框以指定访问级别:
|
||||
- 管理:授予对实体的完全控制,包括配置和权限管理。
|
||||
- 发送:允许向实体发送消息。
|
||||
- 监听:允许从实体接收消息。
|
||||
- **主密钥和次密钥**:这些是用于生成安全令牌以进行身份验证访问的加密密钥。
|
||||
- **主密钥和次密钥**:这些是用于生成安全令牌以进行身份验证的加密密钥。
|
||||
- **主连接字符串和次连接字符串**:预配置的连接字符串,包括端点和密钥,便于在应用程序中使用。
|
||||
- **SAS 策略 ARM ID**:用于程序识别的策略的 Azure 资源管理器(ARM)路径。
|
||||
- **SAS策略ARM ID**:用于程序识别的Azure资源管理器(ARM)路径。
|
||||
|
||||
需要注意的是,一个命名空间只有一个 SAS 策略,这会影响其中的每个实体,而队列和主题可以拥有各自的单独 SAS 策略,以便进行更细粒度的控制。
|
||||
需要注意的是,一个命名空间只有一个SAS策略,这会影响其中的每个实体,而队列和主题可以拥有各自的SAS策略以实现更细粒度的控制。
|
||||
|
||||
### 枚举
|
||||
|
||||
@@ -143,6 +143,7 @@ Get-AzServiceBusTopic -ResourceGroupName <ResourceGroupName> -NamespaceName <Nam
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
|
||||
### 权限提升
|
||||
|
||||
{{#ref}}
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Azure SQL
|
||||
|
||||
Azure SQL 是一系列托管、安全和智能的产品,使用 **Azure 云中的 SQL Server 数据库引擎**。这意味着您不必担心服务器的物理管理,您可以专注于管理您的数据。
|
||||
Azure SQL 是一系列托管、安全和智能的产品,使用 **Azure 云中的 SQL Server 数据库引擎**。这意味着您不必担心服务器的物理管理,可以专注于管理数据。
|
||||
|
||||
Azure SQL 由四个主要产品组成:
|
||||
|
||||
@@ -33,7 +33,7 @@ Azure SQL 由四个主要产品组成:
|
||||
**加密:**
|
||||
|
||||
- 这被称为“透明数据加密”,它对数据库、备份和静态日志进行加密。
|
||||
- 和往常一样,默认使用 Azure 管理的密钥,但也可以使用客户管理的加密密钥(CMEK)。
|
||||
- 和往常一样,默认使用 Azure 托管密钥,但也可以使用客户管理的加密密钥(CMEK)。
|
||||
|
||||
**托管身份:**
|
||||
|
||||
@@ -70,13 +70,13 @@ Azure SQL 由四个主要产品组成:
|
||||
- 备份
|
||||
- …
|
||||
- **数据冗余:** 选项包括本地、区域、地理或地理区域冗余。
|
||||
- **账本:** 它通过加密验证数据的完整性,确保任何篡改都能被检测到。对金融、医疗和任何管理敏感数据的组织非常有用。
|
||||
- **分类账:** 它通过加密验证数据的完整性,确保任何篡改都能被检测到。对金融、医疗和任何管理敏感数据的组织非常有用。
|
||||
|
||||
SQL 数据库可以是 **弹性池** 的一部分。弹性池是通过在多个数据库之间共享可配置的计算(eDTUs)和存储资源来管理多个数据库的成本效益解决方案,定价仅基于分配的资源,而不是数据库的数量。
|
||||
|
||||
#### Azure SQL 列级安全(掩码)和行级安全
|
||||
|
||||
**Azure SQL 的动态** 数据掩码是一项功能,帮助 **通过隐藏敏感信息** 来保护敏感信息。它不会更改实际数据,而是动态掩盖显示的数据,确保像信用卡号码这样的敏感细节被遮蔽。
|
||||
**Azure SQL 的动态** 数据掩码是一项功能,帮助 **通过隐藏敏感信息** 来保护敏感信息。它不会更改实际数据,而是动态掩盖显示的数据,确保诸如信用卡号码等敏感细节被遮蔽。
|
||||
|
||||
**动态数据掩码** 影响所有用户,除了未掩盖的用户(这些用户需要被指明)和管理员。它具有配置选项,指定哪些 SQL 用户可以免于动态数据掩码,**管理员始终被排除在外**。
|
||||
|
||||
@@ -84,17 +84,17 @@ SQL 数据库可以是 **弹性池** 的一部分。弹性池是通过在多个
|
||||
|
||||
### Azure SQL Managed Instance
|
||||
|
||||
**Azure SQL Managed Instances** 适用于更大规模的整个 SQL Server 实例范围的部署。它提供与最新的 SQL Server 本地(企业版)数据库引擎近乎 100% 的兼容性,提供本地虚拟网络 (VNet) 实现,解决常见的安全问题,并为本地 SQL Server 客户提供有利的商业模式。
|
||||
**Azure SQL Managed Instances** 适用于更大规模的整个 SQL Server 实例范围的部署。它提供与最新的 SQL Server 本地(企业版)数据库引擎近 100% 的兼容性,提供本地虚拟网络 (VNet) 实现,解决常见的安全问题,并为本地 SQL Server 客户提供有利的商业模式。
|
||||
|
||||
### Azure SQL 虚拟机
|
||||
|
||||
**Azure SQL 虚拟机** 允许 **控制操作系统** 和 SQL Server 实例,因为将在运行 SQL Server 的 VM 服务中生成一个 VM。
|
||||
|
||||
创建 SQL 虚拟机时,可以 **选择 VM 的所有设置**(如 VM 课程中所示),该 VM 将托管 SQL Server。
|
||||
- 这意味着 VM 将访问某些 VNet,可能会有 **附加的托管身份**,可能会挂载文件共享……使得 **从 SQL 到 VM 的跳板** 非常有趣。
|
||||
- 此外,可以配置应用 ID 和密钥以 **允许 SQL 访问特定的密钥保管库**,该保管库可能包含敏感信息。
|
||||
- 这意味着 VM 将访问某些 VNet,可能会有 **附加的托管身份**,可以挂载文件共享……使得 **从 SQL 到 VM 的跳板** 非常有趣。
|
||||
- 此外,可以配置应用 ID 和密钥,以 **允许 SQL 访问特定的密钥保管库**,该保管库可能包含敏感信息。
|
||||
|
||||
还可以配置自动 SQL 更新、自动备份、Entra ID 身份验证以及其他 SQL 服务的大多数功能。
|
||||
还可以配置诸如 **自动 SQL 更新**、**自动备份**、**Entra ID 身份验证** 和其他 SQL 服务的大多数功能。
|
||||
|
||||
## 枚举
|
||||
|
||||
@@ -302,4 +302,10 @@ sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passwork
|
||||
../az-post-exploitation/az-sql-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
### 持久性
|
||||
|
||||
{{#ref}}
|
||||
../az-persistence/az-sql-persistance.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user