From 0dec7967dc7796e55b724bf2244271dc9ed53555 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 17 Feb 2025 12:01:45 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/aws-security/aws-services/aws-organiza --- src/SUMMARY.md | 6 +- .../aws-services/aws-organizations-enum.md | 4 +- .../aws-services/aws-sqs-and-sns-enum.md | 4 +- .../az-persistence/az-queue-persistance.md | 8 +- .../az-queue-post-exploitation.md | 14 +- .../az-servicebus-post-exploitation.md | 29 +- .../az-sql-post-exploitation.md | 49 +++- .../az-container-instances-privesc.md | 64 ----- .../az-queue-privesc.md | 6 +- .../az-servicebus-privesc.md | 269 +++++++++++------- .../az-privilege-escalation/az-sql-privesc.md | 29 +- .../az-services/az-container-instances.md | 45 --- .../az-services/az-queue-enum.md | 6 +- .../az-services/az-servicebus-enum.md | 57 ++-- .../azure-security/az-services/az-sql.md | 120 +++++--- .../gcp-compute-instance.md | 12 +- 16 files changed, 408 insertions(+), 314 deletions(-) delete mode 100644 src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md delete mode 100644 src/pentesting-cloud/azure-security/az-services/az-container-instances.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 478e28676..c53000a33 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -292,7 +292,7 @@ - [AWS - KMS Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-kms-privesc.md) - [AWS - Lambda Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-lambda-privesc.md) - [AWS - Lightsail Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-lightsail-privesc.md) - - [AWS - Macie Enum](pentesting-cloud/aws-security/aws-privilege-escalation/aws-macie-privesc.md) + - [AWS - Macie Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-macie-privesc.md) - [AWS - Mediapackage Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-mediapackage-privesc.md) - [AWS - MQ Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-mq-privesc.md) - [AWS - MSK Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-msk-privesc.md) @@ -415,7 +415,7 @@ - [Az - Azure App Services](pentesting-cloud/azure-security/az-services/az-app-services.md) - [Az - Cloud Shell](pentesting-cloud/azure-security/az-services/az-cloud-shell.md) - [Az - Container Registry](pentesting-cloud/azure-security/az-services/az-container-registry.md) - - [Az - Container Instances](pentesting-cloud/azure-security/az-services/az-container-instances.md) + - [Az - Container Instances, Apps & Jobs](pentesting-cloud/azure-security/az-services/az-container-instances-apps-jobs.md) - [Az - CosmosDB](pentesting-cloud/azure-security/az-services/az-cosmosDB.md) - [Az - Intune](pentesting-cloud/azure-security/az-services/intune.md) - [Az - File Shares](pentesting-cloud/azure-security/az-services/az-file-shares.md) @@ -470,7 +470,7 @@ - [Az - App Services Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-app-services-privesc.md) - [Az - Automation Accounts Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md) - [Az - Container Registry Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-container-registry-privesc.md) - - [Az - Container Instances Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md) + - [Az - Container Instances, Apps & Jobs Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-apps-jobs-privesc.md) - [Az - CosmosDB Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md) - [Az - EntraID Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md) - [Az - Conditional Access Policies & MFA Bypass](pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md) diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md index aee0e8b5b..9542e59da 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md @@ -1,4 +1,4 @@ -# AWS - Enumeración de Organizaciones +# AWS - Organizations Enum {{#include ../../../banners/hacktricks-training.md}} @@ -40,6 +40,6 @@ aws iam get-account-summary ``` ## Referencias -- https://aws.amazon.com/organizations/ +- [https://aws.amazon.com/organizations/](https://aws.amazon.com/organizations/) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md index 6cb4413cb..1b9893816 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md @@ -18,7 +18,7 @@ aws sqs receive-message --queue-url aws sqs send-message --queue-url --message-body ``` > [!CAUTION] -> Además, incluso si el `--queue-url` contiene la región, asegúrate de especificar la región correcta en **`--region`** o recibirás un error que parece indicar que no tienes acceso, pero el problema es la región. +> Además, incluso si el `--queue-url` contiene la región, asegúrate de especificar la región correcta en **`--region`** o recibirás un error que indica que no tienes acceso, pero el problema es la región. #### Acceso No Autenticado @@ -46,6 +46,6 @@ aws sqs send-message --queue-url --message-body ## Referencias -- https://docs.aws.amazon.com/cdk/api/v2/python/aws\_cdk.aws\_sqs/README.html +- [https://docs.aws.amazon.com/cdk/api/v2/python/aws\_cdk.aws\_sqs/README.html](https://docs.aws.amazon.com/cdk/api/v2/python/aws\_cdk.aws\_sqs/README.html) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md b/src/pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md index ed0c83382..977779153 100644 --- a/src/pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md +++ b/src/pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md @@ -12,7 +12,7 @@ Para más información, consulta: ### 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. 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 cola para habilitar ataques adicionales. +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. ```bash az storage queue create --name --account-name @@ -22,8 +22,8 @@ az storage queue policy set --name --permissions rwd --expiry 2024- ``` ## Referencias -- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues -- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api -- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes +- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues) +- [https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api) +- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md index 88a2f5aef..c1543de3e 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md @@ -12,7 +12,7 @@ Para más información, consulta: ### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read` -Un atacante con este permiso puede ver mensajes de una Azure Storage Queue. Esto permite al atacante ver el contenido de los mensajes sin marcarlos como procesados o alterar su estado. Esto podría llevar a un acceso no autorizado a información sensible, permitiendo la exfiltración de datos o la recopilación de inteligencia para futuros ataques. +Un atacante con este permiso puede ver mensajes de una Azure Storage Queue. Esto permite al atacante ver el contenido de los mensajes sin marcarlos como procesados o alterar su estado. Esto podría llevar a un acceso no autorizado a información sensible, permitiendo la exfiltración de datos o la recopilación de inteligencia para ataques posteriores. ```bash az storage message peek --queue-name --account-name ``` @@ -26,7 +26,7 @@ az storage message get --queue-name --account-name --content "Injected malicious message" --account-name ``` @@ -46,13 +46,13 @@ az storage message update --queue-name \ ``` ### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/delete` -Este permiso permite a un atacante eliminar colas dentro de la cuenta de almacenamiento. Al aprovechar esta capacidad, un atacante puede eliminar permanentemente colas y todos sus mensajes asociados, causando una interrupción significativa en los flujos de trabajo y resultando en una pérdida crítica de datos para las aplicaciones que dependen de las colas afectadas. Esta acción también se puede utilizar para sabotear servicios al eliminar componentes esenciales del sistema. +Este permiso permite a un atacante eliminar colas dentro de la cuenta de almacenamiento. Al aprovechar esta capacidad, un atacante puede eliminar permanentemente colas y todos sus mensajes asociados, causando una interrupción significativa en los flujos de trabajo y resultando en una pérdida crítica de datos para las aplicaciones que dependen de las colas afectadas. Esta acción también puede ser utilizada para sabotear servicios al eliminar componentes esenciales del sistema. ```bash az storage queue delete --name --account-name ``` ### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/delete` -Con este permiso, un atacante puede eliminar todos los mensajes de una Azure Storage Queue. Esta acción elimina todos los mensajes, interrumpiendo flujos de trabajo y causando pérdida de datos para los sistemas dependientes de la cola. +Con este permiso, un atacante puede eliminar todos los mensajes de una Cola de Almacenamiento de Azure. Esta acción elimina todos los mensajes, interrumpiendo flujos de trabajo y causando pérdida de datos para los sistemas dependientes de la cola. ```bash az storage message clear --queue-name --account-name ``` @@ -68,8 +68,8 @@ az storage queue policy set --name --permissions rwd --expiry 2024- ``` ## Referencias -- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues -- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api -- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes +- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues) +- [https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api) +- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md index 7788b738b..d5c542783 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md @@ -22,7 +22,7 @@ Un atacante con este permiso puede eliminar un tema de Azure Service Bus. Esta a ```bash az servicebus topic delete --resource-group --namespace-name --name ``` -### Acciones: `Microsoft.ServiceBus/namespaces/queues/Delete` +### Actions: `Microsoft.ServiceBus/namespaces/queues/Delete` Un atacante con este permiso puede eliminar una cola de Azure Service Bus. Esta acción elimina la cola y todos los mensajes dentro de ella, lo que puede causar la pérdida de datos críticos y interrumpir sistemas y flujos de trabajo dependientes de la cola. ```bash @@ -34,23 +34,16 @@ Un atacante con este permiso puede eliminar una suscripción de Azure Service Bu ```bash az servicebus topic subscription delete --resource-group --namespace-name --topic-name --name ``` -### Acciones: `Microsoft.ServiceBus/namespaces/write` & `Microsoft.ServiceBus/namespaces/read` - -Un atacante con permisos para crear o modificar namespaces de Azure Service Bus puede explotar esto para interrumpir operaciones, desplegar recursos no autorizados o exponer datos sensibles. Pueden alterar configuraciones críticas como habilitar el acceso a la red pública, degradar configuraciones de cifrado o cambiar SKUs para degradar el rendimiento o aumentar costos. Además, podrían deshabilitar la autenticación local, manipular ubicaciones de réplicas o ajustar versiones de TLS para debilitar los controles de seguridad, lo que convierte la mala configuración de namespaces en un riesgo significativo de post-explotación. -```bash -az servicebus namespace create --resource-group --name --location -az servicebus namespace update --resource-group --name --tags -``` ### Acciones: `Microsoft.ServiceBus/namespaces/queues/write` (`Microsoft.ServiceBus/namespaces/queues/read`) -Un atacante con permisos para crear o modificar colas de Azure Service Bus (para modificar la cola también necesitarás la Acción: `Microsoft.ServiceBus/namespaces/queues/read`) puede explotar esto para interceptar datos, interrumpir flujos de trabajo o habilitar acceso no autorizado. Pueden alterar configuraciones críticas como el reenvío de mensajes a puntos finales maliciosos, ajustar el TTL de los mensajes para retener o eliminar datos de manera inapropiada, o habilitar el dead-lettering para interferir con el manejo de errores. Además, podrían manipular los tamaños de las colas, las duraciones de bloqueo o los estados para interrumpir la funcionalidad del servicio o evadir la detección, lo que convierte esto en un riesgo significativo de post-explotación. +Un atacante con permisos para crear o modificar colas de Azure Service Bus (para modificar la cola también necesitarás la Acción: `Microsoft.ServiceBus/namespaces/queues/read`) puede explotar esto para interceptar datos, interrumpir flujos de trabajo o habilitar acceso no autorizado. Pueden alterar configuraciones críticas como el reenvío de mensajes a puntos finales maliciosos, ajustar el TTL de los mensajes para retener o eliminar datos de manera inapropiada, o habilitar el manejo de mensajes no entregados para interferir con el manejo de errores. Además, podrían manipular los tamaños de las colas, las duraciones de bloqueo o los estados para interrumpir la funcionalidad del servicio o evadir la detección, lo que convierte esto en un riesgo significativo de post-explotación. ```bash az servicebus queue create --resource-group --namespace-name --name az servicebus queue update --resource-group --namespace-name --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 trabajo 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. +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 --namespace-name --name az servicebus topic update --resource-group --namespace-name --name @@ -64,7 +57,7 @@ az servicebus topic subscription update --resource-group --n ``` ### Acciones: `AuthorizationRules` Enviar y Recibir Mensajes -Echa un vistazo aquí: +Mira aquí: {{#ref}} ../az-privilege-escalation/az-queue-privesc.md @@ -72,12 +65,12 @@ Echa un vistazo aquí: ## Referencias -- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues -- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api -- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes -- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless -- https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus -- https://learn.microsoft.com/en-us/cli/azure/servicebus/namespace?view=azure-cli-latest -- https://learn.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest +- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues) +- [https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api) +- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes) +- [https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless) +- [https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus) +- [https://learn.microsoft.com/en-us/cli/azure/servicebus/namespace?view=azure-cli-latest](https://learn.microsoft.com/en-us/cli/azure/servicebus/namespace?view=azure-cli-latest) +- [https://learn.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest](https://learn.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md index f8ee798c5..94bd5ebc1 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md @@ -19,6 +19,16 @@ az sql db create --resource-group --server --name # Update Database az sql db update --resource-group --server --name --max-size +``` +Con estos permisos (`Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/databases/write`) puedes restaurar una base de datos eliminada: +```bash +az sql db restore \ +--dest-name \ +--name \ +--resource-group \ +--server \ +--deleted-time "" + ``` ### `Microsoft.Sql/servers/elasticPools/write` && `Microsoft.Sql/servers/elasticPools/read` @@ -42,7 +52,7 @@ az sql elastic-pool update \ ``` ### `Microsoft.Sql/servers/auditingSettings/read` && `Microsoft.Sql/servers/auditingSettings/write` -Con este permiso, puedes modificar o habilitar la configuración de auditoría en un Azure SQL Server. Esto podría permitir a un atacante o usuario autorizado manipular las configuraciones de auditoría, potencialmente cubriendo sus huellas o redirigiendo los registros de auditoría a una ubicación bajo su control. Esto puede obstaculizar la monitorización de seguridad o permitir que se realice un seguimiento de las acciones. NOTA: Para habilitar la auditoría para un Azure SQL Server utilizando Blob Storage, debes adjuntar una cuenta de almacenamiento donde se puedan guardar los registros de auditoría. +Con este permiso, puedes modificar o habilitar la configuración de auditoría en un Azure SQL Server. Esto podría permitir a un atacante o usuario autorizado manipular las configuraciones de auditoría, potencialmente cubriendo sus huellas o redirigiendo los registros de auditoría a una ubicación bajo su control. Esto puede obstaculizar la monitorización de seguridad o permitir que se mantenga un seguimiento de las acciones. NOTA: Para habilitar la auditoría para un Azure SQL Server utilizando Blob Storage, debes adjuntar una cuenta de almacenamiento donde se puedan guardar los registros de auditoría. ```bash az sql server audit-policy update \ --server \ @@ -87,4 +97,41 @@ az sql db import --admin-user \ --storage-key \ --storage-uri `https://.blob.core.windows.net/bacpac-container/MyDatabase.bacpac` ``` +### `Microsoft.Sql/servers/connectionPolicies/write` && `Microsoft.Sql/servers/connectionPolicies/read` + +Con estos permisos, un usuario puede modificar y recuperar las políticas de conexión de un servidor Azure SQL. Estos permisos permiten a alguien cambiar cómo los clientes se conectan al servidor, eligiendo entre métodos como redirección o proxy, lo que podría ser explotado para debilitar la seguridad, redirigir el tráfico o interceptar datos sensibles si se configura incorrectamente. +```bash +az sql server conn-policy update \ +--resource-group \ +--server \ +--connection-policy +``` +### `Microsoft.Sql/servers/keys/write` && `Microsoft.Sql/servers/keys/read` + +Con estos permisos, un usuario puede actualizar y recuperar claves de cifrado asociadas con un Azure SQL Server. Estas claves se utilizan a menudo para asegurar datos sensibles a través del cifrado, por lo que manipularlas podría comprometer la seguridad de los datos al permitir la descifrado no autorizado o cambios en la rotación de claves. +```bash +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` + +Este permiso permite deshabilitar el Ledger Digest para una base de datos de Azure SQL, lo que detiene la carga periódica de registros de resumen criptográfico en Azure Blob Storage que verifica la integridad de los datos. +```bash +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` + +Este permiso permite a un usuario autorizado o atacante habilitar, deshabilitar o modificar la configuración de Cifrado de Datos Transparente (TDE) en una base de datos de Azure SQL, lo que podría afectar la seguridad de los datos al alterar las configuraciones de cifrado. +```bash +az sql db tde set \ +--database \ +--resource-group \ +--server \ +--status +``` {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md deleted file mode 100644 index f8061ff0b..000000000 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md +++ /dev/null @@ -1,64 +0,0 @@ -# Az - Azure Container Instances Privesc - -{{#include ../../../banners/hacktricks-training.md}} - -## Azure Container Instances - -Para más información, consulta: - -{{#ref}} -../az-services/az-container-instances.md -{{#endref}} - -### `Microsoft.ContainerInstance/containerGroups/read`, `Microsoft.ContainerInstance/containerGroups/containers/exec/action` - -Estos permisos permiten al usuario **ejecutar un comando** en un contenedor en ejecución. Esto se puede utilizar para **escalar privilegios** en el contenedor si tiene alguna identidad administrada adjunta. Por supuesto, también es posible acceder al código fuente y a cualquier otra información sensible almacenada dentro del contenedor. - -Para ejecutar un `ls` y obtener la salida es tan simple como: -```bash -az container exec --name --resource-group --exec-command 'ls' -``` -También es posible **leer la salida** del contenedor con: -```bash -az container attach --name --resource-group -``` -O obtener los registros con: -```bash -az container logs --name --resource-group -``` -### `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` - -Estos permisos permiten **adjuntar una identidad administrada por el usuario** a un grupo de contenedores. Esto es muy útil para escalar privilegios en el contenedor. - -Para adjuntar una identidad administrada por el usuario a un grupo de contenedores: -```bash -az rest \ ---method PATCH \ ---url "/subscriptions//resourceGroups//providers/Microsoft.ContainerInstance/containerGroups/?api-version=2021-09-01" \ ---body '{ -"identity": { -"type": "UserAssigned", -"userAssignedIdentities": { -"/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/": {} -} -} -}' \ ---headers "Content-Type=application/json" -``` -### `Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` - -Estos permisos permiten **crear o actualizar un grupo de contenedores** con una **identidad administrada por el usuario** adjunta a él. Esto es muy útil para escalar privilegios en el contenedor. -```bash -az container create \ ---resource-group > \ ---name nginx2 \ ---image mcr.microsoft.com/oss/nginx/nginx:1.9.15-alpine \ ---assign-identity "/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/" \ ---restart-policy OnFailure \ ---os-type Linux \ ---cpu 1 \ ---memory 1.0 -``` -Además, también es posible actualizar un grupo de contenedores existente añadiendo, por ejemplo, el argumento **`--command-line`** con un shell reverso. - -{{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md index 546a04908..df4ac6f60 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md @@ -56,8 +56,8 @@ az storage queue policy set --name --permissions rwd --expiry 2024- ``` ## Referencias -- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues -- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api -- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes +- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues) +- [https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api) +- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md index fb2f2594f..6952477b0 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md @@ -41,7 +41,7 @@ az servicebus namespace authorization-rule update \ ``` ### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action O Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action -Temas y colas específicos dentro de un espacio de nombres de Service Bus pueden tener sus propias reglas de autorización, que se pueden usar para controlar el acceso a la entidad. Al tener estos permisos, puedes **recuperar o regenerar las claves para estas reglas de autorización locales**, lo que te permite autenticarte como la entidad y potencialmente enviar o recibir mensajes, gestionar suscripciones o 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. +Temas y colas específicos dentro de un espacio de nombres de Service Bus pueden tener sus propias reglas de autorización, que se pueden usar para controlar el acceso a la entidad. Al tener estos permisos, puedes **recuperar o regenerar las claves para estas reglas de autorización locales**, lo que te permite autenticarte como la entidad y potencialmente enviar o recibir mensajes, gestionar suscripciones o 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 mensajería. ```bash # List keys (topics) az servicebus topic authorization-rule keys list --resource-group --namespace-name --topic-name --name @@ -84,127 +84,202 @@ az servicebus namespace update --disable-local-auth false -n -- ``` ### Enviar mensajes con claves (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/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 usuarios válidos o inyectar datos maliciosos en el flujo de trabajo de mensajería. +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. ```python -#You need to install the following libraries -#pip install azure-servicebus -#pip install aiohttp -#pip install azure-identity - import asyncio from azure.servicebus.aio import ServiceBusClient from azure.servicebus import ServiceBusMessage -# Constants NAMESPACE_CONNECTION_STR = "" -TOPIC_NAME = "" +TOPIC_OR_QUEUE_NAME = "" -# Function to send a single message to a Service Bus topic -async def send_individual_message(publisher): -# Prepare a single message with updated content -single_message = ServiceBusMessage("Hacktricks-Training: Single Item") -# Send the message to the topic -await publisher.send_messages(single_message) -print("Sent a single message containing 'Hacktricks-Training'") +async def send_message(): +async with ServiceBusClient.from_connection_string(NAMESPACE_CONNECTION_STR) as client: +async with client.get_topic_sender(topic_name=TOPIC_OR_QUEUE_NAME) as sender: +await sender.send_messages(ServiceBusMessage("Hacktricks-Training: Single Item")) +print("Sent message") -# Function to send multiple messages to a Service Bus topic -async def send_multiple_messages(publisher): -# Generate a collection of messages with updated content -message_list = [ServiceBusMessage(f"Hacktricks-Training: Item {i+1} in list") for i in range(5)] -# Send the entire collection of messages to the topic -await publisher.send_messages(message_list) -print("Sent a list of 5 messages containing 'Hacktricks-Training'") +asyncio.run(send_message()) +``` +Además, puedes enviar mensajes con az rest; en este caso, necesitas generar un token SAS para usar. +```python +import time, urllib.parse, hmac, hashlib, base64 -# Function to send a grouped batch of messages to a Service Bus topic -async def send_grouped_messages(publisher): -# Send a grouped batch of messages with updated content -async with publisher: -grouped_message_batch = await publisher.create_message_batch() -for i in range(10): -try: -# Append a message to the batch with updated content -grouped_message_batch.add_message(ServiceBusMessage(f"Hacktricks-Training: Item {i+1}")) -except ValueError: -# If batch reaches its size limit, handle by creating another batch -break -# Dispatch the batch of messages to the topic -await publisher.send_messages(grouped_message_batch) -print("Sent a batch of 10 messages containing 'Hacktricks-Training'") +def generate_sas_token(uri, key_name, key, expiry_in_seconds=3600): +expiry = int(time.time() + expiry_in_seconds) +string_to_sign = urllib.parse.quote_plus(uri) + "\n" + str(expiry) +signed_hmac_sha256 = hmac.new(key.encode('utf-8'), string_to_sign.encode('utf-8'), hashlib.sha256).digest() +signature = urllib.parse.quote_plus(base64.b64encode(signed_hmac_sha256)) +token = f"SharedAccessSignature sr={urllib.parse.quote_plus(uri)}&sig={signature}&se={expiry}&skn={key_name}" +return token -# Main function to execute all tasks -async def execute(): -# Instantiate the Service Bus client with the connection string -async with ServiceBusClient.from_connection_string( -conn_str=NAMESPACE_CONNECTION_STR, -logging_enable=True) as sb_client: -# Create a topic sender for dispatching messages to the topic -publisher = sb_client.get_topic_sender(topic_name=TOPIC_NAME) -async with publisher: -# Send a single message -await send_individual_message(publisher) -# Send multiple messages -await send_multiple_messages(publisher) -# Send a batch of messages -await send_grouped_messages(publisher) +# Replace these with your actual values +resource_uri = "https://.servicebus.windows.net/" +key_name = "" +primary_key = "" -# Run the asynchronous execution -asyncio.run(execute()) -print("Messages Sent") -print("----------------------------") +sas_token = generate_sas_token(resource_uri, key_name, primary_key) +print(sas_token) +``` + +```bash +az rest --method post \ +--uri "https://.servicebus.windows.net//messages" \ +--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=https%3A%2F%2F.servicebus.windows.net%2F&sig=&se=&skn=" \ +--body "" ``` ### Recibir con claves (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/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 los flujos de trabajo de la aplicación. +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 -#You need to install the following libraries -#pip install azure-servicebus -#pip install aiohttp -#pip install azure-identity - import asyncio from azure.servicebus.aio import ServiceBusClient -NAMESPACE_CONNECTION_STR = "" -TOPIC_NAME = "" -SUBSCRIPTION_NAME = "" #Topic Subscription +CONN_STR = "" +QUEUE = "" -# Function to receive and process messages from a Service Bus subscription -async def receive_and_process_messages(): -# Create a Service Bus client using the connection string -async with ServiceBusClient.from_connection_string( -conn_str=NAMESPACE_CONNECTION_STR, -logging_enable=True) as servicebus_client: +# For topics/subscriptions, you would use: +# TOPIC = "" +# SUBSCRIPTION = "" -# Get the Subscription Receiver object for the specified topic and subscription -receiver = servicebus_client.get_subscription_receiver( -topic_name=TOPIC_NAME, -subscription_name=SUBSCRIPTION_NAME, -max_wait_time=5 -) - -async with receiver: -# Receive messages with a defined maximum wait time and count -received_msgs = await receiver.receive_messages( -max_wait_time=5, -max_message_count=20 -) -for msg in received_msgs: -print("Received: " + str(msg)) -# Complete the message to remove it from the subscription +async def receive(): +async with ServiceBusClient.from_connection_string(CONN_STR) as client: +# For a queue receiver: +async with client.get_queue_receiver(queue_name=QUEUE, max_wait_time=5) as receiver: +msgs = await receiver.receive_messages(max_wait_time=5, max_message_count=20) +for msg in msgs: +print("Received:", msg) await receiver.complete_message(msg) -# Run the asynchronous message processing function -asyncio.run(receive_and_process_messages()) -print("Message Receiving Completed") -print("----------------------------") +# For a topic/subscription receiver (commented out): +# async with client.get_subscription_receiver(topic_name=TOPIC, subscription_name=SUBSCRIPTION, max_wait_time=5) as receiver: +# msgs = await receiver.receive_messages(max_wait_time=5, max_message_count=20) +# for msg in msgs: +# print("Received:", msg) +# await receiver.complete_message(msg) + +asyncio.run(receive()) +print("Done receiving messages") +``` +Además, puedes enviar mensajes con az rest; en este caso, necesitas generar un token SAS para usar. +```python +import time, urllib.parse, hmac, hashlib, base64 + +def generate_sas_token(uri, key_name, key, expiry_in_seconds=3600): +expiry = int(time.time() + expiry_in_seconds) +string_to_sign = urllib.parse.quote_plus(uri) + "\n" + str(expiry) +signature = urllib.parse.quote_plus(base64.b64encode( +hmac.new(key.encode('utf-8'), string_to_sign.encode('utf-8'), hashlib.sha256).digest() +)) +token = f"SharedAccessSignature sr={urllib.parse.quote_plus(uri)}&sig={signature}&se={expiry}&skn={key_name}" +return token + +# Example usage: +resource_uri = "https://.servicebus.windows.net/queue" # For queue +# resource_uri = "https://.servicebus.windows.net//subscriptions/" # For topic subscription +sas_token = generate_sas_token(resource_uri, "", "") +print(sas_token) + +``` +Para una cola, puedes obtener o ver el mensaje (obtener un mensaje lo eliminaría, mientras que ver no lo hará): +```bash +#Get a message +az rest --method post \ +--uri "https://.servicebus.windows.net//messages/head?timeout=60" \ +--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" + +#Peek a message +az rest --method get \ +--uri "https://.servicebus.windows.net//messages/head?peekonly=true&timeout=60" \ +--headers "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" + +#You can select the meesage changing the field PreviousSequenceNumber +az rest --method get \ +--uri "https://.servicebus.windows.net//messages?timeout=60&PreviousSequenceNumber=&api-version=2017-04" \ +--headers "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" +``` +Por un tema: +```bash +#Get a message +az rest --method post \ +--uri "https://.servicebus.windows.net//subscriptions//messages/head?timeout=60" \ +--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" + +#Peek a message +az rest --method get \ +--uri "https://.servicebus.windows.net//subscriptions//messages/head?timeout=60&api-version=2017-04" \ +--headers "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" + +#You can select the meesage changing the field PreviousSequenceNumber +az rest --method get \ +--uri "https://.servicebus.windows.net//subscriptions//messages?timeout=60&PreviousSequenceNumber=&api-version=2017-04" \ +--headers "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" +``` +### Enviar mensajes. DataActions: `Microsoft.ServiceBus/namespaces/messages/send/action` + +Puedes usar estos permisos para enviar mensajes, incluso si `--disable-local-auth` está configurado como verdadero. +```python +import asyncio +from azure.identity.aio import DefaultAzureCredential +from azure.servicebus.aio import ServiceBusClient +from azure.servicebus import ServiceBusMessage + +NS = ".servicebus.windows.net" # Your namespace +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_queue_sender(queue_name=QUEUE) as sender: +await sender.send_messages(ServiceBusMessage("Single Message")) +print("Sent a single message") +await credential.close() + +if __name__ == "__main__": +asyncio.run(run()) +``` +### Recibir Mensajes. DataActions: `Microsoft.ServiceBus/namespaces/messages/receive/action` + +Puedes usar estos permisos para recibir mensajes, incluso si `--disable-local-auth` está configurado como verdadero. +```python +import asyncio +from azure.identity.aio import DefaultAzureCredential +from azure.servicebus.aio import ServiceBusClient + +NS = ".servicebus.windows.net" +QUEUE = "" + +# For a topic subscription, uncomment and set these values: +# TOPIC = "" +# SUBSCRIPTION = "" + +async def run(): +credential = DefaultAzureCredential() +async with ServiceBusClient(fully_qualified_namespace=NS, credential=credential) as client: +# Receiving from a queue: +async with client.get_queue_receiver(queue_name=QUEUE, max_wait_time=5) as receiver: +async for msg in receiver: +print("Received from Queue:", msg) +await receiver.complete_message(msg) + +# To receive from a topic subscription, uncomment the code below and comment out the queue receiver above: +# async with client.get_subscription_receiver(topic_name=TOPIC, subscription_name=SUBSCRIPTION, max_wait_time=5) as receiver: +# async for msg in receiver: +# print("Received from Topic Subscription:", msg) +# await receiver.complete_message(msg) + +await credential.close() + +asyncio.run(run()) +print("Done receiving messages") ``` ## Referencias -- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues -- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api -- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes -- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless -- https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus +- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues) +- [https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api) +- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes) +- [https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless) +- [https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md index b622c2b8c..20d283fb7 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md @@ -26,7 +26,7 @@ az sql server create \ --resource-group \ --location \ --admin-user \ ---admin-password +--admin-password ``` Además, es necesario tener habilitado el acceso público si deseas acceder desde un punto final no privado. Para habilitarlo: ```bash @@ -35,6 +35,31 @@ az sql server update \ --resource-group \ --enable-public-network true ``` +Además, con los permisos puedes habilitar la identidad asignada, operar con la identidad administrada adjunta al servidor. Por ejemplo, aquí con una identidad administrada que puede acceder a Azure Storage: +```bash +az sql server update \ +--name \ +--resource-group \ +--assign_identity +``` + +```sql +CREATE EXTERNAL DATA SOURCE ManagedIdentity +WITH ( +TYPE = BLOB_STORAGE, +LOCATION = 'https://.blob.core.windows.net/', +CREDENTIAL = ManagedIdentityCredential +); +GO + +SELECT * +FROM OPENROWSET( +BULK 'message.txt', +DATA_SOURCE = 'ManagedIdentity', +SINGLE_CLOB +) AS DataFile; +GO +``` ### `Microsoft.Sql/servers/firewallRules/write` Un atacante puede manipular las reglas del firewall en los servidores de Azure SQL para permitir el acceso no autorizado. Esto puede ser explotado para abrir el servidor a direcciones IP específicas o rangos completos de IP, incluidas IPs públicas, lo que permite el acceso a actores maliciosos. Esta actividad de post-explotación puede ser utilizada para eludir los controles de seguridad de red existentes, establecer persistencia o facilitar el movimiento lateral dentro del entorno al exponer recursos sensibles. @@ -74,7 +99,7 @@ NOTA: Es necesario tener habilitado el acceso público. ### `Microsoft.Sql/servers/administrators/write` && `Microsoft.Sql/servers/administrators/read` -Con estos permisos puedes escalar privilegios en un entorno de Azure SQL Server accediendo a bases de datos SQL y recuperando información crítica. Usando el comando a continuación, un atacante o usuario autorizado puede establecerse a sí mismo o a otra cuenta como el administrador de Azure AD. Si "Microsoft Entra Authentication Only" está habilitado, puedes acceder al servidor y sus instancias. Aquí está el comando para establecer el administrador de Azure AD para un servidor SQL: +Con estos permisos puedes realizar privesc en un entorno de Azure SQL Server accediendo a bases de datos SQL y recuperando información crítica. Usando el comando a continuación, un atacante o usuario autorizado puede establecerse a sí mismo o a otra cuenta como el administrador de Azure AD. Si "Microsoft Entra Authentication Only" está habilitado, puedes acceder al servidor y sus instancias. Aquí está el comando para establecer el administrador de Azure AD para un servidor SQL: ```bash az sql server ad-admin create \ --server \ diff --git a/src/pentesting-cloud/azure-security/az-services/az-container-instances.md b/src/pentesting-cloud/azure-security/az-services/az-container-instances.md deleted file mode 100644 index bac475386..000000000 --- a/src/pentesting-cloud/azure-security/az-services/az-container-instances.md +++ /dev/null @@ -1,45 +0,0 @@ -# Az - Container Instances - -{{#include ../../../banners/hacktricks-training.md}} - -## Información Básica - -Azure Container Instances (ACI) proporcionan una **manera sin servidor y bajo demanda** de ejecutar **contenedores** en la nube de Azure. Puedes **desplegar** uno o varios contenedores en un grupo con **cómputo escalable**, **opciones de red** y la flexibilidad de conectarte a **otros servicios de Azure** (como Almacenamiento, Redes Virtuales o Registros de Contenedores). - -Dado que son cargas de trabajo **efímeras**, no necesitas gestionar la infraestructura subyacente de VM; Azure se encarga de eso por ti. Sin embargo, desde una **perspectiva de seguridad ofensiva**, es crucial entender cómo los **permisos**, **identidades**, **configuraciones de red** y **registros** pueden revelar superficies de ataque y posibles configuraciones incorrectas. - -### Configuraciones - -- Para crear un contenedor, es posible usar una imagen pública, una imagen de contenedor de un Registro de Contenedores de Azure o un repositorio externo, lo que podría **requerir configurar una contraseña** para acceder a ella. -- En cuanto a la red, también puede tener una **IP pública** o ser **puntos finales privados**. -- También es posible configurar ajustes comunes de docker como: -- **Variables de entorno** -- **Volúmenes** (incluso de Azure Files) -- **Puertos** -- **Límites de CPU y memoria** -- **Política de reinicio** -- **Ejecutar como privilegiado** -- **Línea de comando para ejecutar** -- ... - -## Enumeración - -> [!WARNING] -> Al enumerar ACI, puedes revelar configuraciones sensibles como **variables de entorno**, **detalles de red** o **identidades gestionadas**. Ten cuidado al registrarlas o mostrarlas. -```bash -# List all container instances in the subscription -az container list - -# Show detailed information about a specific container instance -az container show --name --resource-group - -# Fetch logs from a container -az container logs --name --resource-group - -# Execute a command in a running container and get the output -az container exec --name --resource-group --exec-command "ls" - -# Get yaml configuration of the container group -az container export --name --resource-group -``` - diff --git a/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md b/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md index 3bcbff284..1918102e0 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md +++ b/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md @@ -84,8 +84,8 @@ $queueMessage.Value ## Referencias -- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues -- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api -- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes +- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues) +- [https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api) +- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md b/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md index 88b21a061..efa44aee0 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md +++ b/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md @@ -6,48 +6,57 @@ 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. -### Conceptos Clave +### Key Concepts -1. **Colas:** su propósito es almacenar mensajes hasta que el receptor esté listo. +1. **Namespaces:** Un namespace en sistemas de mensajería es un contenedor lógico que organiza y gestiona componentes de mensajería, colas y temas. Proporciona un entorno aislado donde las aplicaciones pueden enviar, recibir y procesar mensajes. Las colas y los temas comparten la misma infraestructura y configuración dentro de un namespace de Service Bus, pero operan de manera independiente sin interactuar entre sí. +2. **Queues:** su propósito es almacenar mensajes hasta que el receptor esté listo. - Los mensajes están ordenados, tienen marca de tiempo y se almacenan de manera duradera. - Se entregan en modo de extracción (recuperación bajo demanda). - Soporta comunicación punto a punto. -2. **Temas:** Mensajería de publicación-suscripción para difusión. +3. **Topics:** Mensajería de publicación-suscripción para difusión. - Múltiples suscripciones independientes reciben copias de los mensajes. - Las suscripciones pueden tener reglas/filtros para controlar la entrega o agregar metadatos. - Soporta comunicación de muchos a muchos. -3. **Espacios de Nombres:** Un contenedor para todos los componentes de mensajería, colas y temas, es como tu propia porción de un poderoso clúster de Azure, proporcionando capacidad dedicada y opcionalmente abarcando tres zonas de disponibilidad. +La cadena de conexión/punto final del service bus es: +```bash +https://.servicebus.windows.net:443/ +``` ### Características Avanzadas Algunas características avanzadas son: -- **Sesiones de Mensajes**: Asegura el procesamiento FIFO y soporta patrones de solicitud-respuesta. -- **Reenvío Automático**: Transfiere mensajes entre colas o temas en el mismo espacio de nombres. -- **Cartas Muertas**: Captura mensajes no entregables para revisión. -- **Entrega Programada**: Retrasa el procesamiento de mensajes para tareas futuras. -- **Diferimiento de Mensajes**: Pospone la recuperación de mensajes hasta que esté listo. -- **Transacciones**: Agrupa operaciones en ejecución atómica. -- **Filtros y Acciones**: Aplica reglas para filtrar o anotar mensajes. -- **Eliminación Automática en Inactividad**: Elimina colas después de inactividad (mín: 5 minutos). -- **Detección de Duplicados**: Elimina mensajes duplicados durante reenvíos. -- **Eliminación por Lotes**: Elimina en bloque mensajes expirados o innecesarios. +- **Message Sessions**: Asegura el procesamiento FIFO y soporta patrones de solicitud-respuesta. +- **Auto-Forwarding**: Transfiere mensajes entre colas o temas en el mismo espacio de nombres. +- **Dead-Lettering**: Captura mensajes no entregables para revisión. +- **Scheduled Delivery**: Retrasa el procesamiento de mensajes para tareas futuras. +- **Message Deferral**: Pospone la recuperación de mensajes hasta que esté listo. +- **Transactions**: Agrupa operaciones en ejecución atómica. +- **Filters & Actions**: Aplica reglas para filtrar o anotar mensajes. +- **Auto-Delete on Idle**: Elimina colas después de inactividad (mín: 5 minutos). +- **Duplicate Detection**: Elimina mensajes duplicados durante reenvíos. +- **Batch Deletion**: Elimina en bloque mensajes expirados o innecesarios. ### Regla de Autorización / Política SAS -Las Políticas SAS definen los permisos de acceso para las entidades del espacio de nombres de Azure Service Bus (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: -- **Permisos**: Casillas de verificación para especificar niveles de acceso: -- Administrar: Otorga control total sobre la entidad, incluyendo la configuración y gestión de permisos. -- Enviar: Permite enviar mensajes a la entidad. -- Escuchar: Permite recibir mensajes de la entidad. -- **Claves Primarias y Secundarias**: Estas son claves criptográficas utilizadas para generar tokens seguros para autenticar el acceso. -- **Cadenas de Conexión Primarias y Secundarias**: Cadenas de conexión preconfiguradas que incluyen el punto final y la clave para un uso fácil en aplicaciones. -- **ID de Política SAS ARM**: La ruta del Administrador de Recursos de Azure (ARM) a la política para identificación programática. +- **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. +- 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. +- **Primary and Secondary Connection Strings**: Cadenas de conexión preconfiguradas que incluyen el punto final y la clave para un uso fácil en aplicaciones. +- **SAS Policy ARM ID**: La ruta del Administrador de Recursos de Azure (ARM) a la política para identificación programática. -### Espacio de Nombres +Es importante notar que un espacio de nombres tiene una única política SAS que afecta a cada entidad dentro de él, mientras que las colas y temas pueden tener sus propias políticas SAS individuales para un control más granular. -sku, regla de autorización, +### "--disable-local-auth" + +El parámetro --disable-local-auth se utiliza para controlar si la autenticación local (es decir, usando claves de Firma de Acceso Compartido (SAS)) está habilitada para su espacio de nombres de Service Bus. Aquí está lo que necesita saber: + +- Cuando se establece en verdadero: La autenticación local usando claves SAS está deshabilitada y se permite la autenticación de Azure Active Directory (Azure AD). +- Cuando se establece en falso: Tanto la autenticación SAS (local) como la autenticación de Azure AD están disponibles y puede usar cadenas de conexión con claves SAS para acceder a sus recursos de Service Bus. ### Enumeración diff --git a/src/pentesting-cloud/azure-security/az-services/az-sql.md b/src/pentesting-cloud/azure-security/az-services/az-sql.md index 79f0ba173..b6d50ce4b 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-sql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-sql.md @@ -6,21 +6,86 @@ Azure SQL es una familia de productos gestionados, seguros e inteligentes que utilizan el **motor de base de datos SQL Server en la nube de Azure**. Esto significa que no tienes que preocuparte por la administración física de tus servidores, y puedes concentrarte en gestionar tus datos. -Azure SQL consta de tres ofertas principales: +Azure SQL consta de cuatro ofertas principales: -1. **Azure SQL Database**: Este es un **servicio de base de datos completamente gestionado**, que te permite alojar bases de datos individuales en la nube de Azure. Ofrece inteligencia incorporada que aprende tus patrones únicos de base de datos y proporciona recomendaciones personalizadas y ajuste automático. -2. **Azure SQL Managed Instance**: Esto es para implementaciones a gran escala, de toda la instancia de SQL Server. Proporciona casi un 100% de compatibilidad con el motor de base de datos SQL Server en las instalaciones (Edición Enterprise), que ofrece 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. -3. **Azure SQL Server en Azure VMs**: Esto es Infraestructura como Servicio (IaaS) y es mejor para migraciones donde deseas **control sobre el sistema operativo y la instancia de SQL Server**, como si fuera un servidor que se ejecuta en las instalaciones. +1. **Azure SQL Server**: Azure SQL Server es un servicio de base de datos relacional gestionado que simplifica la implementación y gestión de bases de datos SQL Server, con características de seguridad y rendimiento integradas. +2. **Azure SQL Database**: Este es un **servicio de base de datos totalmente gestionado**, que te permite alojar bases de datos individuales en la nube de Azure. Ofrece inteligencia incorporada que aprende tus patrones únicos de base de datos y proporciona recomendaciones personalizadas y ajuste automático. +3. **Azure SQL Managed Instance**: Esto es para implementaciones a gran escala, de toda la instancia de SQL Server. Proporciona casi un 100% de compatibilidad con el motor de base de datos SQL Server en las instalaciones (Edición Enterprise), que ofrece 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. +4. **Azure SQL Server en Azure VMs**: Esto es Infraestructura como Servicio (IaaS) y es mejor para migraciones donde deseas **control sobre el sistema operativo y la instancia de SQL Server**, como si fuera un servidor que se ejecuta en las instalaciones. + +### Azure SQL Server + +Azure SQL Server es un sistema de gestión de bases de datos relacionales (RDBMS) que utiliza Transact-SQL para operaciones de datos y está diseñado para manejar sistemas a nivel empresarial. Ofrece características robustas para rendimiento, seguridad, escalabilidad e integración con varias aplicaciones de Microsoft. Las bases de datos de Azure SQL dependen de este servidor, ya que están construidas sobre estos servidores y es el punto de entrada para que los usuarios accedan a las bases de datos. + +#### Red + +**Conectividad de Red**: Elige si habilitar el acceso a través de un punto final público o privado. Si seleccionas Sin acceso, no se crean puntos finales hasta que se configure manualmente: +- Sin acceso: No se configuran puntos finales, bloqueando conexiones entrantes hasta que se configuren manualmente. +- Punto final público: Permite conexiones directas a través de Internet público, sujeto a reglas de firewall y otras configuraciones de seguridad. +- Punto final privado: Restringe la conectividad a una red privada. + +**Política de Conexión**: Define cómo los clientes se comunican con el servidor de base de datos SQL: +- Predeterminado: Utiliza una política de redirección para todas las conexiones de clientes desde dentro de Azure (excepto aquellas que utilizan Puntos Finales Privados) y una política de proxy para conexiones desde fuera de Azure. +- Proxy: Rutea todas las conexiones de clientes a través de la puerta de enlace de Azure SQL Database. +- Redirección: Los clientes se conectan directamente al nodo que aloja la base de datos. + +#### Métodos de Autenticación +Azure SQL admite varios métodos de autenticación para asegurar el acceso a la base de datos: + +- **Autenticación solo de Microsoft Entra**: Utiliza Microsoft Entra (anteriormente Azure AD) para la gestión de identidad centralizada y el inicio de sesión único. +- **Autenticación tanto de SQL como de Microsoft Entra**: Te permite usar la autenticación SQL tradicional junto con Microsoft Entra. +- **Autenticación SQL**: Se basa únicamente en nombres de usuario y contraseñas de SQL Server. + +#### Características de Seguridad + +Los servidores SQL tienen **Identidades Gestionadas**. Las identidades gestionadas permiten que tu servidor se autentique de forma segura con otros servicios de Azure sin almacenar credenciales. Permite acceder a otros servicios que serían identidad gestionada asignada por el sistema y ser accedidos por otros servicios con otras identidades que son identidad gestionada asignada por el usuario. Algunos de los servicios a los que SQL puede acceder son Azure Storage Account(V2), Azure Data Lake Storage Gen2, SQL Server, Oracle, Teradata, MongoDB o Cosmos DB API para MongoDB, ODBC genérico, Operaciones en bloque y almacenamiento de objetos compatible con S3. + +Otras características de seguridad que tiene el servidor SQL son: + +- **Reglas de Firewall**: Las reglas de firewall controlan el acceso a tu servidor restringiendo o permitiendo el tráfico. Esta es una característica de las bases de datos en sí también. +- **Cifrado de Datos Transparente (TDE)**: TDE cifra tus bases de datos, copias de seguridad y registros en reposo para proteger tus datos incluso si el almacenamiento se ve comprometido. Se puede hacer con una clave gestionada por el servicio o una clave gestionada por el cliente. +- **Microsoft Defender para SQL**: Microsoft Defender para SQL se puede habilitar ofreciendo evaluaciones de vulnerabilidad y protección avanzada contra amenazas para un servidor. + +#### Modelos de Implementación + +Azure SQL Database admite opciones de implementación flexibles para satisfacer diversas necesidades: + +- **Base de Datos Única**: +- Una base de datos totalmente aislada con sus propios recursos dedicados. +- Ideal para microservicios o aplicaciones que requieren una única fuente de datos. +- **Grupo Elástico**: +- Permite que múltiples bases de datos compartan recursos dentro de un grupo. +- Eficiente en costos para aplicaciones con patrones de uso fluctuantes en múltiples bases de datos. ### Azure SQL Database -**Azure SQL Database** es una **plataforma de base de datos completamente gestionada como servicio (PaaS)** que proporciona soluciones de bases de datos relacionales escalables y seguras. Está construida sobre las últimas tecnologías de SQL Server y elimina la necesidad de gestión de infraestructura, lo que la convierte en una opción popular para aplicaciones basadas en la nube. +**Azure SQL Database** es una **plataforma de base de datos totalmente gestionada como servicio (PaaS)** que proporciona soluciones de base de datos relacional escalables y seguras. Está construida sobre las últimas tecnologías de SQL Server y elimina la necesidad de gestión de infraestructura, lo que la convierte en una opción popular para aplicaciones basadas en la nube. #### Características Clave - **Siempre Actualizado**: Se ejecuta en la última versión estable de SQL Server y recibe nuevas características y parches automáticamente. - **Capacidades de PaaS**: Alta disponibilidad, copias de seguridad y actualizaciones integradas. -- **Flexibilidad de Datos**: Soporta datos relacionales y no relacionales (por ejemplo, gráficos, JSON, espaciales y XML). +- **Flexibilidad de Datos**: Admite datos relacionales y no relacionales (por ejemplo, gráficos, JSON, espacial y XML). + +#### Red + +**Conectividad de Red**: Elige si habilitar el acceso a través de un punto final público o privado. Si seleccionas Sin acceso, no se crean puntos finales hasta que se configure manualmente: +- Sin acceso: No se configuran puntos finales, bloqueando conexiones entrantes hasta que se configuren manualmente. +- Punto final público: Permite conexiones directas a través de Internet público, sujeto a reglas de firewall y otras configuraciones de seguridad. +- Punto final privado: Restringe la conectividad a una red privada. + +**Política de Conexión**: Define cómo los clientes se comunican con el servidor de base de datos SQL: +- Predeterminado: Utiliza una política de redirección para todas las conexiones de clientes desde dentro de Azure (excepto aquellas que utilizan Puntos Finales Privados) y una política de proxy para conexiones desde fuera de Azure. +- Proxy: Rutea todas las conexiones de clientes a través de la puerta de enlace de Azure SQL Database. +- Redirección: Los clientes se conectan directamente al nodo que aloja la base de datos. + +#### Características de Seguridad + +- **Microsoft Defender para SQL**: se puede habilitar ofreciendo evaluaciones de vulnerabilidad y protección avanzada contra amenazas. +- **Libro Mayor**: verifica criptográficamente la integridad de los datos, asegurando que cualquier manipulación sea detectada. +- **Identidad del Servidor**: utiliza identidades gestionadas asignadas por el sistema y por el usuario para habilitar el acceso centralizado. +- **Gestión de Claves de Cifrado de Datos Transparentes**: cifra bases de datos, copias de seguridad y registros en reposo sin requerir cambios en la aplicación. El cifrado se puede habilitar en cada base de datos, y si se configura a nivel de base de datos, estas configuraciones anulan la configuración a nivel de servidor. +- **Siempre Cifrado**: es un conjunto de características avanzadas de protección de datos que separa la propiedad de los datos de la gestión de los datos. Esto asegura que los administradores u operadores con altos privilegios no puedan acceder a datos sensibles. #### Modelos de Compra / Niveles de Servicio @@ -29,50 +94,39 @@ Azure SQL consta de tres ofertas principales: - Estándar: Recursos equilibrados para tareas comunes. - Premium: Alto rendimiento para cargas de trabajo exigentes. -#### Modelos de Implementación - -Azure SQL Database soporta opciones de implementación flexibles para satisfacer diversas necesidades: - -- **Base de Datos Única**: -- Una base de datos completamente aislada con sus propios recursos dedicados. -- Ideal para microservicios o aplicaciones que requieren una única fuente de datos. -- **Grupo Elástico**: -- Permite que múltiples bases de datos compartan recursos dentro de un grupo. -- Eficiente en costos para aplicaciones con patrones de uso fluctuantes a través de múltiples bases de datos. - #### Rendimiento escalable y grupos - **Bases de Datos Únicas**: Cada base de datos está aislada y tiene sus propios recursos dedicados de computación, memoria y almacenamiento. Los recursos se pueden escalar dinámicamente (hacia arriba o hacia abajo) sin tiempo de inactividad (1–128 vCores, 32 GB–4 TB de almacenamiento, y hasta 128 TB). - **Grupos Elásticos**: Comparte recursos entre múltiples bases de datos en un grupo para maximizar la eficiencia y ahorrar costos. Los recursos también se pueden escalar dinámicamente para todo el grupo. -- **Flexibilidad de Nivel de Servicio**: Comienza pequeño con una base de datos única en el nivel de Propósito General. Mejora a niveles Críticos para Negocios o Hyperscale a medida que crecen las necesidades. +- **Flexibilidad de Nivel de Servicio**: Comienza pequeño con una base de datos única en el nivel de Propósito General. Mejora a niveles Críticos para Negocios o Hiperescalables a medida que crecen las necesidades. - **Opciones de Escalado**: Escalado Dinámico o Alternativas de Autoscalado. #### Monitoreo y Optimización Integrados -- **Query Store**: Rastrea problemas de rendimiento, identifica los principales consumidores de recursos y ofrece recomendaciones prácticas. +- **Consulta Almacenada**: Realiza un seguimiento de problemas de rendimiento, identifica los principales consumidores de recursos y ofrece recomendaciones prácticas. - **Ajuste Automático**: Optimiza proactivamente el rendimiento con características como indexación automática y correcciones de planes de consulta. -- **Integración de Telemetría**: Soporta monitoreo a través de Azure Monitor, Event Hubs o Azure Storage para obtener información personalizada. +- **Integración de Telemetría**: Admite monitoreo a través de Azure Monitor, Event Hubs o Azure Storage para obtener información personalizada. #### Recuperación ante Desastres y Disponibilidad -- **Copias de seguridad automáticas**: SQL Database realiza automáticamente copias de seguridad completas, diferenciales y de registro de transacciones de las bases de datos. -- **Restauración a un Punto en el Tiempo**: Recupera bases de datos a cualquier estado pasado dentro del período de retención de copias de seguridad. +- **Copias de seguridad automáticas**: SQL Database realiza automáticamente copias de seguridad completas, diferenciales y de registros de transacciones de bases de datos. +- **Restauración a un Punto en el Tiempo**: Recupera bases de datos a cualquier estado anterior dentro del período de retención de copias de seguridad. - **Geo-Redundancia** - **Grupos de Conmutación por Error**: Simplifica la recuperación ante desastres agrupando bases de datos para la conmutación automática entre regiones. ### Azure SQL Managed Instance -**Azure SQL Managed Instance** es un motor de base de datos como servicio (PaaS) que ofrece casi un 100% de compatibilidad con SQL Server y maneja automáticamente la mayoría de las tareas de gestión (por ejemplo, actualizaciones, parches, copias de seguridad, monitoreo). Proporciona una solución en la nube para migrar bases de datos de SQL Server en las instalaciones con cambios mínimos. +**Azure SQL Managed Instance** es un motor de base de datos como servicio (PaaS) que ofrece casi un 100% de compatibilidad con SQL Server y maneja automáticamente la mayoría de las tareas de gestión (por ejemplo, actualización, parches, copias de seguridad, monitoreo). Proporciona una solución en la nube para migrar bases de datos de SQL Server en las instalaciones con cambios mínimos. #### Niveles de Servicio - **Propósito General**: Opción rentable para aplicaciones con requisitos estándar de E/S y latencia. - **Crítico para Negocios**: Opción de alto rendimiento con baja latencia de E/S para cargas de trabajo críticas. -#### Características de Seguridad Avanzadas +#### Características Avanzadas de Seguridad -* **Protección contra Amenazas**: Alertas de Protección Avanzada contra Amenazas para actividades sospechosas y ataques de inyección SQL. Auditoría para rastrear y registrar eventos de base de datos para cumplimiento. -* **Control de Acceso**: Autenticación de Microsoft Entra para gestión centralizada de identidades. Seguridad a Nivel de Fila y Enmascaramiento de Datos Dinámico para control de acceso granular. +* **Protección contra Amenazas**: Protección Avanzada contra Amenazas que alerta sobre actividades sospechosas y ataques de inyección SQL. Auditoría para rastrear y registrar eventos de base de datos para cumplimiento. +* **Control de Acceso**: Autenticación de Microsoft Entra para gestión de identidad centralizada. Seguridad a Nivel de Fila y Enmascaramiento de Datos Dinámico para control de acceso granular. * **Copias de Seguridad**: Copias de seguridad automatizadas y manuales con capacidad de restauración a un punto en el tiempo. ### Azure SQL Virtual Machines @@ -81,16 +135,16 @@ Azure SQL Database soporta opciones de implementación flexibles para satisfacer #### Características Clave -**Copia de Seguridad Automatizada**: Programa copias de seguridad para bases de datos SQL. -**Patching Automático**: Automatiza la instalación de actualizaciones de Windows y SQL Server durante una ventana de mantenimiento. -**Integración con Azure Key Vault**: Configura automáticamente Key Vault para máquinas virtuales de SQL Server. -**Integración con Defender for Cloud**: Ver recomendaciones de Defender para SQL en el portal. +**Copia de Seguridad Automatizada**: Programa copias de seguridad para bases de datos SQL. +**Patching Automático**: Automatiza la instalación de actualizaciones de Windows y SQL Server durante una ventana de mantenimiento. +**Integración con Azure Key Vault**: Configura automáticamente Key Vault para máquinas virtuales de SQL Server. +**Integración con Defender for Cloud**: Ver recomendaciones de Defender para SQL en el portal. **Flexibilidad de Versión/Edición**: Cambia la versión o metadatos de edición de SQL Server sin redeplegar la máquina virtual. #### Características de Seguridad -**Microsoft Defender for SQL**: Información y alertas de seguridad. -**Integración con Azure Key Vault**: Almacenamiento seguro de credenciales y claves de cifrado. +**Microsoft Defender para SQL**: Información y alertas de seguridad. +**Integración con Azure Key Vault**: Almacenamiento seguro de credenciales y claves de cifrado. **Microsoft Entra (Azure AD)**: Autenticación y control de acceso. ## Enumeración @@ -99,7 +153,7 @@ Azure SQL Database soporta opciones de implementación flexibles para satisfacer {{#tab name="az cli"}} ```bash # List Servers -az sql server list # --output table +az sql server list # managed identities are enumerated here too ## List Server Usages az sql server list-usages --name --resource-group ## List Server Firewalls diff --git a/src/pentesting-cloud/gcp-security/gcp-services/gcp-compute-instances-enum/gcp-compute-instance.md b/src/pentesting-cloud/gcp-security/gcp-services/gcp-compute-instances-enum/gcp-compute-instance.md index 567dd4e0f..401c80862 100644 --- a/src/pentesting-cloud/gcp-security/gcp-services/gcp-compute-instances-enum/gcp-compute-instance.md +++ b/src/pentesting-cloud/gcp-security/gcp-services/gcp-compute-instances-enum/gcp-compute-instance.md @@ -34,11 +34,11 @@ Esta cuenta de servicio tiene **rol de Editor sobre todo el proyecto (altos priv Y los **alcances de acceso predeterminados** son los siguientes: - **https://www.googleapis.com/auth/devstorage.read\_only** -- Acceso de lectura a los buckets :) -- https://www.googleapis.com/auth/logging.write -- https://www.googleapis.com/auth/monitoring.write -- https://www.googleapis.com/auth/servicecontrol -- https://www.googleapis.com/auth/service.management.readonly -- https://www.googleapis.com/auth/trace.append +- [https://www.googleapis.com/auth/logging.write](https://www.googleapis.com/auth/logging.write) +- [https://www.googleapis.com/auth/monitoring.write](https://www.googleapis.com/auth/monitoring.write) +- [https://www.googleapis.com/auth/servicecontrol](https://www.googleapis.com/auth/servicecontrol) +- [https://www.googleapis.com/auth/service.management.readonly](https://www.googleapis.com/auth/service.management.readonly) +- [https://www.googleapis.com/auth/trace.append](https://www.googleapis.com/auth/trace.append) Sin embargo, es posible **otorgarle `cloud-platform` con un clic** o especificar **personalizados**. @@ -56,7 +56,7 @@ Es posible permitir tráfico HTTP y HTTPS. - **Nombre de host**: Es posible darle a la instancia un nombre de host permanente. - **Interfaz**: Es posible agregar una interfaz de red. -### Seguridad Adicional +### Seguridad Extra Estas opciones **aumentarán la seguridad** de la VM y se recomiendan: