# Az - PostgreSQL Databases {{#include ../../../banners/hacktricks-training.md}} ## Azure PostgreSQL **Azure Database for PostgreSQL** є повністю керованою **реляційною базою даних, заснованою на PostgreSQL** Community Edition. Вона розроблена для забезпечення масштабованості, безпеки та гнучкості для різноманітних потреб додатків. Подібно до Azure MySQL, PostgreSQL пропонує дві моделі розгортання: * **Single Server** (на етапі виведення з експлуатації): - Оптимізовано для простих, економічних розгортань PostgreSQL. - Має автоматизовані резервні копії, базове моніторинг та високу доступність. - Ідеально підходить для додатків з передбачуваними навантаженнями. * **Flexible Server**: - Забезпечує більший контроль над управлінням базою даних та конфігурацією. - Підтримує високу доступність, як в одній зоні, так і між зонами. - Має еластичне масштабування, автоматизоване обслуговування та функціональність для економії витрат. - Дозволяє запускати та зупиняти сервер для оптимізації витрат. ### Key Features * **Custom Maintenance Windows**: Заплануйте оновлення, щоб мінімізувати перерви. * **Active Monitoring**: Отримуйте детальні метрики та журнали для відстеження та покращення продуктивності бази даних. * **Stop/Start Server**: Користувачі можуть зупиняти та запускати сервер. * **Automatic Backups**: Вбудовані щоденні резервні копії з періодами зберігання, які можна налаштувати до 35 днів. * **Role-Based Access**: Контролюйте дозволи користувачів та адміністративний доступ через Azure Active Directory. * **Security and Networking**: можна керувати правилами брандмауера сервера для безпечного доступу до бази даних та відключати конфігурації віртуальної мережі за потреби. * **Managed Identities**: дозволяють вашому серверу безпечно автентифікуватися з іншими службами Azure без зберігання облікових даних. Це дозволяє отримувати доступ до інших служб, які матимуть системно призначену керовану ідентичність і можуть бути доступні іншими службами з іншими ідентичностями, які є користувацькими призначеними керованими ідентичностями. ### Enumeration {{#tabs }} {{#tab name="az cli" }} ```bash # List servers in a resource group az postgres flexible-server list --resource-group # List databases in a flexible-server az postgres flexible-server db list --resource-group --server-name # Show specific details of a Postgre database az postgres flexible-server db show --resource-group --server-name --database-name # List firewall rules of the a server az postgres flexible-server firewall-rule list --resource-group --name # List parameter values for a felxible server az postgres flexible-server parameter list --resource-group --server-name # List private link az postgres flexible-server private-link-resource list --resource-group --server-name # List all ad-admin in a server az postgres flexible-server ad-admin list --resource-group --server-name # List all user assigned managed identities from the server az postgres flexible-server identity list --resource-group --server-name # List the server backups az postgres flexible-server backup list --resource-group --name # List all read replicas for a given server az postgres flexible-server replica list --resource-group --name # List migrations az postgres flexible-server migration list --resource-group --name # Get the server's advanced threat protection setting az postgres flexible-server advanced-threat-protection-setting show --resource-group --name # List all of the maintenances of a flexible server az postgres flexible-server maintenance list --resource-group --server-name # List log files for a server. az postgres flexible-server server-logs list --resource-group --server-name ``` {{#endtab }} {{#tab name="Az Powershell" }} ```bash Get-Command -Module Az.PostgreSql # List flexible-servers in a resource group Get-AzPostgreSqlFlexibleServer -ResourceGroupName # List databases in a flexible-server Get-AzPostgreSqlFlexibleServerDatabase -ResourceGroupName -ServerName # List firewall rules of the a flexible-server Get-AzPostgreSqlFlexibleServerFirewallRule -ResourceGroupName -ServerName # List configuration settings of a flexible server Get-AzPostgreSqlFlexibleServerConfiguration -ResourceGroupName -ServerName # Get the connection string for a flexible server Get-AzPostgreSqlFlexibleServerConnectionString -ResourceGroupName -ServerName -Client Get-AzPostgreSqlFlexibleServerLocationBasedCapability -Location # List servers in a resource group Get-AzPostgreSqlServer -ResourceGroupName ``` {{#endtab }} {{#endtabs }} ### З'єднання З розширенням rdbms-connect ви можете отримати доступ до бази даних за допомогою: ```bash az postgres flexible-server connect -n -u -p --interactive #or execute commands az postgres flexible-server execute \ -n \ -u \ -p "" \ -d \ --querytext "SELECT * FROM ;" ``` Або ```bash psql -h testpostgresserver1994.postgres.database.azure.com -p 5432 -U adminuser ``` ## References - [https://learn.microsoft.com/en-us/azure/postgresql/](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/service-overview) - [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview) ## Підвищення Привілеїв {{#ref}} ../az-privilege-escalation/az-postgresql-privesc.md {{#endref}} ## Постексплуатація {{#ref}} ../az-post-exploitation/az-postgresql-post-exploitation.md {{#endref}} ## ToDo * Знайти спосіб доступу з ad-admin, щоб перевірити, чи це метод підвищення привілеїв {{#include ../../../banners/hacktricks-training.md}}