# Az - PostgreSQL Databases {{#include ../../../banners/hacktricks-training.md}} ## Azure PostgreSQL **Azure Database for PostgreSQL** एक पूरी तरह से प्रबंधित **रिलेशनल डेटाबेस सेवा है जो PostgreSQL** कम्युनिटी संस्करण पर आधारित है। इसे विभिन्न एप्लिकेशन आवश्यकताओं के लिए स्केलेबिलिटी, सुरक्षा और लचीलापन प्रदान करने के लिए डिज़ाइन किया गया है। Azure MySQL की तरह, PostgreSQL दो डिप्लॉयमेंट मॉडल प्रदान करता है: * **सिंगल सर्वर** (सेवानिवृत्ति पथ पर): - सरल, लागत-कुशल PostgreSQL डिप्लॉयमेंट के लिए अनुकूलित। - स्वचालित बैकअप, बुनियादी निगरानी, और उच्च उपलब्धता की विशेषताएँ। - पूर्वानुमानित कार्यभार वाले एप्लिकेशनों के लिए आदर्श। * **फ्लेक्सिबल सर्वर**: - डेटाबेस प्रबंधन और कॉन्फ़िगरेशन पर अधिक नियंत्रण प्रदान करता है। - एक ही क्षेत्र में और क्षेत्रों के बीच उच्च उपलब्धता का समर्थन करता है। - लचीला स्केलिंग, स्वचालित रखरखाव, और लागत-बचत कार्यक्षमता की विशेषताएँ। - लागत को अनुकूलित करने के लिए सर्वर को शुरू और बंद करने की अनुमति देता है। ### मुख्य विशेषताएँ * **कस्टम रखरखाव विंडोज़**: व्यवधान को कम करने के लिए अपडेट शेड्यूल करें। * **सक्रिय निगरानी**: डेटाबेस प्रदर्शन को ट्रैक और सुधारने के लिए विस्तृत मैट्रिक्स और लॉग्स तक पहुँचें। * **स्टॉप/स्टार्ट सर्वर**: उपयोगकर्ता सर्वर को रोक और शुरू कर सकते हैं। * **स्वचालित बैकअप**: 35 दिनों तक कॉन्फ़िगर करने योग्य रिटेंशन अवधि के साथ अंतर्निहित दैनिक बैकअप। * **भूमिका-आधारित पहुँच**: Azure Active Directory के माध्यम से उपयोगकर्ता अनुमतियों और प्रशासनिक पहुँच को नियंत्रित करें। * **सुरक्षा और नेटवर्किंग**: सुरक्षित डेटाबेस पहुँच के लिए सर्वर फ़ायरवॉल नियमों का प्रबंधन कर सकते हैं और आवश्यकतानुसार वर्चुअल नेटवर्क कॉन्फ़िगरेशन को अलग कर सकते हैं। * **प्रबंधित पहचान**: आपके सर्वर को अन्य 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) ## Privilege Escalation {{#ref}} ../az-privilege-escalation/az-postgresql-privesc.md {{#endref}} ## Post Exploitation {{#ref}} ../az-post-exploitation/az-postgresql-post-exploitation.md {{#endref}} ## ToDo * ad-admin के साथ पहुँचने का एक तरीका देखें ताकि यह सत्यापित किया जा सके कि यह एक privesc विधि है {{#include ../../../banners/hacktricks-training.md}}