Files
hacktricks-cloud/src/pentesting-cloud/azure-security/az-services/az-mysql.md

9.5 KiB

Az - MySQL Databases

{% hint style="success" %} Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks
{% endhint %}

Azure MySQL

Azure Database for MySQL is 'n volledig bestuurde relationele databasisdiens gebaseer op die MySQL Gemeenskapsuitgawe, ontwerp om skaalbaarheid, sekuriteit en buigsaamheid vir verskeie toepassingsbehoeftes te bied. Dit het twee verskillende ontplooiingsmodelle:

  • Enkelbediener (is op die aftreepad):
  • Geoptimaliseer vir kostedoeltreffende en maklik bestuurbare MySQL ontplooiings.
  • Kenmerke sluit outomatiese rugsteun, hoë beskikbaarheid en basiese monitering in.
  • Ideaal vir toepassings met voorspelbare werklas.
  • Buigsame Bediener:
  • Bied meer beheer oor databasisbestuur en konfigurasie.
  • Ondersteun hoë beskikbaarheid (dieselfde sone en sone-redundant).
  • Kenmerke sluit elastiese skaalbaarheid, patchbestuur en werklasoptimalisering in.
  • Bied stop/start funksionaliteit vir kostebesparings.

Sleutelkenmerke

  • Bedienerbestuur: Die ad-admin kenmerk laat die bestuur van Azure Active Directory (AAD) administrateurs vir MySQL bedieners toe, wat beheer oor administratiewe toegang via AAD akrediteer besorg, terwyl die identiteit kenmerk die toewysing en bestuur van Azure Beheerde Identiteite moontlik maak, wat veilige, akrediteer-vrye verifikasie vir toegang tot Azure hulpbronne bied.
  • Levensiklusbestuur: opsies om 'n bediener te begin of te stop, 'n buigsame bedienerinstansie te verwyder, 'n bediener te herbegin om vinnig konfigurasiewijzigings toe te pas, en te wag om te verseker dat 'n bediener aan spesifieke voorwaardes voldoen voordat outomatiseringskripte voortgaan.
  • Sekuriteit en Netwerk: kan bediener vuurmuurreëls bestuur vir veilige databasis toegang en virtuele netwerk konfigurasies soos nodig ontkoppel.
  • Data-beskerming en Rugsteun: sluit opsies in om buigsame bediener rugsteun te bestuur vir dataherwinning, geo-herstel uit te voer om 'n bediener in 'n ander streek te herstel, bediener rugsteun vir eksterne gebruik te eksporteer (in Voorbeeld), en 'n bediener van rugsteun na 'n spesifieke tydstip te herstel.

Enumerasie

{% tabs %} {% tab title="az cli" %} {% code overflow="wrap" %}

# List all flexible-servers
az mysql flexible-server db list --resource-group <resource-group-name>
# List databases in a flexible-server
az mysql flexible-server db list --resource-group <resource-group-name> --server-name <server_name>
# Show specific details of a MySQL database
az mysql flexible-server db show --resource-group <resource-group-name> --server-name <server_name> --database-name <database_name>

# List firewall rules of the a server
az mysql flexible-server firewall-rule list --resource-group <resource-group-name> --name <server_name>

# List all ad-admin in a server
az mysql flexible-server ad-admin list --resource-group <resource-group-name> --server-name <server_name>
# List all user assigned managed identities from the server
az mysql flexible-server identity list --resource-group <resource-group-name> --server-name <server_name>

# List the server backups
az mysql flexible-server backup list --resource-group <resource-group-name> --name <server_name>
# List all read replicas for a given server
az mysql flexible-server replica list --resource-group <resource-group-name> --name <server_name>

# Get the server's advanced threat protection setting
az mysql flexible-server advanced-threat-protection-setting show --resource-group <resource-group-name> --name <server_name>
# List all of the maintenances of a flexible server
az mysql flexible-server maintenance list --resource-group <resource-group-name> --server-name <server_name>
# List log files for a server.
az mysql flexible-server server-logs list --resource-group <resource-group-name> --server-name <server_name>

{% endcode %} {% endtab %}

{% tab title="Az PowerShell" %} {% code overflow="wrap" %}

Get-Command -Module Az.MySql

# Get all flexible servers in a resource group
Get-AzMySqlFlexibleServer -ResourceGroupName <resource-group-name>

# List databases in a specific flexible server
Get-AzMySqlFlexibleServerDatabase -ResourceGroupName <resource-group-name> -ServerName <server_name>

# Get details of a specific database in a flexible server
Get-AzMySqlFlexibleServerDatabase -ResourceGroupName <resource-group-name> -ServerName <server_name> -DatabaseName <database_name>

# List all firewall rules for a flexible server
Get-AzMySqlFlexibleServerFirewallRule -ResourceGroupName <resource-group-name> -ServerName <server_name>

# Get the identity information of a flexible server
Get-AzMySqlFlexibleServerIdentity -ResourceGroupName <resource-group-name> -ServerName <server_name>

# Get the server's advanced threat protection setting
Get-AzMySqlFlexibleServerAdvancedThreatProtection -ResourceGroupName <resource-group-name> -ServerName <server_name>

# List configuration settings of a flexible server
Get-AzMySqlFlexibleServerConfiguration -ResourceGroupName <resource-group-name> -ServerName <server_name>
# Get the connection string for a flexible server
Get-AzMySqlFlexibleServerConnectionString -ResourceGroupName <resource-group-name> -ServerName <server_name> -Client <client>

# List all read replicas for a given server
Get-AzMySqlFlexibleServerReplica -ResourceGroupName <resource-group-name> -ServerName <server_name>

# Get the maintenance window details for a flexible server
Get-AzMySqlFlexibleServerMaintenanceWindow -ResourceGroupName <resource-group-name> -ServerName <server_name>

# List log files for a server
Get-AzMySqlFlexibleServerLog -ResourceGroupName <resource-group-name> -ServerName <server_name>

{% endcode %} {% endtab %} {% endtabs %}

Verbinding

Met die uitbreiding rdbms-connect kan jy toegang tot die databasis verkry met:

{% code overflow="wrap" %}

az mysql flexible-server connect -n <server-name> -u <username> -p <password> --interactive

#or execute commands
az mysql flexible-server execute \
-n <server-name> \
-u <username> \
-p "<password>" \
-d <database-name> \
--querytext "SELECT * FROM <table-name>;"

{% endcode %}

Of met die MySQL inheemse uitbreiding plugin {% code overflow="wrap" %}

mysql -h <server-name>.mysql.database.azure.com -P 3306 -u <username> -p

{% endcode %}

U kan ook navrae met github uitvoer, maar die wagwoord en gebruiker is ook nodig. U moet 'n sql-lêer opstel met die navraag om uit te voer en dan:
{% code overflow="wrap" %}

# Setup
az mysql flexible-server deploy setup \
-s <server-name> \
-g <resource-group> \
-u <admin-user> \
-p "<admin-password>" \
--sql-file <path-to-sql-file> \
--repo <github-username/repository-name> \
--branch <branch-name> \
--action-name <action-name> \
--allow-push

# Run it
az mysql flexible-server deploy run \
--action-name <action-name> \
--branch <branch-name>

{% endcode %}

Privilege Escalation

{% content-ref url="../az-privilege-escalation/az-mysql-privesc.md" %} az-mysql-privesc.md {% endcontent-ref %}

Post Exploitation

{% content-ref url="../az-post-exploitation/az-mysql-post-exploitation.md" %} az-sql-mysql-exploitation.md {% endcontent-ref %}

ToDo

  • Soek 'n manier om toegang te verkry met mysql flexible-server ad-admin om te verifieer dat dit 'n privesc-metode is

{% hint style="success" %} Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}