Az - PostgreSQL 数据库

Tip

学习并练习 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

Azure PostgreSQL

Azure Database for PostgreSQL 是一个完全托管的 基于 PostgreSQL 社区版的 关系数据库服务。它旨在为多样化的应用需求提供可扩展性、安全性和灵活性。与 Azure MySQL 类似,PostgreSQL 提供两种部署模型:

  • 单一服务器(在退役路径上):
  • 针对简单、经济高效的 PostgreSQL 部署进行了优化。
  • 具有自动备份、基本监控和高可用性功能。
  • 适合具有可预测工作负载的应用程序。
  • 灵活服务器
  • 提供对数据库管理和配置的更大控制。
  • 支持同一区域和跨区域的高可用性。
  • 具有弹性扩展、自动维护和节省成本的功能。
  • 允许启动和停止服务器以优化成本。

关键特性

  • 自定义维护窗口:安排更新以最小化干扰。
  • 主动监控:访问详细的指标和日志,以跟踪和改善数据库性能。
  • 停止/启动服务器:用户可以停止和启动服务器。
  • 自动备份:内置每日备份,保留期可配置最长达 35 天。
  • 基于角色的访问:通过 Azure Active Directory 控制用户权限和管理访问。
  • 安全性和网络:可以管理服务器防火墙规则以确保安全的数据库访问,并根据需要分离虚拟网络配置。
  • 托管身份:允许您的服务器安全地与其他 Azure 服务进行身份验证,而无需存储凭据。它允许访问其他服务,这将是系统分配的托管身份,并可以通过其他身份访问的用户分配的托管身份。

枚举

# 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>

连接

使用扩展 rdbms-connect,您可以通过以下方式访问数据库:

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>;"

psql -h testpostgresserver1994.postgres.database.azure.com -p 5432 -U adminuser <database-name>

参考

权限提升

Az - PostgreSQL Privesc

后期利用

Az - PostgreSQL Post Exploitation

待办事项

  • 寻找一种方法以 ad-admin 访问以验证这是一种权限提升方法

Tip

学习并练习 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks