Az - MySQL Veritabanları

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Azure MySQL

Azure Database for MySQL, MySQL Community Edition’a dayanan tamamen yönetilen bir ilişkisel veritabanı hizmetidir ve çeşitli uygulama ihtiyaçları için ölçeklenebilirlik, güvenlik ve esneklik sağlamak üzere tasarlanmıştır. İki farklı dağıtım modeli vardır:

  • Tek Sunucu (emeklilik yolunda):
  • Maliyet etkin ve yönetimi kolay MySQL dağıtımları için optimize edilmiştir.
  • Özellikler arasında otomatik yedeklemeler, yüksek kullanılabilirlik ve temel izleme bulunmaktadır.
  • Öngörülebilir iş yüklerine sahip uygulamalar için idealdir.
  • Esnek Sunucu:
  • Veritabanı yönetimi ve yapılandırması üzerinde daha fazla kontrol sağlar.
  • Yüksek kullanılabilirliği destekler (aynı bölge ve bölge yedekli).
  • Elastik ölçekleme, yamanın yönetimi ve iş yükü optimizasyonu gibi özellikler sunar.
  • Maliyet tasarrufu için durdurma/başlatma işlevselliği sunar.

Ana Özellikler

  • Sunucu Yönetimi: ad-admin özelliği, MySQL sunucuları için Azure Entra ID yöneticilerini yönetmeyi sağlar ve Entra ID kimlik bilgileri aracılığıyla yönetim erişimi üzerinde kontrol sunar. Mysql, kimlik bilgilerine ihtiyaç duymadan kimlik doğrulamak için kullanılan Kullanıcı Yönetimli Kimlikleri destekler ve diğer hizmetler tarafından kullanılabilir.
  • Yaşam Döngüsü Yönetimi: bir sunucuyu başlatma veya durdurma, esnek bir sunucu örneğini silme, yapılandırma değişikliklerini hızlı bir şekilde uygulamak için bir sunucuyu yeniden başlatma ve otomasyon betikleri ile devam etmeden önce bir sunucunun belirli koşulları karşıladığından emin olmak için bekleme seçenekleri içerir.
  • Güvenlik ve Ağ: Sunucunuzu, yalnızca belirli genel IP adreslerine izin veren güvenlik duvarı kuralları aracılığıyla bağlantıları kısıtlayarak veya sunucunuzu sanal bir ağa entegre eden özel uç noktalar kullanarak güvence altına alın. Tüm bağlantılar TLS 1.2 şifrelemesi ile korunmaktadır. Veritabanları, yedeklemeler ve günlükler, varsayılan olarak hizmet yönetimli anahtarlar veya özel anahtarlar kullanılarak dinlenme durumunda şifrelenir.
  • Veri Koruma ve Yedekleme: veri kurtarma için esnek sunucu yedeklemelerini yönetme, farklı bir bölgede bir sunucuyu kurtarmak için coğrafi geri yükleme yapma, dış kullanım için sunucu yedeklemelerini dışa aktarma (Önizleme aşamasında) ve bir sunucuyu yedekten belirli bir zamana geri yükleme seçeneklerini içerir.

Sayım

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

Bağlantı

rdbms-connect uzantısıyla veritabanına erişebilirsiniz:

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 yerel uzantı eklentisi ile de

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

Ayrıca, sorguları github ile de çalıştırabilirsiniz, ancak şifre ve kullanıcı adı da gereklidir. Çalıştırılacak sorgu ile bir sql dosyası oluşturmanız ve ardından:

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

Yetki Yükseltme

Az - MySQL Privesc

Sonrası İstismar

Az - MySQL Post Exploitation

Yapılacaklar

  • Yetki yükseltme yöntemi olduğunu doğrulamak için mysql flexible-server ad-admin ile erişim yolu arayın

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin