# Az - MySQL Post Exploitation

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

## MySQL Database Post Exploitation
Pour plus d'informations sur MySQL Database, consultez :

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

### `Microsoft.DBforMySQL/flexibleServers/databases/write` && `Microsoft.DBforMySQL/flexibleServers/databases/read`

Avec cette permission, vous pouvez créer de nouvelles bases de données au sein d'une instance de MySQL Flexible Server sur Azure. Bien que cette action ne modifie pas les ressources existantes, la création excessive ou non autorisée de bases de données pourrait entraîner une consommation de ressources ou un potentiel abus du serveur.
```bash
az mysql flexible-server db create \
--server-name <server_name> \
--resource-group <resource_group_name> \
--database-name <database_name>
```
### `Microsoft.DBforMySQL/flexibleServers/backups/write`

Avec cette autorisation, vous pouvez initier la création de sauvegardes pour une instance de serveur flexible MySQL sur Azure. Cela permet aux utilisateurs de générer des sauvegardes à la demande, ce qui peut être utile pour préserver des données à des moments spécifiques.
```bash
az mysql flexible-server backup create \
--name <server_name> \
--resource-group <resource_group_name>
--backup-name <backup_name>
```
### `Microsoft.DBforMySQL/flexibleServers/advancedThreatProtectionSettings/write`

Avec cette autorisation, vous pouvez configurer ou mettre à jour les paramètres de Protection Avancée contre les Menaces (ATP) pour une instance de Serveur MySQL Flexible sur Azure. Cela permet d'activer ou de désactiver des fonctionnalités de sécurité conçues pour détecter et répondre à des activités anormales et à des menaces potentielles.
```bash
az mysql flexible-server threat-protection-policy update \
--name <server_name> \
--resource-group <resource_group_name> \
--state <Enabled|Disabled>
```
### `Microsoft.DBforMySQL/flexibleServers/firewallRules/write`

Avec cette autorisation, vous pouvez créer ou modifier des règles de pare-feu pour une instance de serveur MySQL Flexible sur Azure. Cela permet de contrôler quels adresses IP ou plages peuvent accéder au serveur. L'utilisation non autorisée ou inappropriée de cette autorisation pourrait exposer le serveur à un accès indésirable ou malveillant.
```bash
# Create Rule
az mysql flexible-server firewall-rule create \
--name <server_name> \
--resource-group <resource_group_name> \
--rule-name <rule_name> \
--start-ip-address <start_ip> \
--end-ip-address <end_ip>

# Update Rule
az mysql flexible-server firewall-rule update \
--name <server_name> \
--resource-group <resource_group_name> \
--rule-name <rule_name> \
--start-ip-address <start_ip> \
--end-ip-address <end_ip>
```
### `Microsoft.DBforMySQL/flexibleServers/resetGtid/action`

Avec cette autorisation, vous pouvez réinitialiser le GTID (Global Transaction Identifier) pour une instance de serveur flexible MySQL sur Azure. La réinitialisation du GTID invalidera toutes les sauvegardes automatisées, à la demande et les sauvegardes géographiques qui ont été effectuées avant l'action de réinitialisation. Après la réinitialisation du GTID, vous ne pourrez pas effectuer de PITR (point-in-time-restore) en utilisant le point de restauration le plus rapide ou par un point de restauration personnalisé si le temps de restauration sélectionné est antérieur au temps de réinitialisation du GTID. Et la restauration géographique réussie ne sera possible qu'après 5 jours.
```bash
az mysql flexible-server reset-gtid \
--name  \
--resource-group <resource_group_name> \
--gtid-set <gtid>
```
### `Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action`

Avec cette autorisation, vous pouvez mettre à jour les paramètres de configuration d'une instance de MySQL Flexible Server sur Azure. Cela permet de personnaliser les paramètres du serveur tels que l'optimisation des performances, les configurations de sécurité ou les paramètres opérationnels. Vous pouvez mettre à jour les paramètres suivants ensemble dans un lot : audit_log_enabled, audit_log_events, binlog_expire_logs_seconds, binlog_row_image, character_set_server, collation_server, connect_timeout, enforce_gtid_consistency, gtid_mode, init_connect, innodb_buffer_pool_size, innodb_io_capacity, innodb_io_capacity_max, innodb_purge_threads, innodb_read_io_threads, innodb_thread_concurrency, innodb_write_io_threads, long_query_time, max_connect_errors, et max_connections.
```bash
az mysql flexible-server parameter set-batch \
--resource-group <resource_group_name> \
--server-name <server_name> \
--args max_connections=<value>
```
### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`

Avec cette autorisation, vous pouvez attribuer une identité gérée assignée par l'utilisateur aux serveurs MySQL flexibles.
```bash
az mysql flexible-server identity assign \
--resource-group <ResourceGroupName> \
--server-name <ServerName> \
--identity <IdentityName>
```
### `Microsoft.DBforMySQL/flexibleServers/stop/action`

Avec cette autorisation, vous pouvez arrêter une instance de serveur flexible PostgreSQL sur Azure. L'arrêt d'un serveur peut entraîner une interruption temporaire du service, affectant les applications et les utilisateurs dépendants de la base de données.
```bash
az mysql flexible-server stop \
--name <server_name> \
--resource-group <resource_group_name>
```

### `Microsoft.DBforMySQL/flexibleServers/start/action`
With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database.

```bash
az mysql flexible-server start \
--name <server_name> \
--resource-group <resource_group_name>
```

### `*/delete`

With this permissions you can delete resources related to mysql server in Azure such as server, firewalls, managed identities or configurations

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