# Az - MySQL Post Exploitation

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

## MySQL Database Post Exploitation
Per ulteriori informazioni su MySQL Database controlla:

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

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

Con questo permesso, puoi creare nuovi database all'interno di un'istanza di MySQL Flexible Server su Azure. Anche se questa azione di per sé non modifica le risorse esistenti, la creazione eccessiva o non autorizzata di database potrebbe portare a un consumo di risorse o a un potenziale uso improprio del server.
```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`

Con questo permesso, puoi avviare la creazione di backup per un'istanza di MySQL Flexible Server su Azure. Questo consente agli utenti di generare backup su richiesta, che possono essere utili per preservare i dati in momenti specifici.
```bash
az mysql flexible-server backup create \
--name <server_name> \
--resource-group <resource_group_name>
--backup-name <backup_name>
```
### `Microsoft.DBforMySQL/flexibleServers/advancedThreatProtectionSettings/write`

Con questo permesso, puoi configurare o aggiornare le impostazioni di Advanced Threat Protection (ATP) per un'istanza di MySQL Flexible Server su Azure. Questo consente di abilitare o disabilitare le funzionalità di sicurezza progettate per rilevare e rispondere ad attività anomale e potenziali minacce.
```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`

Con questo permesso, puoi creare o modificare le regole del firewall per un'istanza di MySQL Flexible Server su Azure. Questo consente di controllare quali indirizzi IP o intervalli possono accedere al server. L'uso non autorizzato o improprio di questo permesso potrebbe esporre il server ad accessi indesiderati o malevoli.
```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`

Con questo permesso, puoi resettare il GTID (Global Transaction Identifier) per un'istanza di MySQL Flexible Server su Azure. Resettare il GTID invaliderà tutti i backup automatizzati, on-demand e geo-backup effettuati prima dell'azione di reset. Dopo il reset del GTID, non sarai in grado di eseguire PITR (point-in-time-restore) utilizzando il punto di ripristino più veloce o un punto di ripristino personalizzato se l'orario di ripristino selezionato è precedente all'orario di reset del GTID. E il geo-ripristino riuscito sarà possibile solo dopo 5 giorni.
```bash
az mysql flexible-server reset-gtid \
--name  \
--resource-group <resource_group_name> \
--gtid-set <gtid>
```
### `Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action`

Con questo permesso, puoi aggiornare le impostazioni di configurazione di un'istanza di MySQL Flexible Server su Azure. Questo consente la personalizzazione dei parametri del server come l'ottimizzazione delle prestazioni, le configurazioni di sicurezza o le impostazioni operative. Puoi aggiornare i seguenti parametri insieme in un batch: 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 e 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`

Con questo permesso, puoi assegnare un'identità gestita assegnata all'utente ai server MySQL flessibili.
```bash
az mysql flexible-server identity assign \
--resource-group <ResourceGroupName> \
--server-name <ServerName> \
--identity <IdentityName>
```
### `Microsoft.DBforMySQL/flexibleServers/stop/action`

Con questo permesso, puoi fermare un'istanza di PostgreSQL Flexible Server su Azure. Fermare un server può portare a un'interruzione temporanea del servizio, influenzando le applicazioni e gli utenti dipendenti dal database.
```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}}
