Az - PostgreSQL Privesc
Reading time: 4 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
PostgreSQL Privesc
SQL Database के बारे में अधिक जानकारी के लिए देखें:
Microsoft.DBforPostgreSQL/flexibleServers/read
&& Microsoft.DBforPostgreSQL/flexibleServers/write
इस अनुमति के साथ, आप Azure पर PostgreSQL Flexible Server उदाहरणों को बना, अपडेट या हटा सकते हैं। इसमें नए सर्वरों की प्रोविजनिंग, मौजूदा सर्वर कॉन्फ़िगरेशन को संशोधित करना, या सर्वरों को बंद करना शामिल है।
az postgres flexible-server create \
--name <ServerName> \
--resource-group <ResourceGroupName> \
--location <Location> \
--admin-user <AdminUsername> \
--admin-password <AdminPassword> \
--sku-name <SkuName> \
--storage-size <StorageSizeInGB> \
--tier <PricingTier> \
--version <PostgreSQLVersion>
उदाहरण के लिए, ये अनुमतियाँ PostgreSQL पासवर्ड बदलने की अनुमति देती हैं, जो कि निश्चित रूप से तब उपयोगी होती हैं जब PostgreSQL प्रमाणीकरण सक्षम हो।
az postgres flexible-server update \
--resource-group <resource_group_name> \
--name <server_name> \
--admin-password <password_to_update>
इसके अलावा, अनुमतियों के साथ आप असाइन आइडेंटिटी को सक्षम कर सकते हैं, जो सर्वर से जुड़े प्रबंधित पहचान के साथ ऑपरेट करता है। यहाँ आप सभी एक्सटेंशन पा सकते हैं जो Azure PostgreSQL फ्लेक्सिबल सर्वर का समर्थन करते हैं https://learn.microsoft.com/en-us/azure/cosmos-db/postgresql/reference-extensions। इन एक्सटेंशनों का उपयोग करने के लिए कुछ सर्वर पैरामीटर (azure.extensions) को बदलने की आवश्यकता है। उदाहरण के लिए, यहाँ एक प्रबंधित पहचान के साथ जो Azure Storage तक पहुँच सकता है:
पहले हम पैरामीटर बदलते हैं और सुनिश्चित करते हैं कि असाइन की गई पहचान सक्षम है:
az postgres flexible-server parameter set \
--resource-group <YourResourceGroupName> \
--server-name <YourServerName> \
--name azure.extensions \
--value "AZURE_STORAGE"
az postgres flexible-server identity update \
--resource-group <YourResourceGroupName> \
--server-name <YourServerName> \
--system-assigned Enabled
CREATE EXTENSION IF NOT EXISTS azure_storage;
CREATE EXTERNAL DATA SOURCE ManagedIdentity
SELECT azure_storage.account_add('<storage-account>', '<storage-key>');
SELECT *
FROM azure_storage.blob_get(
'<storage-account>',
'<container>',
'message.txt',
decoder := 'text'
) AS t(content text)
LIMIT 1;
इसके अलावा, यदि आप किसी गैर-निजी एंडपॉइंट से एक्सेस करना चाहते हैं तो सार्वजनिक एक्सेस सक्षम होना आवश्यक है, इसे सक्षम करने के लिए:
az postgres flexible-server update --resource-group <resource_group_name> --server-name <server_name> --public-access Enabled
Microsoft.DBforPostgreSQL/flexibleServers/read
, Microsoft.DBforPostgreSQL/flexibleServers/write
, Microsoft.DBforPostgreSQL/flexibleServers/backups/read
, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
इन अनुमतियों के साथ आप एक बैकअप से सर्वर को पुनर्स्थापित कर सकते हैं:
az postgres flexible-server restore \
--resource-group <RESOURCE_GROUP> \
--name <NEW_SERVER_NAME> \
--source-server <SOURCE_SERVER_NAME> \
--restore-time "<ISO8601_TIMESTAMP>" \
--yes
Microsoft.DBforPostgreSQL/flexibleServers/read
, Microsoft.DBforPostgreSQL/flexibleServers/write
, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
, Microsoft.DBforPostgreSQL/flexibleServers/administrators/write
&& Microsoft.DBforPostgreSQL/flexibleServers/administrators/read
इस अनुमति के साथ, आप PostgreSQL Flexible Server के लिए Azure Active Directory (AD) प्रशासकों को कॉन्फ़िगर कर सकते हैं। इसका लाभ उठाया जा सकता है जब आप स्वयं या किसी अन्य खाते को AD प्रशासक के रूप में सेट करते हैं, जिससे PostgreSQL सर्वर पर पूर्ण प्रशासनिक नियंत्रण प्राप्त होता है। मौजूदा प्रमुख को अपडेट करना अभी समर्थित नहीं है, इसलिए यदि एक बनाया गया है, तो आपको पहले इसे हटाना होगा।
यह महत्वपूर्ण है कि फ्लेक्सिबल-सर्वर में उपयोगकर्ता असाइन किए गए प्रबंधित पहचानें हों।
az postgres flexible-server ad-admin create \
--resource-group <ResourceGroupName> \
--server-name <ServerName> \
--display-name <ADAdminDisplayName> \
--identity <IdentityNameOrID> \
--object-id <ObjectID>
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।