Translated ['src/pentesting-cloud/aws-security/aws-services/aws-organiza

This commit is contained in:
Translator
2025-02-17 12:02:35 +00:00
parent 412b58e37d
commit fdd644aba1
16 changed files with 405 additions and 311 deletions

View File

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

View File

@@ -40,6 +40,6 @@ aws iam get-account-summary
```
## Références
- https://aws.amazon.com/organizations/
- [https://aws.amazon.com/organizations/](https://aws.amazon.com/organizations/)
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -4,7 +4,7 @@
## SQS
Amazon Simple Queue Service (SQS) est présenté comme un **service de mise en file d'attente de messages entièrement géré**. Sa fonction principale est d'aider à l'évolutivité et au découplage des microservices, des systèmes distribués et des applications sans serveur. Le service est conçu pour éliminer le besoin de gérer et d'exploiter des middleware orientés message, qui peuvent souvent être complexes et gourmands en ressources. Cette élimination de la complexité permet aux développeurs de diriger leurs efforts vers des aspects plus innovants et différenciants de leur travail.
Amazon Simple Queue Service (SQS) est présenté comme un **service de mise en file d'attente de messages entièrement géré**. Sa fonction principale est d'aider à l'évolutivité et au découplage des microservices, des systèmes distribués et des applications sans serveur. Le service est conçu pour éliminer le besoin de gérer et d'exploiter des middleware orientés message, qui peuvent souvent être complexes et gourmands en ressources. Cette élimination de la complexité permet aux développeurs de concentrer leurs efforts sur des aspects plus innovants et différenciants de leur travail.
### Enumeration
```bash
@@ -46,6 +46,6 @@ aws sqs send-message --queue-url <value> --message-body <value>
## Références
- 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}}

View File

@@ -22,8 +22,8 @@ az storage queue policy set --name <queue-name> --permissions rwd --expiry 2024-
```
## Références
- 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}}

View File

@@ -10,7 +10,7 @@ Pour plus d'informations, consultez :
../az-services/az-queue-enum.md
{{#endref}}
### DataActions : `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`
Un attaquant ayant cette permission peut consulter les messages d'une Azure Storage Queue. Cela permet à l'attaquant de voir le contenu des messages sans les marquer comme traités ou modifier leur état. Cela pourrait conduire à un accès non autorisé à des informations sensibles, permettant l'exfiltration de données ou la collecte de renseignements pour de futures attaques.
```bash
@@ -50,15 +50,15 @@ Cette autorisation permet à un attaquant de supprimer des files d'attente au se
```bash
az storage queue delete --name <queue-name> --account-name <storage-account>
```
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/delete`
### DataActions : `Microsoft.Storage/storageAccounts/queueServices/queues/messages/delete`
Avec cette autorisation, un attaquant peut effacer tous les messages d'une Azure Storage Queue. Cette action supprime tous les messages, perturbant les flux de travail et provoquant une perte de données pour les systèmes dépendants de la queue.
Avec cette autorisation, un attaquant peut supprimer tous les messages d'une Azure Storage Queue. Cette action supprime tous les messages, perturbant les flux de travail et entraînant une perte de données pour les systèmes dépendants de la queue.
```bash
az storage message clear --queue-name <queue-name> --account-name <storage-account>
```
### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
Cette permission permet à un attaquant de créer ou de modifier des files d'attente et leurs propriétés au sein du compte de stockage. Elle peut être utilisée pour créer des files d'attente non autorisées, modifier des métadonnées ou changer des listes de contrôle d'accès (ACL) pour accorder ou restreindre l'accès. Cette capacité pourrait perturber les flux de travail, injecter des données malveillantes, exfiltrer des informations sensibles ou manipuler les paramètres de la file d'attente pour permettre d'autres attaques.
Cette autorisation permet à un attaquant de créer ou de modifier des files d'attente et leurs propriétés au sein du compte de stockage. Elle peut être utilisée pour créer des files d'attente non autorisées, modifier des métadonnées ou changer des listes de contrôle d'accès (ACL) pour accorder ou restreindre l'accès. Cette capacité pourrait perturber les flux de travail, injecter des données malveillantes, exfiltrer des informations sensibles ou manipuler les paramètres de la file d'attente pour permettre d'autres attaques.
```bash
az storage queue create --name <new-queue-name> --account-name <storage-account>
@@ -68,8 +68,8 @@ az storage queue policy set --name <queue-name> --permissions rwd --expiry 2024-
```
## Références
- 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}}

View File

@@ -34,13 +34,6 @@ Un attaquant disposant de cette autorisation peut supprimer un abonnement Azure
```bash
az servicebus topic subscription delete --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
```
### Actions : `Microsoft.ServiceBus/namespaces/write` & `Microsoft.ServiceBus/namespaces/read`
Un attaquant ayant des permissions pour créer ou modifier des espaces de noms Azure Service Bus peut exploiter cela pour perturber les opérations, déployer des ressources non autorisées ou exposer des données sensibles. Ils peuvent modifier des configurations critiques telles que l'activation de l'accès au réseau public, la réduction des paramètres de cryptage ou le changement de SKU pour dégrader les performances ou augmenter les coûts. De plus, ils pourraient désactiver l'authentification locale, manipuler les emplacements des répliques ou ajuster les versions TLS pour affaiblir les contrôles de sécurité, rendant la mauvaise configuration des espaces de noms un risque significatif après exploitation.
```bash
az servicebus namespace create --resource-group <ResourceGroupName> --name <NamespaceName> --location <Location>
az servicebus namespace update --resource-group <ResourceGroupName> --name <NamespaceName> --tags <Key=Value>
```
### Actions : `Microsoft.ServiceBus/namespaces/queues/write` (`Microsoft.ServiceBus/namespaces/queues/read`)
Un attaquant ayant les permissions de créer ou de modifier des files d'attente Azure Service Bus (pour modifier la file d'attente, vous aurez également besoin de l'Action : `Microsoft.ServiceBus/namespaces/queues/read`) peut exploiter cela pour intercepter des données, perturber des flux de travail ou permettre un accès non autorisé. Ils peuvent altérer des configurations critiques telles que le transfert de messages vers des points de terminaison malveillants, ajuster le TTL des messages pour conserver ou supprimer des données de manière inappropriée, ou activer le dead-lettering pour interférer avec la gestion des erreurs. De plus, ils pourraient manipuler les tailles de file d'attente, les durées de verrouillage ou les statuts pour perturber la fonctionnalité du service ou échapper à la détection, ce qui en fait un risque significatif après exploitation.
@@ -57,7 +50,7 @@ az servicebus topic update --resource-group <ResourceGroupName> --namespace-name
```
### Actions : `Microsoft.ServiceBus/namespaces/topics/subscriptions/write` (`Microsoft.ServiceBus/namespaces/topics/subscriptions/read`)
Un attaquant ayant des permissions pour créer ou modifier des abonnements (pour modifier l'abonnement, vous aurez également besoin de l'Action : `Microsoft.ServiceBus/namespaces/topics/subscriptions/read`) au sein d'un sujet Azure Service Bus peut exploiter cela pour intercepter, rediriger ou perturber les flux de messages. En utilisant des commandes comme az servicebus topic subscription update, ils peuvent manipuler des configurations telles que l'activation du dead lettering pour détourner des messages, transférer des messages vers des points de terminaison non autorisés, ou modifier la durée de vie (TTL) et la durée de verrouillage pour conserver ou interférer avec la livraison des messages. De plus, ils peuvent modifier les paramètres de statut ou de nombre maximal de livraisons pour perturber les opérations ou échapper à la détection, rendant le contrôle des abonnements un aspect critique des scénarios de post-exploitation.
Un attaquant ayant des permissions pour créer ou modifier des abonnements (pour modifier l'abonnement, vous aurez également besoin de l'Action : `Microsoft.ServiceBus/namespaces/topics/subscriptions/read`) au sein d'un sujet Azure Service Bus peut exploiter cela pour intercepter, rediriger ou perturber les flux de messages. En utilisant des commandes comme az servicebus topic subscription update, ils peuvent manipuler des configurations telles que l'activation du dead lettering pour détourner des messages, transférer des messages vers des points de terminaison non autorisés, ou modifier la durée de vie (TTL) et la durée de verrouillage pour conserver ou interférer avec la livraison des messages. De plus, ils peuvent altérer les paramètres de statut ou de nombre maximal de livraisons pour perturber les opérations ou échapper à la détection, rendant le contrôle des abonnements un aspect critique des scénarios de post-exploitation.
```bash
az servicebus topic subscription create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
az servicebus topic subscription update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
@@ -72,12 +65,12 @@ Regardez ici :
## Références
- 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}}

View File

@@ -19,10 +19,20 @@ az sql db create --resource-group <resource-group> --server <server-name> --name
# Update Database
az sql db update --resource-group <resource-group> --server <server-name> --name <database-name> --max-size <max-size-in-bytes>
```
Avec ces autorisations (`Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/databases/write`), vous pouvez restaurer une base de données supprimée :
```bash
az sql db restore \
--dest-name <new_database_name> \
--name <original_database_name> \
--resource-group <resource_group> \
--server <server_name> \
--deleted-time "<deleted_time_ISO_format>"
```
### `Microsoft.Sql/servers/elasticPools/write` && `Microsoft.Sql/servers/elasticPools/read`
Avec ces autorisations, un attaquant peut créer et mettre à jour des elasticPools dans l'environnement compromis. Cette activité de post-exploitation pourrait permettre à un attaquant d'ajouter des données malveillantes, de modifier les configurations de la base de données ou d'insérer des portes dérobées pour une persistance supplémentaire, perturbant potentiellement les opérations ou permettant des actions malveillantes supplémentaires.
Avec ces autorisations, un attaquant peut créer et mettre à jour des elasticPools au sein de l'environnement compromis. Cette activité de post-exploitation pourrait permettre à un attaquant d'ajouter des données malveillantes, de modifier les configurations de la base de données ou d'insérer des portes dérobées pour une persistance supplémentaire, perturbant potentiellement les opérations ou permettant des actions malveillantes supplémentaires.
```bash
# Create Elastic Pool
az sql elastic-pool create \
@@ -62,7 +72,7 @@ az sql server connection-policy update \
```
### `Microsoft.Sql/servers/databases/export/action`
Avec cette autorisation, vous pouvez exporter une base de données d'un serveur Azure SQL vers un compte de stockage. Un attaquant ou un utilisateur autorisé disposant de cette autorisation peut exfiltrer des données sensibles de la base de données en l'exportant vers un emplacement qu'il contrôle, ce qui représente un risque de violation de données significatif. Il est important de connaître la clé de stockage pour pouvoir effectuer cela.
Avec cette autorisation, vous pouvez exporter une base de données d'un Azure SQL Server vers un compte de stockage. Un attaquant ou un utilisateur autorisé disposant de cette autorisation peut exfiltrer des données sensibles de la base de données en l'exportant vers un emplacement qu'il contrôle, posant ainsi un risque important de violation de données. Il est important de connaître la clé de stockage pour pouvoir effectuer cela.
```bash
az sql db export \
--server <server_name> \
@@ -76,7 +86,7 @@ az sql db export \
```
### `Microsoft.Sql/servers/databases/import/action`
Avec cette autorisation, vous pouvez importer une base de données dans un Azure SQL Server. Un attaquant ou un utilisateur autorisé disposant de cette autorisation peut potentiellement télécharger des bases de données malveillantes ou manipulées. Cela peut conduire à un contrôle sur des données sensibles ou à l'insertion de scripts ou de déclencheurs nuisibles dans la base de données importée. De plus, vous pouvez l'importer sur votre propre serveur dans Azure. Remarque : Le serveur doit autoriser les services et ressources Azure à accéder au serveur.
Avec cette autorisation, vous pouvez importer une base de données dans un Azure SQL Server. Un attaquant ou un utilisateur autorisé disposant de cette autorisation peut potentiellement télécharger des bases de données malveillantes ou manipulées. Cela peut conduire à un contrôle sur des données sensibles ou à l'insertion de scripts ou de déclencheurs nuisibles dans la base de données importée. De plus, vous pouvez l'importer sur votre propre serveur dans Azure. Remarque : Le serveur doit permettre aux services et ressources Azure d'accéder au serveur.
```bash
az sql db import --admin-user <admin-user> \
--admin-password <admin-password> \
@@ -87,4 +97,41 @@ az sql db import --admin-user <admin-user> \
--storage-key <storage-account-key> \
--storage-uri `https://<storage-account-name>.blob.core.windows.net/bacpac-container/MyDatabase.bacpac`
```
### `Microsoft.Sql/servers/connectionPolicies/write` && `Microsoft.Sql/servers/connectionPolicies/read`
Avec ces autorisations, un utilisateur peut modifier et récupérer les politiques de connexion d'un serveur Azure SQL. Ces autorisations permettent à quelqu'un de changer la façon dont les clients se connectent au serveur—choisir entre des méthodes comme le redirection ou le proxy—ce qui pourrait être exploité pour affaiblir la sécurité, rediriger le trafic ou intercepter des données sensibles en cas de mauvaise configuration.
```bash
az sql server conn-policy update \
--resource-group <resource_group> \
--server <server_name> \
--connection-policy <policy>
```
### `Microsoft.Sql/servers/keys/write` && `Microsoft.Sql/servers/keys/read`
Avec ces autorisations, un utilisateur peut mettre à jour et récupérer les clés de chiffrement associées à un Azure SQL Server. Ces clés sont souvent utilisées pour sécuriser des données sensibles par le biais du chiffrement, donc les manipuler pourrait compromettre la sécurité des données en permettant un déchiffrement non autorisé ou des modifications de rotation de clés.
```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`
Cette autorisation permet de désactiver le Ledger Digest pour une base de données Azure SQL, ce qui arrête le téléchargement périodique des enregistrements de résumé cryptographique vers Azure Blob Storage qui vérifie l'intégrité des données.
```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`
Cette autorisation permet à un utilisateur autorisé ou à un attaquant d'activer, de désactiver ou de modifier les paramètres de Transparent Data Encryption (TDE) sur une base de données Azure SQL, ce qui peut avoir un impact sur la sécurité des données en modifiant les configurations de cryptage.
```bash
az sql db tde set \
--database <database-name> \
--resource-group <resource-group-name> \
--server <server-name> \
--status <Enabled|Disabled>
```
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -1,64 +0,0 @@
# Az - Azure Container Instances Privesc
{{#include ../../../banners/hacktricks-training.md}}
## Azure Container Instances
Pour plus d'informations, consultez :
{{#ref}}
../az-services/az-container-instances.md
{{#endref}}
### `Microsoft.ContainerInstance/containerGroups/read`, `Microsoft.ContainerInstance/containerGroups/containers/exec/action`
Ces permissions permettent à l'utilisateur de **exécuter une commande** dans un conteneur en cours d'exécution. Cela peut être utilisé pour **escalader les privilèges** dans le conteneur s'il a une identité gérée attachée. Bien sûr, il est également possible d'accéder au code source et à toute autre information sensible stockée à l'intérieur du conteneur.
Pour exécuter un `ls` et obtenir la sortie, c'est aussi simple que :
```bash
az container exec --name <container-name> --resource-group <res-group> --exec-command 'ls'
```
Il est également possible de **lire la sortie** du conteneur avec :
```bash
az container attach --name <container-name> --resource-group <res-group>
```
Ou obtenez les journaux avec :
```bash
az container logs --name <container-name> --resource-group <res-group>
```
### `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
Ces permissions permettent de **lier une identité gérée par l'utilisateur** à un groupe de conteneurs. Cela est très utile pour élever les privilèges dans le conteneur.
Pour lier une identité gérée par l'utilisateur à un groupe de conteneurs :
```bash
az rest \
--method PATCH \
--url "/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ContainerInstance/containerGroups/<container-name>?api-version=2021-09-01" \
--body '{
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-namaged-identity-name>": {}
}
}
}' \
--headers "Content-Type=application/json"
```
### `Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
Ces autorisations permettent de **créer ou mettre à jour un groupe de conteneurs** avec une **identité gérée par l'utilisateur** qui y est attachée. Cela est très utile pour élever les privilèges dans le conteneur.
```bash
az container create \
--resource-group <res-group>> \
--name nginx2 \
--image mcr.microsoft.com/oss/nginx/nginx:1.9.15-alpine \
--assign-identity "/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-namaged-identity-name>" \
--restart-policy OnFailure \
--os-type Linux \
--cpu 1 \
--memory 1.0
```
De plus, il est également possible de mettre à jour un groupe de conteneurs existant en ajoutant par exemple l'argument **`--command-line`** avec un reverse shell.
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -24,7 +24,7 @@ Avec cette autorisation, un attaquant peut récupérer et traiter des messages d
```bash
az storage message get --queue-name <queue_name> --account-name <storage_account>
```
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/add/action`
### DataActions : `Microsoft.Storage/storageAccounts/queueServices/queues/messages/add/action`
Avec cette autorisation, un attaquant peut ajouter de nouveaux messages à une Azure Storage Queue. Cela leur permet d'injecter des données malveillantes ou non autorisées dans la file d'attente, ce qui peut déclencher des actions non intentionnelles ou perturber les services en aval qui traitent les messages.
```bash
@@ -32,7 +32,7 @@ az storage message put --queue-name <queue-name> --content "Injected malicious m
```
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/write`
Cette permission permet à un attaquant d'ajouter de nouveaux messages ou de mettre à jour ceux existants dans une Azure Storage Queue. En utilisant cela, ils pourraient insérer du contenu nuisible ou modifier des messages existants, induisant potentiellement en erreur des applications ou provoquant des comportements indésirables dans des systèmes qui dépendent de la queue.
Cette permission permet à un attaquant d'ajouter de nouveaux messages ou de mettre à jour ceux existants dans une Azure Storage Queue. En utilisant cela, ils pourraient insérer du contenu nuisible ou modifier des messages existants, induisant potentiellement en erreur des applications ou provoquant des comportements indésirables dans les systèmes qui dépendent de la queue.
```bash
az storage message put --queue-name <queue-name> --content "Injected malicious message" --account-name <storage-account>
@@ -56,8 +56,8 @@ az storage queue policy set --name <queue-name> --permissions rwd --expiry 2024-
```
## Références
- 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}}

