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

2.8 KiB

Az - PostgreSQL Privesc

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

PostgreSQL Privesc

Für weitere Informationen zur SQL-Datenbank siehe:

{% content-ref url="../az-services/az-postgresql.md" %} az-postgresql.md {% endcontent-ref %}

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

Mit dieser Berechtigung können Sie PostgreSQL Flexible Server-Instanzen auf Azure erstellen, aktualisieren oder löschen. Dies umfasst die Bereitstellung neuer Server, die Modifizierung bestehender Serverkonfigurationen oder die Stilllegung von Servern.

{% code overflow="wrap" %}

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>

{% endcode %}

Zum Beispiel erlauben diese Berechtigungen das Ändern des PostgreSQL-Passworts, was natürlich nützlich ist, falls die PostgreSQL-Authentifizierung aktiviert ist.

{% code overflow="wrap" %}

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

{% endcode %}

Zusätzlich ist es notwendig, den öffentlichen Zugriff zu aktivieren, wenn Sie von einem nicht privaten Endpunkt aus zugreifen möchten. Um dies zu aktivieren:

{% code overflow="wrap" %}

az postgres flexible-server update --resource-group <resource_group_name> --server-name <server_name> --public-access Enabled

{% endcode %}

"Microsoft.DBforPostgreSQL/flexibleServers/read", "Microsoft.DBforPostgreSQL/flexibleServers/write", "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action", "Microsoft.DBforPostgreSQL/flexibleServers/administrators/write" && "Microsoft.DBforPostgreSQL/flexibleServers/administrators/read"

Mit dieser Berechtigung können Sie Azure Active Directory (AD) Administratoren für einen PostgreSQL Flexible Server konfigurieren. Dies kann ausgenutzt werden, indem man sich selbst oder ein anderes Konto als AD-Administrator festlegt, was vollständige administrative Kontrolle über den PostgreSQL-Server gewährt. Das Aktualisieren bestehender Principal wird derzeit noch nicht unterstützt, daher müssen Sie, wenn bereits einer erstellt wurde, diesen zuerst löschen.

Es ist wichtig, dass der flexible Server eine benutzerzugewiesene verwaltete Identität hat, die verwendet werden kann.

{% code overflow="wrap" %}

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

{% endcode %}

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