Az - MySQL Databases

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Azure MySQL

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

  • Single Server (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.
  • Flexible Server:
  • 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.

Key Features

  • Server Management: Die ad-admin kenmerk laat die bestuur van Azure Entra ID administrateurs vir MySQL bedieners toe, wat beheer oor administratiewe toegang via Entra ID akrediteerbare bied. Mysql ondersteun Gebruiker Beheerde Identiteite, wat gebruik word om te autentiseer sonder die behoefte aan akrediteerbare, en kan deur ander dienste gebruik word.
  • Lifecycle Management: opsies om ’n bediener te begin of te stop, ’n fleksibele 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.
  • Security and Networking: Beveilig jou bediener deur verbindings te beperk deur firewall-reëls wat slegs spesifieke publieke IP adresse toelaat, of deur private eindpunte te gebruik wat jou bediener in ’n virtuele netwerk integreer. Alle verbindings is beskerm met TLS 1.2 versleuteling. Databasisse, rugsteun en logs is standaard versleuteld in rus met behulp van diensbestuurde sleutels of pasgemaakte sleutels.
  • Data Protection and Backup: sluit opsies in om fleksibele bediener rugsteun te bestuur vir dataherstel, geo-herstel uit te voer om ’n bediener in ’n ander streek te herstel, bediener rugsteun vir eksterne gebruik (in Voorbeeld) te voer, en ’n bediener van rugsteun na ’n spesifieke tydstip te herstel.

Enumeration

# 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>

Verbinding

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

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>;"

Of met die MySQL inheemse uitbreiding plugin

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

Ook kan jy navrae uitvoer met github, maar die wagwoord en gebruiker is ook nodig. Jy moet ’n sql-lêer opstel met die navraag om uit te voer en dan:

# 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>

Privilege Escalation

Az - MySQL Privesc

Post Exploitation

Az - MySQL Post Exploitation

ToDo

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

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks