Az - PostgreSQL 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.
PostgreSQL Privesc
Pour plus dâinformations sur SQL Database, consultez :
Microsoft.DBforPostgreSQL/flexibleServers/read && Microsoft.DBforPostgreSQL/flexibleServers/write
Avec cette permission, vous pouvez créer, mettre à jour ou supprimer des instances de serveurs flexibles PostgreSQL sur Azure. Cela inclut la provision de nouveaux serveurs, la modification des configurations de serveurs existants ou la mise hors service de serveurs.
az postgres flexible-server create \
--name <ServerName> \
--resource-group <ResourceGroupName> \
--location <Location> \
--admin-user <AdminUsername> \
--admin-password <AdminPassword> \
--sku-name <SkuName> \
--storage-size <StorageSizeInGB> \
--tier <PricingTier> \
--version <PostgreSQLVersion>
Par exemple, ces autorisations permettent de changer le mot de passe PostgreSQL, utile bien sĂ»r dans le cas oĂč lâauthentification PostgreSQL est activĂ©e.
az postgres flexible-server update \
--resource-group <resource_group_name> \
--name <server_name> \
--admin-password <password_to_update>
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. Ici, vous pouvez trouver toutes les extensions que le serveur flexible Azure PostgreSQL prend en charge https://learn.microsoft.com/en-us/azure/cosmos-db/postgresql/reference-extensions. Pour pouvoir utiliser ces extensions, certains paramĂštres du serveur (azure.extensions) doivent ĂȘtre modifiĂ©s. Par exemple, ici avec une identitĂ© gĂ©rĂ©e qui peut accĂ©der Ă Azure Storage :
Tout dâabord, nous changeons les paramĂštres et nous assurons que lâidentitĂ© assignĂ©e est activĂ©e :
az postgres flexible-server parameter set \
--resource-group <YourResourceGroupName> \
--server-name <YourServerName> \
--name azure.extensions \
--value "AZURE_STORAGE"
az postgres flexible-server identity update \
--resource-group <YourResourceGroupName> \
--server-name <YourServerName> \
--system-assigned Enabled
CREATE EXTENSION IF NOT EXISTS azure_storage;
CREATE EXTERNAL DATA SOURCE ManagedIdentity
SELECT azure_storage.account_add('<storage-account>', '<storage-key>');
SELECT *
FROM azure_storage.blob_get(
'<storage-account>',
'<container>',
'message.txt',
decoder := 'text'
) AS t(content text)
LIMIT 1;
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 postgres flexible-server update --resource-group <resource_group_name> --server-name <server_name> --public-access Enabled
Microsoft.DBforPostgreSQL/flexibleServers/read, Microsoft.DBforPostgreSQL/flexibleServers/write, Microsoft.DBforPostgreSQL/flexibleServers/backups/read, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
Avec ces autorisations, vous pouvez restaurer un serveur Ă partir dâune sauvegarde avec :
az postgres flexible-server restore \
--resource-group <RESOURCE_GROUP> \
--name <NEW_SERVER_NAME> \
--source-server <SOURCE_SERVER_NAME> \
--restore-time "<ISO8601_TIMESTAMP>" \
--yes
Microsoft.DBforPostgreSQL/flexibleServers/read, Microsoft.DBforPostgreSQL/flexibleServers/write, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action, Microsoft.DBforPostgreSQL/flexibleServers/administrators/write && Microsoft.DBforPostgreSQL/flexibleServers/administrators/read
Avec cette permission, vous pouvez configurer des administrateurs Azure Active Directory (AD) pour un serveur flexible PostgreSQL. Cela peut ĂȘtre exploitĂ© en se dĂ©finissant soi-mĂȘme ou un autre compte comme administrateur AD, accordant un contrĂŽle administratif total sur le serveur PostgreSQL. La mise Ă jour dâun principal existant nâest pas encore prise en charge, donc sâil y en a un créé, vous devez dâabord le supprimer.
Il est important que le serveur flexible ait des identités gérées assignées à utiliser.
az postgres flexible-server ad-admin create \
--resource-group <ResourceGroupName> \
--server-name <ServerName> \
--display-name <ADAdminDisplayName> \
--identity <IdentityNameOrID> \
--object-id <ObjectID>
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

