8.6 KiB
Az - SQL Database Privesc
{{#include ../../../banners/hacktricks-training.md}}
SQL Database Privesc
SQL Database के बारे में अधिक जानकारी के लिए देखें:
{{#ref}} ../az-services/az-sql.md {{#endref}}
"Microsoft.Sql/servers/read" && "Microsoft.Sql/servers/write"
इन अनुमतियों के साथ, एक उपयोगकर्ता Azure SQL सर्वरों को अपडेट या बनाकर विशेषाधिकार वृद्धि कर सकता है और महत्वपूर्ण कॉन्फ़िगरेशन, जिसमें प्रशासनिक क्रेडेंशियल शामिल हैं, को संशोधित कर सकता है। यह अनुमति उपयोगकर्ता को सर्वर गुणों को अपडेट करने की अनुमति देती है, जिसमें SQL सर्वर प्रशासनिक पासवर्ड शामिल है, जिससे अनधिकृत पहुंच या सर्वर पर नियंत्रण प्राप्त करना संभव होता है। वे नए सर्वर भी बना सकते हैं, जो दुर्भावनापूर्ण उद्देश्यों के लिए छायादार बुनियादी ढाँचा पेश कर सकते हैं। यह विशेष रूप से महत्वपूर्ण हो जाता है जब "Microsoft Entra Authentication Only" बंद होता है, क्योंकि वे SQL-आधारित प्रमाणीकरण का लाभ उठाकर बिना किसी प्रतिबंध के पहुंच प्राप्त कर सकते हैं।
# Change the server password
az sql server update \
--name <server_name> \
--resource-group <resource_group_name> \
--admin-password <new_password>
# Create a new server
az sql server create \
--name <new_server_name> \
--resource-group <resource_group_name> \
--location <location> \
--admin-user <admin_username> \
--admin-password <admin_password>
इसके अलावा, यदि आप किसी गैर-निजी एंडपॉइंट से एक्सेस करना चाहते हैं तो सार्वजनिक एक्सेस सक्षम होना आवश्यक है, इसे सक्षम करने के लिए:
az sql server update \
--name <server-name> \
--resource-group <resource-group> \
--enable-public-network true
"Microsoft.Sql/servers/firewallRules/write"
एक हमलावर Azure SQL सर्वरों पर फ़ायरवॉल नियमों में हेरफेर कर सकता है ताकि अनधिकृत पहुँच की अनुमति मिल सके। इसका उपयोग विशिष्ट IP पते या पूरे IP रेंज, जिसमें सार्वजनिक IP शामिल हैं, के लिए सर्वर को खोलने के लिए किया जा सकता है, जिससे दुर्भावनापूर्ण तत्वों के लिए पहुँच सक्षम होती है। यह पोस्ट-एक्सप्लॉइटेशन गतिविधि मौजूदा नेटवर्क सुरक्षा नियंत्रणों को बायपास करने, स्थिरता स्थापित करने, या संवेदनशील संसाधनों को उजागर करके वातावरण के भीतर पार्श्व आंदोलन को सुविधाजनक बनाने के लिए उपयोग की जा सकती है।
# Create Firewall Rule
az sql server firewall-rule create \
--name <new-firewall-rule-name> \
--server <server-name> \
--resource-group <resource-group> \
--start-ip-address <start-ip-address> \
--end-ip-address <end-ip-address>
# Update Firewall Rule
az sql server firewall-rule update \
--name <firewall-rule-name> \
--server <server-name> \
--resource-group <resource-group> \
--start-ip-address <new-start-ip-address> \
--end-ip-address <new-end-ip-address>
इसके अलावा, Microsoft.Sql/servers/outboundFirewallRules/delete अनुमति आपको एक फ़ायरवॉल नियम को हटाने की अनुमति देती है।
नोट: सार्वजनिक पहुंच सक्षम होना आवश्यक है
""Microsoft.Sql/servers/ipv6FirewallRules/write"
इस अनुमति के साथ, आप Azure SQL Server पर IPv6 फ़ायरवॉल नियम बना, संशोधित या हटा सकते हैं। यह एक हमलावर या अधिकृत उपयोगकर्ता को मौजूदा नेटवर्क सुरक्षा कॉन्फ़िगरेशन को बायपास करने और सर्वर तक अनधिकृत पहुंच प्राप्त करने में सक्षम बना सकता है। किसी भी IPv6 पते से ट्रैफ़िक की अनुमति देने वाला एक नियम जोड़कर, हमलावर सर्वर को बाहरी पहुंच के लिए खोल सकता है।
az sql server firewall-rule create \
--server <server_name> \
--resource-group <resource_group_name> \
--name <rule_name> \
--start-ip-address <start_ipv6_address> \
--end-ip-address <end_ipv6_address>
अतिरिक्त रूप से, Microsoft.Sql/servers/ipv6FirewallRules/delete अनुमति आपको एक फ़ायरवॉल नियम को हटाने की अनुमति देती है।
नोट: सार्वजनिक पहुंच सक्षम होना आवश्यक है
"Microsoft.Sql/servers/administrators/write" && "Microsoft.Sql/servers/administrators/read"
इन अनुमतियों के साथ आप Azure SQL Server वातावरण में SQL डेटाबेस तक पहुंचकर महत्वपूर्ण जानकारी प्राप्त कर सकते हैं। नीचे दिए गए कमांड का उपयोग करके, एक हमलावर या अधिकृत उपयोगकर्ता खुद को या किसी अन्य खाते को Azure AD प्रशासक के रूप में सेट कर सकता है। यदि "Microsoft Entra Authentication Only" सक्षम है, तो आप सर्वर और इसके उदाहरणों तक पहुंच सकते हैं। यहाँ एक SQL सर्वर के लिए Azure AD प्रशासक सेट करने का कमांड है:
az sql server ad-admin create \
--server <server_name> \
--resource-group <resource_group_name> \
--display-name <admin_display_name> \
--object-id <azure_subscribtion_id>
"Microsoft.Sql/servers/azureADOnlyAuthentications/write" && "Microsoft.Sql/servers/azureADOnlyAuthentications/read"
इन अनुमतियों के साथ, आप Azure SQL Server पर "Microsoft Entra Authentication Only" को कॉन्फ़िगर और लागू कर सकते हैं, जो कुछ परिदृश्यों में विशेषाधिकार वृद्धि को सुविधाजनक बना सकता है। एक हमलावर या एक अधिकृत उपयोगकर्ता जिनके पास ये अनुमतियाँ हैं, Azure AD-केवल प्रमाणीकरण को सक्षम या अक्षम कर सकता है।
#Enable
az sql server azure-ad-only-auth enable \
--server <server_name> \
--resource-group <resource_group_name>
#Disable
az sql server azure-ad-only-auth disable \
--server <server_name> \
--resource-group <resource_group_name>
{{#include ../../../banners/hacktricks-training.md}}