View File

@@ -14,7 +14,7 @@ Pour plus d'informations, consultez :
Ces autorisations vous permettent d'obtenir ou de régénérer les clés pour les règles d'autorisation locales au sein d'un espace de noms Service Bus. En utilisant ces clés, il est possible de s'authentifier en tant qu'espace de noms Service Bus, vous permettant d'envoyer des messages à n'importe quelle file d'attente ou sujet, de recevoir des messages de n'importe quelle file d'attente ou abonnement, ou potentiellement d'interagir avec le système de manière à perturber les opérations, usurper des utilisateurs valides ou injecter des données malveillantes dans le flux de messagerie.
Notez qu'en règle générale, la **`RootManageSharedAccessKey` règle a un contrôle total** sur l'espace de noms Service Bus et qu'elle est utilisée par le `az` cli, cependant, d'autres règles avec d'autres valeurs de clé peuvent exister.
Notez qu'en règle générale, la **`RootManageSharedAccessKey`** a un contrôle total sur l'espace de noms Service Bus et est utilisée par le `az` cli, cependant, d'autres règles avec d'autres valeurs de clé peuvent exister.
```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]
@@ -78,133 +78,208 @@ az servicebus queue authorization-rule update --resource-group <res-group> --nam
```
### Microsoft.ServiceBus/namespaces/write (& Microsoft.ServiceBus/namespaces/read si az cli est utilisé)
Avec ces autorisations, **un attaquant peut réactiver "l'authentification locale"** avec la commande suivante et donc toutes les clés des politiques partagées fonctionneront.
Avec ces permissions, **un attaquant peut réactiver "l'authentification locale"** avec la commande suivante et donc toutes les clés des politiques partagées fonctionneront.
```bash
az servicebus namespace update --disable-local-auth false -n <namespace-name> --resource-group <res-group>
```
### Envoyer des messages avec des clés (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OU Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
Vous pouvez récupérer le `PrimaryConnectionString`, qui agit comme un identifiant pour le namespace Service Bus. Avec cette chaîne de connexion, vous pouvez vous authentifier complètement en tant que namespace Service Bus, vous permettant d'envoyer des messages à n'importe quelle file d'attente ou sujet et potentiellement d'interagir avec le système de manière à perturber les opérations, usurper des utilisateurs valides ou injecter des données malveillantes dans le flux de messagerie.
Vous pouvez récupérer le `PrimaryConnectionString`, qui agit comme un identifiant pour le namespace Service Bus. Avec cette chaîne de connexion, vous pouvez vous authentifier complètement en tant que namespace Service Bus, vous permettant d'envoyer des messages à n'importe quelle file d'attente ou sujet et potentiellement d'interagir avec le système de manière à perturber les opérations, usurper des utilisateurs valides ou injecter des données malveillantes dans le flux de messagerie. Cette méthode fonctionne si `--disable-local-auth` est défini sur 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
from azure.servicebus import ServiceBusMessage
# Constants
NAMESPACE_CONNECTION_STR = "<PrimaryConnectionString>"
TOPIC_NAME = "<TOPIC_NAME>"
TOPIC_OR_QUEUE_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())
```
De plus, vous pouvez envoyer des messages avec az rest, dans ce cas, vous devez générer un jeton sas à utiliser.
```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://<namespace>.servicebus.windows.net/<queue_or_topic>"
key_name = "<SharedKeyName>"
primary_key = "<PrimaryKey>"
# 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://<NAMESPACE>.servicebus.windows.net/<queue>/messages" \
--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=https%3A%2F%2F<NAMESPACE>.servicebus.windows.net%2F<TOPIC_OR_QUEUE_NAME>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>" \
--body "<MESSAGE_BODY>"
```
### Recevoir avec des clés (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OU Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
Vous pouvez récupérer le PrimaryConnectionString, qui sert de credential pour le namespace Service Bus. En utilisant cette chaîne de connexion, vous pouvez recevoir des messages de n'importe quelle file d'attente ou abonnement au sein du namespace, permettant l'accès à des données potentiellement sensibles ou critiques, facilitant l'exfiltration de données, ou interférant avec le traitement des messages et les flux de travail des applications.
Vous pouvez récupérer le PrimaryConnectionString, qui sert de credential pour le namespace Service Bus. En utilisant cette chaîne de connexion, vous pouvez recevoir des messages de n'importe quelle file d'attente ou abonnement au sein du namespace, permettant l'accès à des données potentiellement sensibles ou critiques, facilitant l'exfiltration de données, ou interférant avec le traitement des messages et les flux de travail des applications. Cette méthode fonctionne si `--disable-local-auth` est défini sur 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 = "<PrimaryConnectionString>"
TOPIC_NAME = "<TOPIC_NAME>"
SUBSCRIPTION_NAME = "<TOPIC_SUBSCRIPTION_NAME>" #Topic Subscription
CONN_STR = "<PrimaryConnectionString>"
QUEUE = "<QUEUE_NAME>"
# 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 = "<TOPIC_NAME>"
# SUBSCRIPTION = "<TOPIC_SUBSCRIPTION_NAME>"
# 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")
```
De plus, vous pouvez envoyer des messages avec az rest, dans ce cas, vous devez générer un jeton sas à utiliser.
```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://<namespace>.servicebus.windows.net/queue" # For queue
# resource_uri = "https://<namespace>.servicebus.windows.net/<topic>/subscriptions/<subscription>" # For topic subscription
sas_token = generate_sas_token(resource_uri, "<KEYNAME>", "<PRIMARY_KEY>")
print(sas_token)
```
Pour une file d'attente, vous pouvez obtenir ou jeter un œil au message (obtenir un message les supprimerait, tandis que jeter un œil ne le ferait pas) :
```bash
#Get a message
az rest --method post \
--uri "https://<NAMESPACE>.servicebus.windows.net/<QUEUE>/messages/head?timeout=60" \
--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
#Peek a message
az rest --method get \
--uri "https://<NAMESPACE>.servicebus.windows.net/<QUEUE>/messages/head?peekonly=true&timeout=60" \
--headers "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
#You can select the meesage changing the field PreviousSequenceNumber
az rest --method get \
--uri "https://<NAMESPACE>.servicebus.windows.net/<ENTITY>/messages?timeout=60&PreviousSequenceNumber=<LAST_SEQUENCE_NUMBER>&api-version=2017-04" \
--headers "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
```
Please provide the text you would like me to translate.
```bash
#Get a message
az rest --method post \
--uri "https://<NAMESPACE>.servicebus.windows.net/<TOPIC>/subscriptions/<SUBSCRIPTION>/messages/head?timeout=60" \
--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
#Peek a message
az rest --method get \
--uri "https://<NAMESPACE>.servicebus.windows.net/<TOPIC>/subscriptions/<SUBSCRIPTION>/messages/head?timeout=60&api-version=2017-04" \
--headers "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
#You can select the meesage changing the field PreviousSequenceNumber
az rest --method get \
--uri "https://<NAMESPACE>.servicebus.windows.net/<TOPIC>/subscriptions/<SUBSCRIPTION>/messages?timeout=60&PreviousSequenceNumber=<LAST_SEQUENCE_NUMBER>&api-version=2017-04" \
--headers "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
```
### Envoyer des messages. DataActions : `Microsoft.ServiceBus/namespaces/messages/send/action`
Vous pouvez utiliser ces autorisations pour envoyer des messages, même si `--disable-local-auth` est défini sur true.
```python
import asyncio
from azure.identity.aio import DefaultAzureCredential
from azure.servicebus.aio import ServiceBusClient
from azure.servicebus import ServiceBusMessage
NS = "<namespace>.servicebus.windows.net" # Your namespace
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_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())
```
### Recevoir des messages. DataActions: `Microsoft.ServiceBus/namespaces/messages/receive/action`
Vous pouvez utiliser ces autorisations pour recevoir des messages, même si `--disable-local-auth` est défini sur true.
```python
import asyncio
from azure.identity.aio import DefaultAzureCredential
from azure.servicebus.aio import ServiceBusClient
NS = "<namespace>.servicebus.windows.net"
QUEUE = "<QUEUE>"
# For a topic subscription, uncomment and set these values:
# TOPIC = "<TOPIC>"
# SUBSCRIPTION = "<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")
```
## Références
- 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}}

View File

@@ -12,7 +12,7 @@ Pour plus d'informations sur SQL Database, consultez :
### `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/write`
Avec ces permissions, un utilisateur peut effectuer une élévation de privilèges en mettant à jour ou en créant des serveurs SQL Azure et en modifiant des configurations critiques, y compris les identifiants administratifs. Cette permission permet à l'utilisateur de mettre à jour les propriétés du serveur, y compris le mot de passe administrateur du serveur SQL, permettant un accès ou un contrôle non autorisé sur le serveur. Ils peuvent également créer de nouveaux serveurs, introduisant potentiellement une infrastructure fantôme à des fins malveillantes. Cela devient particulièrement critique dans les environnements où "Microsoft Entra Authentication Only" est désactivé, car ils peuvent exploiter l'authentification basée sur SQL pour obtenir un accès illimité.
Avec ces permissions, un utilisateur peut effectuer une élévation de privilèges en mettant à jour ou en créant des serveurs SQL Azure et en modifiant des configurations critiques, y compris les identifiants administratifs. Cette permission permet à l'utilisateur de mettre à jour les propriétés du serveur, y compris le mot de passe administrateur SQL, permettant un accès ou un contrôle non autorisé sur le serveur. Ils peuvent également créer de nouveaux serveurs, introduisant potentiellement une infrastructure fantôme à des fins malveillantes. Cela devient particulièrement critique dans les environnements où "Microsoft Entra Authentication Only" est désactivé, car ils peuvent exploiter l'authentification basée sur SQL pour obtenir un accès illimité.
```bash
# Change the server password
az sql server update \
@@ -26,7 +26,7 @@ az sql server create \
--resource-group <resource_group_name> \
--location <location> \
--admin-user <admin_username> \
--admin-password <admin_password>
--admin-password <admin_passwor d>
```
De plus, il est nécessaire d'avoir l'accès public activé si vous souhaitez accéder depuis un point de terminaison non privé, pour l'activer :
```bash
@@ -35,6 +35,31 @@ az sql server update \
--resource-group <resource-group> \
--enable-public-network true
```
De plus, avec les autorisations, vous pouvez activer l'identité assignée, et opérer avec l'identité gérée attachée au serveur. Par exemple ici avec une identité gérée qui peut accéder à Azure Storage :
```bash
az sql server update \
--name <server-name> \
--resource-group <resource-group> \
--assign_identity
```
```sql
CREATE EXTERNAL DATA SOURCE ManagedIdentity
WITH (
TYPE = BLOB_STORAGE,
LOCATION = 'https://<storage-account>.blob.core.windows.net/<container>',
CREDENTIAL = ManagedIdentityCredential
);
GO
SELECT *
FROM OPENROWSET(
BULK 'message.txt',
DATA_SOURCE = 'ManagedIdentity',
SINGLE_CLOB
) AS DataFile;
GO
```
### `Microsoft.Sql/servers/firewallRules/write`
Un attaquant peut manipuler les règles de pare-feu sur les serveurs Azure SQL pour permettre un accès non autorisé. Cela peut être exploité pour ouvrir le serveur à des adresses IP spécifiques ou à des plages d'IP entières, y compris des IP publiques, permettant l'accès à des acteurs malveillants. Cette activité post-exploitation peut être utilisée pour contourner les contrôles de sécurité réseau existants, établir une persistance ou faciliter le mouvement latéral au sein de l'environnement en exposant des ressources sensibles.
@@ -84,7 +109,7 @@ az sql server ad-admin create \
```
### `Microsoft.Sql/servers/azureADOnlyAuthentications/write` && `Microsoft.Sql/servers/azureADOnlyAuthentications/read`
Avec ces autorisations, vous pouvez configurer et appliquer "Authentification uniquement Microsoft Entra" sur un serveur SQL Azure, ce qui pourrait faciliter l'escalade de privilèges dans certains scénarios. Un attaquant ou un utilisateur autorisé avec ces autorisations peut activer ou désactiver l'authentification uniquement Azure AD.
Avec ces autorisations, vous pouvez configurer et appliquer "Microsoft Entra Authentication Only" sur un serveur SQL Azure, ce qui pourrait faciliter l'escalade de privilèges dans certains scénarios. Un attaquant ou un utilisateur autorisé avec ces autorisations peut activer ou désactiver l'authentification uniquement Azure AD.
```bash
#Enable
az sql server azure-ad-only-auth enable \

View File

@@ -1,45 +0,0 @@
# Az - Container Instances
{{#include ../../../banners/hacktricks-training.md}}
## Informations de base
Azure Container Instances (ACI) fournissent un **mode sans serveur, à la demande** pour exécuter des **conteneurs** dans le cloud Azure. Vous pouvez **déployer** un ou plusieurs conteneurs dans un groupe avec un **calcul évolutif**, des **options de mise en réseau**, et la flexibilité de se connecter à **d'autres services Azure** (comme Storage, Virtual Networks, ou Container Registries).
Étant donné qu'ils sont des charges de travail **éphémères**, vous n'avez pas besoin de gérer l'infrastructure VM sous-jacente — Azure s'en occupe pour vous. Cependant, d'un point de vue de **sécurité offensive**, il est crucial de comprendre comment les **permissions**, les **identités**, les **configurations réseau**, et les **logs** peuvent révéler des surfaces d'attaque et des configurations potentielles incorrectes.
### Configurations
- Pour créer un conteneur, il est possible d'utiliser une image publique, une image de conteneur d'un Azure Container Registry ou d'un dépôt externe, ce qui pourrait **nécessiter de configurer un mot de passe** pour y accéder.
- En ce qui concerne la mise en réseau, cela peut également avoir une **IP publique** ou être des **points de terminaison privés**.
- Il est également possible de configurer des paramètres docker courants tels que :
- **Variables d'environnement**
- **Volumes** (même à partir d'Azure Files)
- **Ports**
- **Limites de CPU et de mémoire**
- **Politique de redémarrage**
- **Exécuter en tant que privilégié**
- **Ligne de commande à exécuter**
- ...
## Énumération
> [!WARNING]
> Lors de l'énumération des ACI, vous pouvez révéler des configurations sensibles telles que des **variables d'environnement**, des **détails réseau**, ou des **identités gérées**. Soyez prudent avec les logs ou leur affichage.
```bash
# List all container instances in the subscription
az container list
# Show detailed information about a specific container instance
az container show --name <container-name> --resource-group <res-group>
# Fetch logs from a container
az container logs --name <container-name> --resource-group <res-group>
# Execute a command in a running container and get the output
az container exec --name <container-name> --resource-group <res-group> --exec-command "ls"
# Get yaml configuration of the container group
az container export --name <container-name> --resource-group <res-group>
```

View File

@@ -84,8 +84,8 @@ $queueMessage.Value
## Références
- 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}}

View File

@@ -6,50 +6,59 @@
Azure Service Bus est un **service de messagerie** basé sur le cloud conçu pour permettre une **communication fiable entre différentes parties d'une application ou des applications séparées**. Il agit comme un intermédiaire sécurisé, garantissant que les messages sont livrés en toute sécurité, même si l'expéditeur et le destinataire ne fonctionnent pas simultanément. En découplant les systèmes, il permet aux applications de fonctionner indépendamment tout en échangeant des données ou des instructions. Il est particulièrement utile pour des scénarios nécessitant un équilibrage de charge entre plusieurs travailleurs, une livraison fiable des messages ou une coordination complexe, comme le traitement des tâches dans l'ordre ou la gestion sécurisée des accès.
### Concepts Clés
### Key Concepts
1. **Queues :** son but est de stocker les messages jusqu'à ce que le destinataire soit prêt.
1. **Namespaces :** Un espace de noms dans les systèmes de messagerie est un conteneur logique qui organise et gère les composants de messagerie, les files d'attente et les sujets. Il fournit un environnement isolé où les applications peuvent envoyer, recevoir et traiter des messages. Les files d'attente et les sujets partagent la même infrastructure et configuration au sein d'un espace de noms Service Bus, mais ils fonctionnent indépendamment sans interagir les uns avec les autres.
2. **Queues :** son but est de stocker les messages jusqu'à ce que le destinataire soit prêt.
- Les messages sont ordonnés, horodatés et stockés de manière durable.
- Livrés en mode pull (récupération à la demande).
- Prend en charge la communication point à point.
2. **Topics :** Messagerie publish-subscribe pour la diffusion.
3. **Topics :** Messagerie publish-subscribe pour la diffusion.
- Plusieurs abonnements indépendants reçoivent des copies des messages.
- Les abonnements peuvent avoir des règles/filtres pour contrôler la livraison ou ajouter des métadonnées.
- Prend en charge la communication plusieurs à plusieurs.
3. **Namespaces :** Un conteneur pour tous les composants de messagerie, files d'attente et sujets, est comme votre propre part d'un puissant cluster Azure, fournissant une capacité dédiée et s'étendant éventuellement sur trois zones de disponibilité.
La chaîne de connexion/point de terminaison du service bus est :
```bash
https://<namespace>.servicebus.windows.net:443/
```
### Fonctionnalités Avancées
Certaines fonctionnalités avancées sont :
- **Message Sessions** : Assure le traitement FIFO et prend en charge les modèles de demande-réponse.
- **Auto-Forwarding** : Transfère des messages entre des files d'attente ou des sujets dans le même espace de noms.
- **Dead-Lettering** : Capture les messages non livrables pour examen.
- **Scheduled Delivery** : Retarde le traitement des messages pour des tâches futures.
- **Message Deferral** : Retarde la récupération des messages jusqu'à ce qu'ils soient prêts.
- **Sessions de Messages** : Assure le traitement FIFO et prend en charge les modèles de demande-réponse.
- **Transfert Automatique** : Transfère des messages entre des files d'attente ou des sujets dans le même espace de noms.
- **Lettrage Mort** : Capture les messages non livrables pour examen.
- **Livraison Programmée** : Retarde le traitement des messages pour des tâches futures.
- **Différé de Message** : Retarde la récupération des messages jusqu'à ce qu'elle soit prête.
- **Transactions** : Regroupe les opérations en exécution atomique.
- **Filters & Actions** : Applique des règles pour filtrer ou annoter les messages.
- **Auto-Delete on Idle** : Supprime les files d'attente après une période d'inactivité (min : 5 minutes).
- **Duplicate Detection** : Supprime les messages en double lors des renvois.
- **Batch Deletion** : Supprime en masse les messages expirés ou inutiles.
- **Filtres & Actions** : Applique des règles pour filtrer ou annoter les messages.
- **Suppression Automatique en Inactivité** : Supprime les files d'attente après une période d'inactivité (min : 5 minutes).
- **Détection de Doublons** : Supprime les messages en double lors des renvois.
- **Suppression par Lots** : Supprime en masse les messages expirés ou inutiles.
### Authorization-Rule / SAS Policy
### Règle d'Autorisation / Politique SAS
Les politiques SAS définissent les autorisations d'accès pour les entités Azure Service Bus namespace (le plus important), files d'attente et sujets. Chaque politique a les composants suivants :
Les politiques SAS définissent les autorisations d'accès pour les entités Azure Service Bus dans l'espace de noms (le plus important), les files d'attente et les sujets. Chaque politique a les composants suivants :
- **Permissions** : Cases à cocher pour spécifier les niveaux d'accès :
- Manage : Accorde un contrôle total sur l'entité, y compris la configuration et la gestion des autorisations.
- Send : Permet d'envoyer des messages à l'entité.
- Listen : Permet de recevoir des messages de l'entité.
- **Primary and Secondary Keys** : Ce sont des clés cryptographiques utilisées pour générer des jetons sécurisés pour authentifier l'accès.
- **Primary and Secondary Connection Strings** : Chaînes de connexion préconfigurées qui incluent le point de terminaison et la clé pour une utilisation facile dans les applications.
- **SAS Policy ARM ID** : Le chemin Azure Resource Manager (ARM) vers la politique pour identification programmatique.
- **Autorisations** : Cases à cocher pour spécifier les niveaux d'accès :
- Gérer : Accorde un contrôle total sur l'entité, y compris la configuration et la gestion des autorisations.
- Envoyer : Permet d'envoyer des messages à l'entité.
- Écouter : Permet de recevoir des messages de l'entité.
- **Clés Primaires et Secondaires** : Ce sont des clés cryptographiques utilisées pour générer des jetons sécurisés pour authentifier l'accès.
- **Chaînes de Connexion Primaires et Secondaires** : Chaînes de connexion préconfigurées qui incluent le point de terminaison et la clé pour une utilisation facile dans les applications.
- **ID de Politique SAS ARM** : Le chemin Azure Resource Manager (ARM) vers la politique pour une identification programmatique.
### NameSpace
Il est important de noter qu'un espace de noms a une seule politique SAS qui affecte chaque entité à l'intérieur, tandis que les files d'attente et les sujets peuvent avoir leurs propres politiques SAS individuelles pour un contrôle plus granulaire.
sku, règle d'autorisation,
### "--disable-local-auth"
### Enumeration
Le paramètre --disable-local-auth est utilisé pour contrôler si l'authentification locale (c'est-à-dire l'utilisation de clés de signature d'accès partagé (SAS)) est activée pour votre espace de noms Service Bus. Voici ce que vous devez savoir :
- Lorsqu'il est défini sur true : L'authentification locale utilisant des clés SAS est désactivée et l'authentification Azure Active Directory (Azure AD) est autorisée.
- Lorsqu'il est défini sur false : L'authentification SAS (locale) et l'authentification Azure AD sont disponibles et vous pouvez utiliser des chaînes de connexion avec des clés SAS pour accéder à vos ressources Service Bus.
### Énumération
{{#tabs }}
{{#tab name="az cli" }}

View File

@@ -6,28 +6,45 @@
Azure SQL est une famille de produits gérés, sécurisés et intelligents qui utilisent le **moteur de base de données SQL Server dans le cloud Azure**. Cela signifie que vous n'avez pas à vous soucier de l'administration physique de vos serveurs, et vous pouvez vous concentrer sur la gestion de vos données.
Azure SQL se compose de trois principales offres :
Azure SQL se compose de quatre principales offres :
1. **Azure SQL Database** : Il s'agit d'un **service de base de données entièrement géré**, qui vous permet d'héberger des bases de données individuelles dans le cloud Azure. Il offre une intelligence intégrée qui apprend vos modèles de base de données uniques et fournit des recommandations personnalisées et un réglage automatique.
2. **Azure SQL Managed Instance** : Cela concerne les déploiements à grande échelle, à l'échelle de l'ensemble de l'instance SQL Server. Il offre une compatibilité presque totale avec le dernier moteur de base de données SQL Server sur site (Édition Entreprise), qui fournit une mise en réseau virtuelle (VNet) native répondant aux préoccupations de sécurité courantes, et un modèle commercial favorable aux clients SQL Server sur site.
3. **Azure SQL Server sur des machines virtuelles Azure** : Il s'agit d'une Infrastructure en tant que Service (IaaS) et est préférable pour les migrations où vous souhaitez **contrôler le système d'exploitation et l'instance SQL Server**, comme si c'était un serveur fonctionnant sur site.
1. **Azure SQL Server** : Azure SQL Server est un service de base de données relationnelle géré qui simplifie le déploiement et la gestion des bases de données SQL Server, avec des fonctionnalités de sécurité et de performance intégrées.
2. **Azure SQL Database** : Il s'agit d'un **service de base de données entièrement géré**, qui vous permet d'héberger des bases de données individuelles dans le cloud Azure. Il offre une intelligence intégrée qui apprend vos modèles de base de données uniques et fournit des recommandations personnalisées et un réglage automatique.
3. **Azure SQL Managed Instance** : Cela concerne les déploiements à grande échelle, à l'échelle de l'ensemble de l'instance SQL Server. Il offre une compatibilité presque totale avec le dernier moteur de base de données SQL Server sur site (Édition Entreprise), qui fournit une mise en réseau virtuelle (VNet) native qui répond aux préoccupations de sécurité courantes, et un modèle commercial favorable aux clients SQL Server sur site.
4. **Azure SQL Server sur des machines virtuelles Azure** : Il s'agit d'une Infrastructure en tant que Service (IaaS) et est préférable pour les migrations où vous souhaitez **contrôler le système d'exploitation et l'instance SQL Server**, comme si c'était un serveur fonctionnant sur site.
### Azure SQL Database
### Azure SQL Server
**Azure SQL Database** est une **plateforme de base de données entièrement gérée en tant que service (PaaS)** qui fournit des solutions de bases de données relationnelles évolutives et sécurisées. Elle est construite sur les dernières technologies SQL Server et élimine le besoin de gestion d'infrastructure, ce qui en fait un choix populaire pour les applications basées sur le cloud.
Azure SQL Server est un système de gestion de base de données relationnelle (RDBMS) qui utilise Transact-SQL pour les opérations de données et est conçu pour gérer des systèmes de niveau entreprise. Il offre des fonctionnalités robustes pour la performance, la sécurité, l'évolutivité et l'intégration avec diverses applications Microsoft. Les bases de données Azure SQL s'appuient sur ce serveur, car elles sont construites sur ces serveurs et c'est le point d'entrée pour l'utilisateur pour accéder aux bases de données.
#### Caractéristiques clés
#### Réseau
- **Toujours à jour** : Fonctionne sur la dernière version stable de SQL Server et reçoit automatiquement de nouvelles fonctionnalités et correctifs.
- **Capacités PaaS** : Haute disponibilité intégrée, sauvegardes et mises à jour.
- **Flexibilité des données** : Prend en charge les données relationnelles et non relationnelles (par exemple, graphiques, JSON, spatial et XML).
**Connectivité réseau** : Choisissez d'activer l'accès via un point de terminaison public ou un point de terminaison privé. Si vous sélectionnez Aucun accès, aucun point de terminaison n'est créé jusqu'à ce qu'il soit configuré manuellement :
- Aucun accès : Aucun point de terminaison n'est configuré, bloquant les connexions entrantes jusqu'à ce qu'elles soient configurées manuellement.
- Point de terminaison public : Permet des connexions directes via Internet public, sous réserve des règles de pare-feu et d'autres configurations de sécurité.
- Point de terminaison privé : Restreint la connectivité à un réseau privé.
#### Modèles d'achat / Niveaux de service
**Politique de connexion** : Définissez comment les clients communiquent avec le serveur de base de données SQL :
- Par défaut : Utilise une politique de redirection pour toutes les connexions des clients depuis l'intérieur d'Azure (sauf celles utilisant des points de terminaison privés) et une politique de proxy pour les connexions depuis l'extérieur d'Azure.
- Proxy : Achemine toutes les connexions des clients via la passerelle Azure SQL Database.
- Redirection : Les clients se connectent directement au nœud hébergeant la base de données.
- **Basé sur vCore** : Choisissez le calcul, la mémoire et le stockage indépendamment. Pour usage général, critique pour les entreprises (avec haute résilience et performance pour les applications OLTP), et évolue jusqu'à 128 To de stockage.
- **Basé sur DTU** : Regroupe le calcul, la mémoire et l'I/O en niveaux fixes. Ressources équilibrées pour les tâches courantes.
- Standard : Ressources équilibrées pour les tâches courantes.
- Premium : Haute performance pour des charges de travail exigeantes.
#### Méthodes d'authentification
Azure SQL prend en charge diverses méthodes d'authentification pour sécuriser l'accès à la base de données :
- **Authentification Microsoft Entra uniquement** : Utilise Microsoft Entra (anciennement Azure AD) pour la gestion centralisée des identités et l'authentification unique.
- **Authentification SQL et Microsoft Entra** : Vous permet d'utiliser l'authentification SQL traditionnelle aux côtés de Microsoft Entra.
- **Authentification SQL** : Dépend uniquement des noms d'utilisateur et des mots de passe SQL Server.
#### Fonctionnalités de sécurité
Les serveurs SQL ont des **Identités gérées**. Les identités gérées permettent à votre serveur de s'authentifier de manière sécurisée avec d'autres services Azure sans stocker de credentials. Cela permet d'accéder à d'autres services qui seraient une identité gérée assignée au système et d'être accessibles par d'autres services avec d'autres identités qui sont une identité gérée assignée à l'utilisateur. Certains des services auxquels SQL peut accéder sont Azure Storage Account(V2), Azure Data Lake Storage Gen2, SQL Server, Oracle, Teradata, MongoDB ou Cosmos DB API pour MongoDB, ODBC générique, opérations en masse et stockage d'objets compatible S3.
D'autres fonctionnalités de sécurité que le serveur SQL possède sont :
- **Règles de pare-feu** : Les règles de pare-feu contrôlent l'accès à votre serveur en restreignant ou en autorisant le trafic. C'est une fonctionnalité des bases de données elles-mêmes aussi.
- **Chiffrement des données transparent (TDE)** : TDE chiffre vos bases de données, sauvegardes et journaux au repos pour protéger vos données même si le stockage est compromis. Cela peut être fait avec une clé gérée par le service ou une clé gérée par le client.
- **Microsoft Defender for SQL** : Microsoft Defender for SQL peut être activé, offrant des évaluations de vulnérabilité et une protection avancée contre les menaces pour un serveur.
#### Modèles de déploiement
@@ -40,11 +57,48 @@ Azure SQL Database prend en charge des options de déploiement flexibles pour r
- Permet à plusieurs bases de données de partager des ressources au sein d'un pool.
- Économique pour les applications avec des modèles d'utilisation fluctuants à travers plusieurs bases de données.
### Azure SQL Database
**Azure SQL Database** est une **plateforme de base de données entièrement gérée en tant que service (PaaS)** qui fournit des solutions de base de données relationnelle évolutives et sécurisées. Elle est construite sur les dernières technologies SQL Server et élimine le besoin de gestion d'infrastructure, ce qui en fait un choix populaire pour les applications basées sur le cloud.
#### Fonctionnalités clés
- **Toujours à jour** : Fonctionne sur la dernière version stable de SQL Server et reçoit automatiquement de nouvelles fonctionnalités et correctifs.
- **Capacités PaaS** : Haute disponibilité intégrée, sauvegardes et mises à jour.
- **Flexibilité des données** : Prend en charge les données relationnelles et non relationnelles (par exemple, graphiques, JSON, spatial et XML).
#### Réseau
**Connectivité réseau** : Choisissez d'activer l'accès via un point de terminaison public ou un point de terminaison privé. Si vous sélectionnez Aucun accès, aucun point de terminaison n'est créé jusqu'à ce qu'il soit configuré manuellement :
- Aucun accès : Aucun point de terminaison n'est configuré, bloquant les connexions entrantes jusqu'à ce qu'elles soient configurées manuellement.
- Point de terminaison public : Permet des connexions directes via Internet public, sous réserve des règles de pare-feu et d'autres configurations de sécurité.
- Point de terminaison privé : Restreint la connectivité à un réseau privé.
**Politique de connexion** : Définissez comment les clients communiquent avec le serveur de base de données SQL :
- Par défaut : Utilise une politique de redirection pour toutes les connexions des clients depuis l'intérieur d'Azure (sauf celles utilisant des points de terminaison privés) et une politique de proxy pour les connexions depuis l'extérieur d'Azure.
- Proxy : Achemine toutes les connexions des clients via la passerelle Azure SQL Database.
- Redirection : Les clients se connectent directement au nœud hébergeant la base de données.
#### Fonctionnalités de sécurité
- **Microsoft Defender for SQL** : peut être activé, offrant des évaluations de vulnérabilité et une protection avancée contre les menaces.
- **Registre** : vérifie cryptographiquement l'intégrité des données, garantissant que toute falsification est détectée.
- **Identité du serveur** : utilise des identités gérées assignées au système et à l'utilisateur pour permettre un accès centralisé.
- **Gestion des clés de chiffrement des données transparentes** : chiffre les bases de données, sauvegardes et journaux au repos sans nécessiter de modifications de l'application. Le chiffrement peut être activé sur chaque base de données, et si configuré au niveau de la base de données, ces paramètres remplacent la configuration au niveau du serveur.
- **Toujours chiffré** : est un ensemble de fonctionnalités avancées de protection des données qui sépare la propriété des données de la gestion des données. Cela garantit que les administrateurs ou opérateurs ayant des privilèges élevés ne peuvent pas accéder aux données sensibles.
#### Modèles d'achat / Niveaux de service
- **Basé sur vCore** : Choisissez le calcul, la mémoire et le stockage indépendamment. Pour un usage général, critique pour les entreprises (avec une haute résilience et performance pour les applications OLTP), et évolue jusqu'à 128 To de stockage.
- **Basé sur DTU** : Regroupe le calcul, la mémoire et l'I/O en niveaux fixes. Ressources équilibrées pour des tâches courantes.
- Standard : Ressources équilibrées pour des tâches courantes.
- Premium : Haute performance pour des charges de travail exigeantes.
#### Performance évolutive et pools
- **Bases de données uniques** : Chaque base de données est isolée et dispose de ses propres ressources de calcul, de mémoire et de stockage dédiées. Les ressources peuvent être évoluées dynamiquement (vers le haut ou vers le bas) sans temps d'arrêt (1 à 128 vCores, 32 Go à 4 To de stockage, et jusqu'à 128 To).
- **Pools élastiques** : Partagent des ressources entre plusieurs bases de données dans un pool pour maximiser l'efficacité et réduire les coûts. Les ressources peuvent également être évoluées dynamiquement pour l'ensemble du pool.
- **Flexibilité des niveaux de service** : Commencez petit avec une base de données unique dans le niveau usage général. Passez aux niveaux critique pour les entreprises ou hyperscale à mesure que les besoins augmentent.
- **Pools élastiques** : Partagent des ressources entre plusieurs bases de données dans un pool pour maximiser l'efficacité et économiser des coûts. Les ressources peuvent également être évoluées dynamiquement pour l'ensemble du pool.
- **Flexibilité des niveaux de service** : Commencez petit avec une base de données unique dans le niveau d'usage général. Passez aux niveaux critique pour les entreprises ou hyperscale à mesure que les besoins augmentent.
- **Options d'évolutivité** : Évolutivité dynamique ou alternatives d'autoscaling.
#### Surveillance et optimisation intégrées
@@ -67,30 +121,30 @@ Azure SQL Database prend en charge des options de déploiement flexibles pour r
#### Niveaux de service
- **Usage général** : Option économique pour les applications avec des exigences standard en matière d'I/O et de latence.
- **Critique pour les entreprises** : Option haute performance avec une faible latence I/O pour des charges de travail critiques.
- **Critique pour les entreprises** : Option haute performance avec une faible latence I/O pour les charges de travail critiques.
#### Fonctionnalités de sécurité avancées
* **Protection contre les menaces** : Alertes de protection avancée contre les menaces pour les activités suspectes et les attaques par injection SQL. Audit pour suivre et enregistrer les événements de base de données pour la conformité.
* **Contrôle d'accès** : Authentification Microsoft Entra pour une gestion centralisée des identités. Sécurité au niveau des lignes et masquage dynamique des données pour un contrôle d'accès granulaire.
* **Contrôle d'accès** : Authentification Microsoft Entra pour la gestion centralisée des identités. Sécurité au niveau des lignes et masquage dynamique des données pour un contrôle d'accès granulaire.
* **Sauvegardes** : Sauvegardes automatisées et manuelles avec capacité de restauration à un instant donné.
### Azure SQL Virtual Machines
**Azure SQL Virtual Machines** est préférable pour les migrations où vous souhaitez **contrôler le système d'exploitation et l'instance SQL Server**, comme si c'était un serveur fonctionnant sur site. Il peut avoir différentes tailles de machines et une large sélection de versions et d'éditions de SQL Server.
#### Caractéristiques clés
#### Fonctionnalités clés
**Sauvegarde automatisée** : Planifiez des sauvegardes pour les bases de données SQL.
**Mise à jour automatique** : Automatise l'installation des mises à jour de Windows et de SQL Server pendant une fenêtre de maintenance.
**Intégration de Azure Key Vault** : Configure automatiquement Key Vault pour les machines virtuelles SQL Server.
**Intégration de Defender for Cloud** : Consultez les recommandations de Defender for SQL dans le portail.
**Sauvegarde automatisée** : Planifiez des sauvegardes pour les bases de données SQL.
**Mise à jour automatique** : Automatise l'installation des mises à jour de Windows et de SQL Server pendant une fenêtre de maintenance.
**Intégration de Key Vault Azure** : Configure automatiquement Key Vault pour les machines virtuelles SQL Server.
**Intégration de Defender for Cloud** : Affiche les recommandations de Defender for SQL dans le portail.
**Flexibilité de version/édition** : Changez les métadonnées de version ou d'édition de SQL Server sans redéployer la machine virtuelle.
#### Fonctionnalités de sécurité
**Microsoft Defender for SQL** : Insights et alertes de sécurité.
**Intégration de Azure Key Vault** : Stockage sécurisé des identifiants et des clés de chiffrement.
**Microsoft Defender for SQL** : Insights et alertes de sécurité.
**Intégration de Key Vault Azure** : Stockage sécurisé des credentials et des clés de chiffrement.
**Microsoft Entra (Azure AD)** : Authentification et contrôle d'accès.
## Énumération
@@ -99,7 +153,7 @@ Azure SQL Database prend en charge des options de déploiement flexibles pour r
{{#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 <server_name> --resource-group <resource_group>
## List Server Firewalls

View File

@@ -10,7 +10,7 @@ Les instances de calcul Google Cloud sont **des machines virtuelles personnalisa
Les VM confidentielles utilisent **des fonctionnalités de sécurité basées sur le matériel** offertes par la dernière génération de processeurs AMD EPYC, qui incluent le chiffrement de la mémoire et la virtualisation chiffrée sécurisée. Ces fonctionnalités permettent à la VM de protéger les données traitées et stockées à l'intérieur d'elle-même, même contre le système d'exploitation hôte et l'hyperviseur.
Pour exécuter une VM confidentielle, il peut être nécessaire de **changer** des éléments tels que le **type** de la **machine**, l'**interface** réseau, l'**image du disque de démarrage**.
Pour exécuter une VM confidentielle, il peut être nécessaire de **changer** des éléments comme le **type** de la **machine**, l'**interface** réseau, l'**image de disque de démarrage**.
### Disque et chiffrement de disque
@@ -34,11 +34,11 @@ Ce compte de service a le **rôle d'éditeur sur l'ensemble du projet (hauts pri
Et les **portées d'accès par défaut** sont les suivantes :
- **https://www.googleapis.com/auth/devstorage.read\_only** -- Accès en lecture aux 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)
Cependant, il est possible de **l'accorder `cloud-platform` d'un clic** ou de spécifier **des personnalisées**.
@@ -58,7 +58,7 @@ Il est possible de permettre le trafic HTTP et HTTPS.
### Sécurité supplémentaire
Ces options **augmenteront la sécurité** de la VM et sont recommandées :
Ces options vont **augmenter la sécurité** de la VM et sont recommandées :
- **Démarrage sécurisé :** Le démarrage sécurisé aide à protéger vos instances de VM contre les logiciels malveillants au niveau du démarrage et du noyau ainsi que les rootkits.
- **Activer vTPM :** Le module de plateforme de confiance virtuel (vTPM) valide l'intégrité de pré-démarrage et de démarrage de votre VM invitée, et offre génération et protection de clés.