Translated ['src/pentesting-cloud/azure-security/az-persistence/az-queue

This commit is contained in:
Translator
2025-02-20 00:54:54 +00:00
parent fa1e8fddf6
commit 9458b97c2c
10 changed files with 63 additions and 31 deletions

View File

@@ -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)

View File

@@ -7,12 +7,12 @@
Para más información, consulta:
{{#ref}}
../az-services/az-queue-enum.md
../az-services/az-queue.md
{{#endref}}
### Acciones: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
Este permiso permite a un atacante crear o modificar colas y sus propiedades dentro de la cuenta de almacenamiento. Puede ser utilizado para crear colas no autorizadas, modificar metadatos o cambiar listas de control de acceso (ACLs) para otorgar o restringir acceso. Esta capacidad podría interrumpir flujos de trabajo, inyectar datos maliciosos, exfiltrar información sensible o manipular configuraciones de cola para habilitar ataques adicionales.
Este permiso permite a un atacante crear o modificar colas y sus propiedades dentro de la cuenta de almacenamiento. Se puede utilizar para crear colas no autorizadas, modificar metadatos o cambiar listas de control de acceso (ACLs) para otorgar o restringir el acceso. Esta capacidad podría interrumpir flujos de trabajo, inyectar datos maliciosos, exfiltrar información sensible o manipular configuraciones de cola para habilitar ataques adicionales.
```bash
az storage queue create --name <new-queue-name> --account-name <storage-account>

View File

@@ -0,0 +1,20 @@
# Az - SQL Persistence
{{#include ../../../banners/hacktricks-training.md}}
## SQL
Para más información, consulta:
{{#ref}}
../az-services/az-sql.md
{{#endref}}
### Técnicas Comunes de Persistencia
- Comprometer credenciales de SQL o crear un usuario de SQL (habilitando la autenticación de SQL si es necesario)
- Asignar un usuario comprometido como administrador de Entra ID (habilitando la autenticación de Entra ID si es necesario)
- Puerta trasera en la VM (si se utiliza una VM de SQL)
- Crear una regla de FW para mantener el acceso a la base de datos SQL
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -7,7 +7,7 @@
Para más información, consulta:
{{#ref}}
../az-services/az-queue-enum.md
../az-services/az-queue.md
{{#endref}}
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`
@@ -58,7 +58,7 @@ az storage message clear --queue-name <queue-name> --account-name <storage-accou
```
### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
Este permiso permite a un atacante crear o modificar colas y sus propiedades dentro de la cuenta de almacenamiento. Se puede utilizar para crear colas no autorizadas, modificar metadatos o cambiar listas de control de acceso (ACLs) para otorgar o restringir el acceso. Esta capacidad podría interrumpir flujos de trabajo, inyectar datos maliciosos, exfiltrar información sensible o manipular configuraciones de colas para habilitar ataques adicionales.
Este permiso permite a un atacante crear o modificar colas y sus propiedades dentro de la cuenta de almacenamiento. Se puede utilizar para crear colas no autorizadas, modificar metadatos o cambiar listas de control de acceso (ACLs) para otorgar o restringir acceso. Esta capacidad podría interrumpir flujos de trabajo, inyectar datos maliciosos, exfiltrar información sensible o manipular configuraciones de colas para habilitar ataques adicionales.
```bash
az storage queue create --name <new-queue-name> --account-name <storage-account>

View File

@@ -7,12 +7,12 @@
Para más información, consulta:
{{#ref}}
../az-services/az-servicebus-enum.md
../az-services/az-servicebus.md
{{#endref}}
### Acciones: `Microsoft.ServiceBus/namespaces/Delete`
Un atacante con este permiso puede eliminar un espacio de nombres completo de Azure Service Bus. Esta acción elimina el espacio de nombres y todos los recursos asociados, incluidas colas, temas, suscripciones y sus mensajes, causando una interrupción generalizada y pérdida de datos permanente en todos los sistemas y flujos de trabajo dependientes.
Un atacante con este permiso puede eliminar todo un espacio de nombres de Azure Service Bus. Esta acción elimina el espacio de nombres y todos los recursos asociados, incluidas colas, temas, suscripciones y sus mensajes, causando una interrupción generalizada y pérdida de datos permanente en todos los sistemas y flujos de trabajo dependientes.
```bash
az servicebus namespace delete --resource-group <ResourceGroupName> --name <NamespaceName>
```
@@ -43,7 +43,7 @@ az servicebus queue update --resource-group <ResourceGroupName> --namespace-name
```
### Acciones: `Microsoft.ServiceBus/namespaces/topics/write` (`Microsoft.ServiceBus/namespaces/topics/read`)
Un atacante con permisos para crear o modificar temas (para modificar el tema también necesitarás la Acción: `Microsoft.ServiceBus/namespaces/topics/read`) dentro de un espacio de nombres de Azure Service Bus puede explotar esto para interrumpir flujos de mensajes, exponer datos sensibles o habilitar acciones no autorizadas. Usando comandos como az servicebus topic update, pueden manipular configuraciones como habilitar la partición para un uso indebido de escalabilidad, alterar configuraciones de TTL para retener o descartar mensajes de manera inapropiada, o deshabilitar la detección de duplicados para eludir controles. Además, podrían ajustar los límites de tamaño del tema, cambiar el estado para interrumpir la disponibilidad, o configurar temas expresos para almacenar temporalmente mensajes interceptados, lo que convierte la gestión de temas en un enfoque crítico para la mitigación post-explotación.
Un atacante con permisos para crear o modificar temas (para modificar el tema también necesitarás la Acción: `Microsoft.ServiceBus/namespaces/topics/read`) dentro de un espacio de nombres de Azure Service Bus puede explotar esto para interrumpir flujos de mensajes, exponer datos sensibles o habilitar acciones no autorizadas. Usando comandos como az servicebus topic update, pueden manipular configuraciones como habilitar la partición para un uso indebido de escalabilidad, alterar configuraciones de TTL para retener o descartar mensajes de manera inapropiada, o deshabilitar la detección de duplicados para eludir controles. Además, podrían ajustar los límites de tamaño del tema, cambiar el estado para interrumpir la disponibilidad, o configurar temas expresos para almacenar temporalmente mensajes interceptados, haciendo que la gestión de temas sea un enfoque crítico para la mitigación post-explotación.
```bash
az servicebus topic create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <TopicName>
az servicebus topic update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <TopicName>

View File

@@ -7,7 +7,7 @@
Para más información, consulta:
{{#ref}}
../az-services/az-queue-enum.md
../az-services/az-queue.md
{{#endref}}
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`
@@ -46,7 +46,7 @@ az storage message update --queue-name <queue-name> \
```
### Acción: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
Este permiso permite a un atacante crear o modificar colas y sus propiedades dentro de la cuenta de almacenamiento. Se puede utilizar para crear colas no autorizadas, modificar metadatos o cambiar listas de control de acceso (ACLs) para otorgar o restringir acceso. Esta capacidad podría interrumpir flujos de trabajo, inyectar datos maliciosos, exfiltrar información sensible o manipular configuraciones de colas para habilitar ataques adicionales.
Este permiso permite a un atacante crear o modificar colas y sus propiedades dentro de la cuenta de almacenamiento. Se puede utilizar para crear colas no autorizadas, modificar metadatos o cambiar listas de control de acceso (ACLs) para otorgar o restringir el acceso. Esta capacidad podría interrumpir flujos de trabajo, inyectar datos maliciosos, exfiltrar información sensible o manipular configuraciones de colas para habilitar ataques adicionales.
```bash
az storage queue create --name <new-queue-name> --account-name <storage-account>

View File

@@ -7,14 +7,14 @@
Para más información, consulta:
{{#ref}}
../az-services/az-servicebus-enum.md
../az-services/az-servicebus.md
{{#endref}}
### Microsoft.ServiceBus/namespaces/authorizationrules/listKeys/action O Microsoft.ServiceBus/namespaces/authorizationrules/regenerateKeys/action
Estos permisos te permiten obtener o regenerar las claves para las reglas de autorización locales dentro de un espacio de nombres de Service Bus. Usando estas claves es posible autenticarte como el espacio de nombres de Service Bus, lo que te permite enviar mensajes a cualquier cola o tema, recibir mensajes de cualquier cola o suscripción, o potencialmente interactuar con el sistema de maneras que podrían interrumpir las operaciones, suplantar usuarios válidos o inyectar datos maliciosos en el flujo de mensajería.
Ten en cuenta que por defecto la **`RootManageSharedAccessKey` regla tiene control total** sobre el espacio de nombres de Service Bus y se utiliza por el `az` cli, sin embargo, pueden existir otras reglas con otros valores de clave.
Ten en cuenta que por defecto la **`RootManageSharedAccessKey` regla tiene control total** sobre el espacio de nombres de Service Bus y se utiliza con el `az` cli, sin embargo, pueden existir otras reglas con otros valores de clave.
```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]
@@ -31,7 +31,7 @@ az servicebus namespace authorization-rule create --authorization-rule-name "myR
>[!WARNING]
>Este comando no responde con las claves, por lo que necesitas obtenerlas con los comandos (y permisos) anteriores para poder escalar privilegios.
Además, con ese comando (y `Microsoft.ServiceBus/namespaces/authorizationRules/read`) si realizas esta acción a través de la Azure CLI, es posible actualizar una regla de autorización existente y darle más permisos (en caso de que le faltaran algunos) con el siguiente comando:
Además, con ese comando (y `Microsoft.ServiceBus/namespaces/authorizationRules/read`) si realizas esta acción a través de Azure CLI, es posible actualizar una regla de autorización existente y darle más permisos (en caso de que le faltaran algunos) con el siguiente comando:
```bash
az servicebus namespace authorization-rule update \
--resource-group <MyResourceGroup> \
@@ -82,13 +82,14 @@ Con estos permisos **un atacante puede reactivar "la autenticación local"** con
```bash
az servicebus namespace update --disable-local-auth false -n <namespace-name> --resource-group <res-group>
```
### Enviar mensajes con claves (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
### Enviar mensajes con claves (Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action O Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action)
Puedes recuperar el `PrimaryConnectionString`, que actúa como una credencial para el espacio de nombres de Service Bus. Con esta cadena de conexión, puedes autenticarte completamente como el espacio de nombres de Service Bus, lo que te permite enviar mensajes a cualquier cola o tema y potencialmente interactuar con el sistema de maneras que podrían interrumpir las operaciones, suplantar a usuarios válidos o inyectar datos maliciosos en el flujo de trabajo de mensajería. Este método funciona si `--disable-local-auth` está configurado como falso.
Puedes recuperar el `PrimaryConnectionString`, que actúa como una credencial para el espacio de nombres de Service Bus. Con esta cadena de conexión, puedes autenticarte completamente como el espacio de nombres de Service Bus, lo que te permite enviar mensajes a cualquier cola o tema y potencialmente interactuar con el sistema de maneras que podrían interrumpir las operaciones, suplantar a usuarios válidos o inyectar datos maliciosos en el flujo de trabajo de mensajería. Este método funciona si `--disable-local-auth` está configurado como falso (por lo que la autenticación local está habilitada).
```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>"
@@ -129,12 +130,13 @@ az rest --method post \
--body "<MESSAGE_BODY>"
```
### Recibir con claves (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action O Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
### Recibir con claves (Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action O Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action)
Puedes recuperar el PrimaryConnectionString, que sirve como una credencial para el espacio de nombres de Service Bus. Usando esta cadena de conexión, puedes recibir mensajes de cualquier cola o suscripción dentro del espacio de nombres, lo que permite el acceso a datos potencialmente sensibles o críticos, habilitando la exfiltración de datos o interfiriendo con el procesamiento de mensajes y flujos de trabajo de aplicaciones. Este método funciona si `--disable-local-auth` está configurado como falso.
Puedes recuperar el PrimaryConnectionString, que sirve como una credencial para el espacio de nombres de Service Bus. Usando esta cadena de conexión, puedes recibir mensajes de cualquier cola o suscripción dentro del espacio de nombres, lo que permite el acceso a datos potencialmente sensibles o críticos, habilitando la exfiltración de datos o interfiriendo con el procesamiento de mensajes y los flujos de trabajo de la aplicación. Este método funciona si `--disable-local-auth` está configurado como false.
```python
import asyncio
from azure.servicebus.aio import ServiceBusClient
# pip install azure-servicebus
CONN_STR = "<PrimaryConnectionString>"
QUEUE = "<QUEUE_NAME>"
@@ -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 @@ Puedes usar estos permisos para recibir mensajes, incluso si `--disable-local-au
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>"

View File

@@ -4,7 +4,7 @@
## Información Básica
Azure Queue Storage es un servicio en la plataforma de nube Azure de Microsoft diseñado para la **comunicación asíncrona y desacoplada** entre componentes de aplicación. Permite almacenar un número ilimitado de mensajes, cada uno de hasta 64 KB de tamaño, y soporta operaciones como crear y eliminar colas, agregar, recuperar, actualizar y eliminar mensajes, así como gestionar metadatos y políticas de acceso. Aunque típicamente procesa mensajes en un orden de primero en entrar, primero en salir (FIFO), no se garantiza un FIFO estricto.
Azure Queue Storage es un servicio en la plataforma de nube Azure de Microsoft diseñado para la cola de mensajes entre componentes de la aplicación, **permitiendo la comunicación asíncrona y desacoplamiento**. Te permite almacenar un número ilimitado de mensajes, cada uno de hasta 64 KB de tamaño, y soporta operaciones como crear y eliminar colas, agregar, recuperar, actualizar y eliminar mensajes, así como gestionar metadatos y políticas de acceso. Aunque típicamente procesa mensajes de manera primero en entrar, primero en salir (FIFO), no se garantiza un FIFO estricto.
### Enumeración

View File

@@ -4,7 +4,7 @@
## Service Bus
Azure Service Bus es un **servicio de mensajería** basado en la nube diseñado para habilitar una **comunicación confiable entre diferentes partes de una aplicación o aplicaciones separadas**. Actúa como un intermediario seguro, asegurando que los mensajes se entreguen de manera segura, incluso si el remitente y el receptor no están operando simultáneamente. Al desacoplar sistemas, permite que las aplicaciones funcionen de manera independiente mientras aún intercambian datos o instrucciones. Es particularmente útil para escenarios que requieren balanceo de carga entre múltiples trabajadores, entrega confiable de mensajes o coordinación compleja, como procesar tareas en orden o gestionar el acceso de manera segura.
Azure Service Bus es un **servicio de mensajería** basado en la nube diseñado para permitir una **comunicación confiable entre diferentes partes de una aplicación o aplicaciones separadas**. Actúa como un intermediario seguro, asegurando que los mensajes se entreguen de manera segura, incluso si el remitente y el receptor no están operando simultáneamente. Al desacoplar sistemas, permite que las aplicaciones funcionen de manera independiente mientras aún intercambian datos o instrucciones. Es particularmente útil para escenarios que requieren balanceo de carga entre múltiples trabajadores, entrega confiable de mensajes o coordinación compleja, como procesar tareas en orden o gestionar el acceso de manera segura.
### Key Concepts
@@ -47,10 +47,10 @@ El parámetro **`--disable-local-auth`** de az cli se utiliza para controlar si
### Regla de Autorización / Política SAS
Las Políticas SAS definen los permisos de acceso para las entidades de Azure Service Bus en el espacio de nombres (el más importante), colas y temas. Cada política tiene los siguientes componentes:
Las Políticas SAS definen los permisos de acceso para las entidades del espacio de nombres de Azure Service Bus (la más importante), colas y temas. Cada política tiene los siguientes componentes:
- **Permissions**: Casillas de verificación para especificar niveles de acceso:
- Manage: Concede control total sobre la entidad, incluyendo la configuración y gestión de permisos.
- Manage: Otorga control total sobre la entidad, incluyendo la configuración y gestión de permisos.
- Send: Permite enviar mensajes a la entidad.
- Listen: Permite recibir mensajes de la entidad.
- **Primary and Secondary Keys**: Estas son claves criptográficas utilizadas para generar tokens seguros para autenticar el acceso.

View File

@@ -33,12 +33,12 @@ Ten en cuenta que si se permite cualquier autenticación SQL, se necesita indica
**Cifrado:**
- Se llama "Cifrado de datos transparente" y cifra bases de datos, copias de seguridad y registros en reposo.
- Como siempre, se utiliza una clave gestionada por Azure de forma predeterminada, pero también se podría usar una clave de cifrado gestionada por el cliente (CMEK).
- Como siempre, se utiliza una clave gestionada por Azure de forma predeterminada, pero también se podría utilizar una clave de cifrado gestionada por el cliente (CMEK).
**Identidades Gestionadas:**
- Es posible asignar MIs gestionadas por el sistema y por el usuario.
- Se utilizan para acceder a la clave de cifrado (si se usa un CMEK) y otros servicios desde las bases de datos.
- Si se asignan más de un UMI, es posible indicar cuál usar como predeterminado.
- Se utilizan para acceder a la clave de cifrado (si se utiliza un CMEK) y otros servicios desde las bases de datos.
- Si se asignan más de un UMI, es posible indicar cuál se utilizará por defecto.
- Es posible configurar una identidad de cliente federada para acceso entre inquilinos.
**Microsoft Defender:**
@@ -75,15 +75,15 @@ Una base de datos SQL podría ser parte de un **pool elástico**. Los pools elá
#### Seguridad a Nivel de Columna (Enmascaramiento) y Seguridad a Nivel de Fila en Azure SQL
El enmascaramiento de datos **dinámico de Azure SQL** es una característica que ayuda a **proteger información sensible ocultándola** de usuarios no autorizados. En lugar de alterar los datos reales, enmascara dinámicamente los datos mostrados, asegurando que detalles sensibles como números de tarjetas de crédito estén oscurecidos.
El enmascaramiento de datos **dinámico de Azure SQL** es una característica que ayuda a **proteger información sensible ocultándola** de usuarios no autorizados. En lugar de alterar los datos reales, enmascara dinámicamente los datos mostrados, asegurando que detalles sensibles como números de tarjetas de crédito estén ocultos.
El **Enmascaramiento de Datos Dinámico** afecta a todos los usuarios excepto a los que están desmascarados (se necesita indicar a estos usuarios) y a los administradores. Tiene la opción de configuración que especifica qué usuarios de SQL están exentos del enmascaramiento de datos dinámico, con **administradores siempre excluidos**.
El **Enmascaramiento de Datos Dinámico** afecta a todos los usuarios excepto a aquellos que están desmascarados (se necesita indicar a estos usuarios) y a los administradores. Tiene la opción de configuración que especifica qué usuarios de SQL están exentos del enmascaramiento de datos dinámico, con **administradores siempre excluidos**.
La **Seguridad a Nivel de Fila (RLS) de Azure SQL** es una característica que **controla qué filas un usuario puede ver o modificar**, asegurando que cada usuario solo vea los datos relevantes para él. Al crear políticas de seguridad con predicados de filtro o bloqueo, las organizaciones pueden hacer cumplir un acceso granular a nivel de base de datos.
La **Seguridad a Nivel de Fila (RLS) de Azure SQL** es una característica que **controla qué filas un usuario puede ver o modificar**, asegurando que cada usuario solo vea los datos relevantes para él. Al crear políticas de seguridad con predicados de filtro o bloqueo, las organizaciones pueden hacer cumplir un acceso detallado a nivel de base de datos.
### Azure SQL Managed Instance
**Azure SQL Managed Instances** son para despliegues a gran escala, de toda la instancia de SQL Server. Proporciona casi un 100% de compatibilidad con el último motor de base de datos SQL Server en las instalaciones (Edición Empresarial), que proporciona una implementación nativa de red virtual (VNet) que aborda preocupaciones de seguridad comunes, y un modelo de negocio favorable para los clientes de SQL Server en las instalaciones.
**Azure SQL Managed Instances** son para despliegues a gran escala, de toda la instancia de SQL Server. Proporciona casi un 100% de compatibilidad con el último motor de base de datos SQL Server en las instalaciones (Edición Empresarial), que proporciona una implementación nativa de red virtual (VNet) que aborda preocupaciones comunes de seguridad, y un modelo de negocio favorable para los clientes de SQL Server en las instalaciones.
### Azure SQL Virtual Machines
@@ -232,7 +232,7 @@ Get-AzSqlVM
{{#endtab}}
{{#endtabs}}
Además, si deseas enumerar el Dynamic Data Masking y las políticas de Row Level dentro de la base de datos, puedes consultar:
Además, si deseas enumerar el enmascaramiento dinámico de datos y las políticas a nivel de fila dentro de la base de datos, puedes consultar:
```sql
--Enumerates the masked columns
SELECT
@@ -301,4 +301,10 @@ sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passwork
../az-post-exploitation/az-sql-post-exploitation.md
{{#endref}}
### Persistencia
{{#ref}}
../az-persistence/az-sql-persistance.md
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}