Files
hacktricks-cloud/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md

2.5 KiB

Az - PostgreSQL Privesc

{{#include ../../../banners/hacktricks-training.md}}

PostgreSQL Privesc

Per ulteriori informazioni su SQL Database controlla:

{{#ref}} ../az-services/az-postgresql.md {{#endref}}

Microsoft.DBforPostgreSQL/flexibleServers/read && Microsoft.DBforPostgreSQL/flexibleServers/write

Con questo permesso, puoi creare, aggiornare o eliminare istanze di PostgreSQL Flexible Server su Azure. Questo include la fornitura di nuovi server, la modifica delle configurazioni dei server esistenti o la dismissione dei server.

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>

Ad esempio, queste autorizzazioni consentono di cambiare la password di PostgreSQL, utile ovviamente nel caso in cui l'autenticazione di PostgreSQL sia abilitata.

az postgres flexible-server update \
--resource-group <resource_group_name> \
--name <server_name> \
--admin-password <password_to_update>

Inoltre, è necessario avere l'accesso pubblico abilitato se si desidera accedere da un endpoint non privato. Per abilitarlo:

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.ManagedIdentity/userAssignedIdentities/assign/action, Microsoft.DBforPostgreSQL/flexibleServers/administrators/write && Microsoft.DBforPostgreSQL/flexibleServers/administrators/read

Con questo permesso, puoi configurare gli amministratori di Azure Active Directory (AD) per un PostgreSQL Flexible Server. Questo può essere sfruttato impostando se stessi o un altro account come amministratore AD, concedendo il pieno controllo amministrativo sul server PostgreSQL. L'aggiornamento del principale esistente non è ancora supportato, quindi se ce n'è uno creato, devi prima eliminarlo.

È importante che il flexible-server abbia identità gestite assegnate a un utente da utilizzare.

az postgres flexible-server ad-admin create \
--resource-group <ResourceGroupName> \
--server-name <ServerName> \
--display-name <ADAdminDisplayName> \
--identity <IdentityNameOrID> \
--object-id <ObjectID>

{{#include ../../../banners/hacktricks-training.md}}