# Az - MySQL-Datenbanken {{#include ../../../banners/hacktricks-training.md}} ## Azure MySQL Azure Database for MySQL ist ein vollständig verwalteter relationaler Datenbankdienst, der auf der MySQL Community Edition basiert und darauf ausgelegt ist, Skalierbarkeit, Sicherheit und Flexibilität für verschiedene Anwendungsbedürfnisse zu bieten. Es gibt zwei verschiedene Bereitstellungsmodelle: * **Single Server** (ist auf dem Rückzug): - Optimiert für kosteneffektive und einfach zu verwaltende MySQL-Bereitstellungen. - Zu den Funktionen gehören automatisierte Backups, hohe Verfügbarkeit und grundlegende Überwachung. - Ideal für Anwendungen mit vorhersehbaren Arbeitslasten. * **Flexible Server**: - Bietet mehr Kontrolle über die Datenbankverwaltung und -konfiguration. - Unterstützt hohe Verfügbarkeit (same-zone und zone-redundant). - Bietet elastische Skalierung, Patch-Management und Arbeitslastoptimierung. - Bietet Stop/Start-Funktionalität zur Kostensenkung. ### Hauptmerkmale * **Serververwaltung**: Die **ad-admin**-Funktion ermöglicht die Verwaltung von Azure Entra ID-Administratoren für MySQL-Server und bietet Kontrolle über den administrativen Zugriff über Entra ID-Anmeldeinformationen. Mysql unterstützt Benutzerverwaltete Identitäten, die zur Authentifizierung ohne die Notwendigkeit von Anmeldeinformationen verwendet werden und von anderen Diensten genutzt werden können. * **Lebenszyklusverwaltung**: Optionen zum Starten oder Stoppen eines Servers, Löschen einer flexiblen Serverinstanz, Neustarten eines Servers, um Konfigurationsänderungen schnell anzuwenden, und Warten, um sicherzustellen, dass ein Server bestimmte Bedingungen erfüllt, bevor mit Automatisierungsskripten fortgefahren wird. * **Sicherheit und Netzwerk**: Sichern Sie Ihren Server, indem Sie Verbindungen durch Firewall-Regeln einschränken, die nur bestimmte öffentliche IP-Adressen zulassen, oder indem Sie private Endpunkte verwenden, die Ihren Server in ein virtuelles Netzwerk integrieren. Alle Verbindungen sind mit TLS 1.2-Verschlüsselung geschützt. Datenbanken, Backups und Protokolle sind standardmäßig im Ruhezustand mit dienstverwalteten Schlüsseln oder benutzerdefinierten Schlüsseln verschlüsselt. * **Datenschutz und Backup**: umfasst Optionen zur Verwaltung flexibler Server-Backups für die Datenwiederherstellung, Durchführung von Geo-Wiederherstellungen zur Wiederherstellung eines Servers in einer anderen Region, Export von Server-Backups zur externen Nutzung (in der Vorschau) und Wiederherstellung eines Servers aus einem Backup zu einem bestimmten Zeitpunkt. ### Aufzählung {{#tabs }} {{#tab name="az cli" }} ```bash # List all flexible-servers az mysql flexible-server db list --resource-group # List databases in a flexible-server az mysql flexible-server db list --resource-group --server-name # Show specific details of a MySQL database az mysql flexible-server db show --resource-group --server-name --database-name # List firewall rules of the a server az mysql flexible-server firewall-rule list --resource-group --name # List all ad-admin in a server az mysql flexible-server ad-admin list --resource-group --server-name # List all user assigned managed identities from the server az mysql flexible-server identity list --resource-group --server-name # List the server backups az mysql flexible-server backup list --resource-group --name # List all read replicas for a given server az mysql flexible-server replica list --resource-group --name # Get the server's advanced threat protection setting az mysql flexible-server advanced-threat-protection-setting show --resource-group --name # List all of the maintenances of a flexible server az mysql flexible-server maintenance list --resource-group --server-name # List log files for a server. az mysql flexible-server server-logs list --resource-group --server-name ``` {{#endtab }} {{#tab name="Az Powershell" }} ```bash Get-Command -Module Az.MySql # Get all flexible servers in a resource group Get-AzMySqlFlexibleServer -ResourceGroupName # List databases in a specific flexible server Get-AzMySqlFlexibleServerDatabase -ResourceGroupName -ServerName # Get details of a specific database in a flexible server Get-AzMySqlFlexibleServerDatabase -ResourceGroupName -ServerName -DatabaseName # List all firewall rules for a flexible server Get-AzMySqlFlexibleServerFirewallRule -ResourceGroupName -ServerName # Get the identity information of a flexible server Get-AzMySqlFlexibleServerIdentity -ResourceGroupName -ServerName # Get the server's advanced threat protection setting Get-AzMySqlFlexibleServerAdvancedThreatProtection -ResourceGroupName -ServerName # List configuration settings of a flexible server Get-AzMySqlFlexibleServerConfiguration -ResourceGroupName -ServerName # Get the connection string for a flexible server Get-AzMySqlFlexibleServerConnectionString -ResourceGroupName -ServerName -Client # List all read replicas for a given server Get-AzMySqlFlexibleServerReplica -ResourceGroupName -ServerName # Get the maintenance window details for a flexible server Get-AzMySqlFlexibleServerMaintenanceWindow -ResourceGroupName -ServerName # List log files for a server Get-AzMySqlFlexibleServerLog -ResourceGroupName -ServerName ``` {{#endtab }} {{#endtabs }} ### Verbindung Mit der Erweiterung rdbms-connect können Sie auf die Datenbank zugreifen mit: ```bash az mysql flexible-server connect -n -u -p --interactive #or execute commands az mysql flexible-server execute \ -n \ -u \ -p "" \ -d \ --querytext "SELECT * FROM ;" ``` Oder mit dem MySQL-Native-Extension-Plugin ```bash mysql -h .mysql.database.azure.com -P 3306 -u -p ``` Außerdem können Sie Abfragen mit GitHub ausführen, aber das Passwort und der Benutzer sind ebenfalls erforderlich. Sie müssen eine SQL-Datei mit der auszuführenden Abfrage einrichten und dann: ```bash # Setup az mysql flexible-server deploy setup \ -s \ -g \ -u \ -p "" \ --sql-file \ --repo \ --branch \ --action-name \ --allow-push # Run it az mysql flexible-server deploy run \ --action-name \ --branch ``` ## Privilegienerhöhung {{#ref}} ../az-privilege-escalation/az-mysql-privesc.md {{#endref}} ## Nach der Ausnutzung {{#ref}} ../az-post-exploitation/az-mysql-post-exploitation.md {{#endref}} ## ToDo * Suchen Sie nach einer Möglichkeit, mit mysql flexible-server als Admin zuzugreifen, um zu überprüfen, ob es sich um eine Privilegienerhöhung handelt {{#include ../../../banners/hacktricks-training.md}}