Az - Bases de données MySQL

Reading time: 7 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Azure MySQL

Azure Database for MySQL est un service de base de données relationnelle entièrement géré basé sur l'édition communautaire de MySQL, conçu pour offrir évolutivité, sécurité et flexibilité pour divers besoins d'application. Il dispose de deux modèles de déploiement différents :

  • Serveur unique (est sur la voie de la retraite) :
  • Optimisé pour des déploiements MySQL rentables et faciles à gérer.
  • Les fonctionnalités incluent des sauvegardes automatisées, une haute disponibilité et une surveillance de base.
  • Idéal pour les applications avec des charges de travail prévisibles.
  • Serveur flexible :
  • Offre plus de contrôle sur la gestion et la configuration de la base de données.
  • Prend en charge la haute disponibilité (dans la même zone et redondante entre zones).
  • Comprend une mise à l'échelle élastique, la gestion des correctifs et l'optimisation des charges de travail.
  • Offre des fonctionnalités d'arrêt/démarrage pour des économies de coûts.

Caractéristiques clés

  • Gestion des serveurs : La fonctionnalité ad-admin permet de gérer les administrateurs Azure Entra ID pour les serveurs MySQL, offrant un contrôle sur l'accès administratif via des identifiants Entra ID. Mysql prend en charge les identités gérées par l'utilisateur, utilisées pour s'authentifier sans avoir besoin de credentials, et peut être utilisées par d'autres services.
  • Gestion du cycle de vie : options pour démarrer ou arrêter un serveur, supprimer une instance de serveur flexible, redémarrer un serveur pour appliquer rapidement des modifications de configuration, et attendre pour s'assurer qu'un serveur répond à des conditions spécifiques avant de procéder avec des scripts d'automatisation.
  • Sécurité et mise en réseau : Sécurisez votre serveur en restreignant les connexions via des règles de pare-feu qui n'autorisent que des adresses IP publiques spécifiques, ou en utilisant des points de terminaison privés qui intègrent votre serveur dans un réseau virtuel. Toutes les connexions sont protégées par un chiffrement TLS 1.2. Les bases de données, les sauvegardes et les journaux sont chiffrés au repos par défaut à l'aide de clés gérées par le service ou de clés personnalisées.
  • Protection des données et sauvegarde : inclut des options pour gérer les sauvegardes de serveurs flexibles pour la récupération des données, effectuer une restauration géographique pour récupérer un serveur dans une autre région, exporter des sauvegardes de serveur pour un usage externe (en aperçu), et restaurer un serveur à partir d'une sauvegarde à un moment spécifique.

Énumération

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

Connexion

Avec l'extension rdbms-connect, vous pouvez accéder à la base de données avec :

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

Ou avec le plugin d'extension natif MySQL

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

Vous pouvez également exécuter des requêtes avec github, mais le mot de passe et l'utilisateur sont également nécessaires. Vous devez configurer un fichier sql avec la requête à exécuter et ensuite :

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

Escalade de privilèges

Az - MySQL Privesc

Post-exploitation

Az - MySQL Post Exploitation

À faire

  • Chercher un moyen d'accéder avec mysql flexible-server ad-admin pour vérifier que c'est une méthode d'escalade de privilèges

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks