10 KiB
Az - PostgreSQL Databases
{% hint style="success" %}
Learn & practice AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
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: може керувати правилами брандмауера сервера для безпечного доступу до бази даних та відключати конфігурації віртуальної мережі за потреби.
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 %}
Підключення
З розширенням rdbms-connect ви можете отримати доступ до бази даних за допомогою:
{% 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 %}
Або {% code overflow="wrap" %}
psql -h testpostgresserver1994.postgres.database.azure.com -p 5432 -U adminuser <database-name>
{% endcode %}
Посилання
- 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
Підвищення привілеїв
{% content-ref url="../az-privilege-escalation/az-postgresql-privesc.md" %} az-postgresql-privesc.md {% endcontent-ref %}
Постексплуатація
{% content-ref url="../az-post-exploitation/az-postgresql-post-exploitation.md" %} az-postgresql-post-exploitation.md {% endcontent-ref %}
ToDo
- Знайти спосіб доступу з ad-admin, щоб перевірити, чи це метод підвищення привілеїв
{% hint style="success" %}
Вчіться та практикуйте Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Вчіться та практикуйте Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Підтримати HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.