6.6 KiB
Az - PostgreSQL-Datenbanken
{{#include ../../../banners/hacktricks-training.md}}
Azure PostgreSQL
Azure Database for PostgreSQL ist ein vollständig verwalteter relationaler Datenbankdienst, der auf der PostgreSQL Community Edition basiert. Er wurde entwickelt, um Skalierbarkeit, Sicherheit und Flexibilität für unterschiedliche Anwendungsbedürfnisse zu bieten. Ähnlich wie Azure MySQL bietet PostgreSQL zwei Bereitstellungsmodelle:
- Single Server (auf dem Rückzugspfad):
- Optimiert für einfache, kosteneffiziente PostgreSQL-Bereitstellungen.
- Bietet automatisierte Backups, grundlegende Überwachung und hohe Verfügbarkeit.
- Ideal für Anwendungen mit vorhersehbaren Arbeitslasten.
- Flexible Server:
- Bietet mehr Kontrolle über Datenbankverwaltung und -konfiguration.
- Unterstützt hohe Verfügbarkeit, sowohl in derselben Zone als auch über Zonen hinweg.
- Bietet elastische Skalierung, automatisierte Wartung und kostensparende Funktionen.
- Ermöglicht das Starten und Stoppen des Servers zur Kostenoptimierung.
Hauptmerkmale
- Benutzerdefinierte Wartungsfenster: Planen Sie Updates, um Störungen zu minimieren.
- Aktive Überwachung: Zugriff auf detaillierte Metriken und Protokolle zur Verfolgung und Verbesserung der Datenbankleistung.
- Server Stop/Start: Benutzer können den Server stoppen und starten.
- Automatische Backups: Eingebaute tägliche Backups mit konfigurierbaren Aufbewahrungsfristen von bis zu 35 Tagen.
- Rollenbasierter Zugriff: Steuern Sie Benutzerberechtigungen und administrativen Zugriff über Azure Active Directory.
- Sicherheit und Netzwerk: Kann Firewall-Regeln für den sicheren Datenbankzugriff verwalten und virtuelle Netzwerk-Konfigurationen nach Bedarf trennen.
Enumeration
{% tabs %} {% tab title="az cli" %} {% code overflow="wrap" %}
# List servers in a resource group
az postgres flexible-server list --resource-group <resource-group-name>
# List databases in a flexible-server
az postgres flexible-server db list --resource-group <resource-group-name> --server-name <server_name>
# Show specific details of a Postgre database
az postgres flexible-server db show --resource-group <resource-group-name> --server-name <server_name> --database-name <database_name>
# List firewall rules of the a server
az postgres flexible-server firewall-rule list --resource-group <resource-group-name> --name <server_name>
# List parameter values for a felxible server
az postgres flexible-server parameter list --resource-group <resource-group-name> --server-name <server_name>
# List private link
az postgres flexible-server private-link-resource list --resource-group <resource-group-name> --server-name <server_name>
# List all ad-admin in a server
az postgres flexible-server ad-admin list --resource-group <resource-group-name> --server-name <server_name>
# List all user assigned managed identities from the server
az postgres flexible-server identity list --resource-group <resource-group-name> --server-name <server_name>
# List the server backups
az postgres flexible-server backup list --resource-group <resource-group-name> --name <server_name>
# List all read replicas for a given server
az postgres flexible-server replica list --resource-group <resource-group-name> --name <server_name>
# List migrations
az postgres flexible-server migration list --resource-group <resource-group-name> --name <server_name>
# Get the server's advanced threat protection setting
az postgres flexible-server advanced-threat-protection-setting show --resource-group <resource-group-name> --name <server_name>
# List all of the maintenances of a flexible server
az postgres flexible-server maintenance list --resource-group <resource-group-name> --server-name <server_name>
# List log files for a server.
az postgres flexible-server server-logs list --resource-group <resource-group-name> --server-name <server_name>
{% endcode %} {% endtab %}
{% tab title="Az PowerShell" %} {% code overflow="wrap" %}
Get-Command -Module Az.PostgreSql
# List flexible-servers in a resource group
Get-AzPostgreSqlFlexibleServer -ResourceGroupName <resource-group-name>
# List databases in a flexible-server
Get-AzPostgreSqlFlexibleServerDatabase -ResourceGroupName <resource-group-name> -ServerName <server_name>
# List firewall rules of the a flexible-server
Get-AzPostgreSqlFlexibleServerFirewallRule -ResourceGroupName <resource-group-name> -ServerName <server_name>
# List configuration settings of a flexible server
Get-AzPostgreSqlFlexibleServerConfiguration -ResourceGroupName <resource-group-name> -ServerName <server_name>
# Get the connection string for a flexible server
Get-AzPostgreSqlFlexibleServerConnectionString -ResourceGroupName <resource-group-name> -ServerName <server_name> -Client <client>
Get-AzPostgreSqlFlexibleServerLocationBasedCapability -Location <location>
# List servers in a resource group
Get-AzPostgreSqlServer -ResourceGroupName <resource-group-name>
{% endcode %} {% endtab %} {% endtabs %}
Verbindung
Mit der Erweiterung rdbms-connect können Sie auf die Datenbank zugreifen mit:
{% code overflow="wrap" %}
az postgres flexible-server connect -n <server-name> -u <username> -p <password> --interactive
#or execute commands
az postgres flexible-server execute \
-n <server-name> \
-u <username> \
-p "<password>" \
-d <database-name> \
--querytext "SELECT * FROM <table-name>;"
{% endcode %}
Oder {% code overflow="wrap" %}
psql -h testpostgresserver1994.postgres.database.azure.com -p 5432 -U adminuser <database-name>
{% endcode %}
Referenzen
- https://learn.microsoft.com/en-us/azure/postgresql/
- https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview
- https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview
Privilegieneskalation
{% content-ref url="../az-privilege-escalation/az-postgresql-privesc.md" %} az-postgresql-privesc.md {% endcontent-ref %}
Post-Exploitation
{% content-ref url="../az-post-exploitation/az-postgresql-post-exploitation.md" %} az-postgresql-post-exploitation.md {% endcontent-ref %}
ToDo
- Eine Möglichkeit suchen, um mit ad-admin zuzugreifen, um zu überprüfen, ob es sich um eine Privilegieneskalationsmethode handelt
{{#include ../../../banners/hacktricks-training.md}}