Az - MySQL Databases

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Azure MySQL

Η Azure Database for MySQL είναι μια πλήρως διαχειριζόμενη υπηρεσία σχεσιακής βάσης δεδομένων βασισμένη στην MySQL Community Edition, σχεδιασμένη για να παρέχει κλιμάκωση, ασφάλεια και ευελιξία για διάφορες ανάγκες εφαρμογών. Έχει δύο διαφορετικά μοντέλα ανάπτυξης:

  • Single Server (είναι σε πορεία αποσύρσης):
  • Βελτιστοποιημένο για οικονομικά αποδοτικές και εύκολες στη διαχείριση αναπτύξεις MySQL.
  • Χαρακτηριστικά περιλαμβάνουν αυτοματοποιημένα αντίγραφα ασφαλείας, υψηλή διαθεσιμότητα και βασική παρακολούθηση.
  • Ιδανικό για εφαρμογές με προβλέψιμα φορτία εργασίας.
  • Flexible Server:
  • Παρέχει περισσότερη έλεγχο στη διαχείριση και τη διαμόρφωση της βάσης δεδομένων.
  • Υποστηρίζει υψηλή διαθεσιμότητα (ίδια ζώνη και ζώνη-ανθεκτική).
  • Χαρακτηριστικά περιλαμβάνουν ελαστική κλιμάκωση, διαχείριση ενημερώσεων και βελτιστοποίηση φορτίου εργασίας.
  • Προσφέρει λειτουργία διακοπής/εκκίνησης για εξοικονόμηση κόστους.

Key Features

  • Server Management: Η δυνατότητα ad-admin επιτρέπει τη διαχείριση των διαχειριστών Azure Entra ID για τους διακομιστές MySQL, παρέχοντας έλεγχο στην διοικητική πρόσβαση μέσω διαπιστευτηρίων Entra ID. Η Mysql υποστηρίζει User Managed Identities, που χρησιμοποιούνται για αυθεντικοποίηση χωρίς την ανάγκη διαπιστευτηρίων, και μπορούν να χρησιμοποιηθούν από άλλες υπηρεσίες.
  • Lifecycle Management: επιλογές για εκκίνηση ή διακοπή ενός διακομιστή, διαγραφή μιας ευέλικτης παρουσίας διακομιστή, επανεκκίνηση ενός διακομιστή για γρήγορη εφαρμογή αλλαγών διαμόρφωσης, και αναμονή για να διασφαλιστεί ότι ένας διακομιστής πληροί συγκεκριμένες προϋποθέσεις πριν προχωρήσει με τα αυτοματοποιημένα σενάρια.
  • Security and Networking: Ασφαλίστε τον διακομιστή σας περιορίζοντας τις συνδέσεις μέσω κανόνων τείχους προστασίας που επιτρέπουν μόνο συγκεκριμένες δημόσιες διευθύνσεις IP, ή χρησιμοποιώντας ιδιωτικά endpoints που ενσωματώνουν τον διακομιστή σας σε ένα εικονικό δίκτυο. Όλες οι συνδέσεις προστατεύονται με κρυπτογράφηση TLS 1.2. Οι βάσεις δεδομένων, τα αντίγραφα ασφαλείας και τα αρχεία καταγραφής κρυπτογραφούνται σε κατάσταση ηρεμίας από προεπιλογή χρησιμοποιώντας κλειδιά που διαχειρίζεται η υπηρεσία ή προσαρμοσμένα κλειδιά.
  • Data Protection and Backup: περιλαμβάνει επιλογές για τη διαχείριση των αντιγράφων ασφαλείας ευέλικτου διακομιστή για ανάκτηση δεδομένων, εκτέλεση γεω-αποκατάστασης για την ανάκτηση ενός διακομιστή σε διαφορετική περιοχή, εξαγωγή αντιγράφων ασφαλείας διακομιστή για εξωτερική χρήση (σε Preview), και αποκατάσταση ενός διακομιστή από αντίγραφο ασφαλείας σε συγκεκριμένη χρονική στιγμή.

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>

Σύνδεση

Με την επέκταση rdbms-connect μπορείτε να αποκτήσετε πρόσβαση στη βάση δεδομένων με:

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

Ή με το πρόσθετο MySQL native extension

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

Επίσης, μπορείτε να εκτελέσετε ερωτήματα με το github, αλλά απαιτούνται επίσης ο κωδικός πρόσβασης και ο χρήστης. Πρέπει να ρυθμίσετε ένα αρχείο sql με το ερώτημα που θέλετε να εκτελέσετε και στη συνέχεια:

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

Ανύψωση Δικαιωμάτων

Az - MySQL Privesc

Μετά την Εκμετάλλευση

Az - MySQL Post Exploitation

ToDo

  • Αναζητήστε έναν τρόπο πρόσβασης με mysql flexible-server ad-admin για να επαληθεύσετε ότι είναι μέθοδος ανύψωσης δικαιωμάτων

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks