From f461ca1aed164087d6e28e361c2238e470ee6674 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 26 Feb 2025 01:02:20 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-services/az-sql.md'] --- .../azure-security/az-services/az-sql.md | 86 ++++++++++++------- 1 file changed, 56 insertions(+), 30 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-services/az-sql.md b/src/pentesting-cloud/azure-security/az-services/az-sql.md index 50b1ee67f..85f982687 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-sql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-sql.md @@ -11,7 +11,7 @@ Azure SQL में चार मुख्य पेशकशें शामि 1. **Azure SQL Server**: SQL Server डेटाबेस के **तैनाती और प्रबंधन** के लिए एक सर्वर की आवश्यकता होती है। 2. **Azure SQL Database**: यह एक **पूर्ण-प्रबंधित डेटाबेस सेवा** है, जो आपको Azure क्लाउड में व्यक्तिगत डेटाबेस होस्ट करने की अनुमति देती है। 3. **Azure SQL Managed Instance**: यह बड़े पैमाने पर, पूरे SQL Server इंस्टेंस-स्कोप्ड तैनातियों के लिए है। -4. **Azure SQL Server on Azure VMs**: यह उन आर्किटेक्चर के लिए सबसे अच्छा है जहां आप **ऑपरेटिंग सिस्टम** और SQL Server इंस्टेंस पर **नियंत्रण** चाहते हैं। +4. **Azure SQL Server on Azure VMs**: यह उन आर्किटेक्चर के लिए सबसे अच्छा है जहाँ आप **ऑपरेटिंग सिस्टम** और SQL Server इंस्टेंस पर नियंत्रण चाहते हैं। ### SQL Server सुरक्षा विशेषताएँ @@ -20,50 +20,76 @@ Azure SQL में चार मुख्य पेशकशें शामि - सार्वजनिक एंडपॉइंट (विशिष्ट नेटवर्कों तक पहुंच को सीमित कर सकता है)। - निजी एंडपॉइंट। - डोमेन नामों के आधार पर कनेक्शनों को प्रतिबंधित करना भी संभव है। -- Azure सेवाओं को इसे एक्सेस करने की अनुमति देना भी संभव है (जैसे पोर्टल में क्वेरी संपादक का उपयोग करने के लिए या Azure VM को कनेक्ट करने की अनुमति देना)। +- Azure सेवाओं को इसे एक्सेस करने की अनुमति देना भी संभव है (जैसे पोर्टल में क्वेरी संपादक का उपयोग करने के लिए या Azure VM को कनेक्ट करने की अनुमति देने के लिए)। **प्रमाणीकरण विधियाँ:** -- Microsoft **Entra-only** प्रमाणीकरण: आपको उन Entra प्रिंसिपलों को इंगित करने की आवश्यकता है जिनके पास सेवा तक पहुंच होगी। +- Microsoft **Entra-only** प्रमाणीकरण: आपको उन Entra प्रिंसिपल को इंगित करने की आवश्यकता है जिनके पास सेवा तक पहुंच होगी। - **SQL और Microsoft Entra** दोनों प्रमाणीकरण: उपयोगकर्ता नाम और पासवर्ड के साथ पारंपरिक SQL प्रमाणीकरण Microsoft Entra के साथ। - **केवल SQL** प्रमाणीकरण: केवल डेटाबेस उपयोगकर्ताओं के माध्यम से पहुंच की अनुमति दें। -ध्यान दें कि यदि कोई SQL प्रमाणीकरण अनुमति दी जाती है, तो एक व्यवस्थापक उपयोगकर्ता (उपयोगकर्ता नाम + पासवर्ड) को इंगित करने की आवश्यकता होती है और यदि Entra ID प्रमाणीकरण चुना जाता है, तो कम से कम एक प्रिंसिपल को व्यवस्थापक पहुंच के साथ इंगित करना भी आवश्यक है। +ध्यान दें कि यदि कोई SQL प्रमाणीकरण अनुमति दी जाती है, तो एक व्यवस्थापक उपयोगकर्ता (उपयोगकर्ता नाम + पासवर्ड) को इंगित करने की आवश्यकता होती है और यदि Entra ID प्रमाणीकरण चुना गया है, तो यह भी आवश्यक है कि कम से कम एक प्रिंसिपल को व्यवस्थापक पहुंच के साथ इंगित किया जाए। **एन्क्रिप्शन:** -- इसे "पारदर्शी डेटा एन्क्रिप्शन" कहा जाता है और यह डेटाबेस, बैकअप और लॉग को स्थिरता पर एन्क्रिप्ट करता है। +- इसे "पारदर्शी डेटा एन्क्रिप्शन" कहा जाता है और यह डेटाबेस, बैकअप और लॉग को विश्राम में एन्क्रिप्ट करता है। - हमेशा की तरह, डिफ़ॉल्ट रूप से Azure प्रबंधित कुंजी का उपयोग किया जाता है लेकिन ग्राहक प्रबंधित एन्क्रिप्शन कुंजी (CMEK) का भी उपयोग किया जा सकता है। **प्रबंधित पहचान:** - सिस्टम और उपयोगकर्ता प्रबंधित MIs को असाइन करना संभव है। -- एन्क्रिप्शन कुंजी (यदि CMEK का उपयोग किया जाता है) और डेटाबेस से अन्य सेवाओं तक पहुंच के लिए उपयोग किया जाता है। -- यदि एक से अधिक UMI असाइन किए जाते हैं, तो उपयोग के लिए डिफ़ॉल्ट एक को इंगित करना संभव है। +- एन्क्रिप्शन कुंजी (यदि CMEK का उपयोग किया गया है) और डेटाबेस से अन्य सेवाओं तक पहुंच के लिए उपयोग किया जाता है। +- डेटाबेस से एक्सेस की जा सकने वाली Azure सेवाओं के कुछ उदाहरणों के लिए [इस पृष्ठ को देखें](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql) +- यदि एक से अधिक UMI असाइन किया गया है, तो उपयोग के लिए डिफ़ॉल्ट एक को इंगित करना संभव है। - क्रॉस-टेनेंट एक्सेस के लिए एक संघीय क्लाइंट पहचान को कॉन्फ़िगर करना संभव है। +SQL डेटाबेस से एक ब्लॉब स्टोरेज के अंदर जानकारी तक पहुँचने के लिए कुछ कमांड: +```sql +-- Create a credential for the managed identity +CREATE DATABASE SCOPED CREDENTIAL [ManagedIdentityCredential] +WITH IDENTITY = 'Managed Identity'; +GO + +-- Create an external data source pointing to the blob storage to access +CREATE EXTERNAL DATA SOURCE ManagedIdentity +WITH ( +TYPE = BLOB_STORAGE, +LOCATION = 'https://testsqlidentity.blob.core.windows.net/sqlcontainer', +CREDENTIAL = ManagedIdentityCredential +); +GO + +-- Read a file from ths storage and return it +SELECT * +FROM OPENROWSET( +BULK 'message.txt', +DATA_SOURCE = 'ManagedIdentity', +SINGLE_CLOB +) AS DataFile; +GO +``` **Microsoft Defender:** - "संभावित डेटाबेस कमजोरियों को कम करने और असामान्य गतिविधियों का पता लगाने" के लिए उपयोगी -- हम Defender के बारे में अपनी खुद की पाठ में बात करेंगे (इसे कई अन्य Azure सेवाओं में सक्षम किया जा सकता है) +- हम Defender के बारे में अपनी एक पाठ में बात करेंगे (इसे कई अन्य Azure सेवाओं में सक्षम किया जा सकता है) **बैकअप:** -- बैकअप आवृत्ति को रिटेंशन नीतियों में प्रबंधित किया जाता है। +- बैकअप की आवृत्ति को रिटेंशन नीतियों में प्रबंधित किया जाता है। **हटाए गए डेटाबेस:** -- यह संभव है कि मौजूदा बैकअप से हटाए गए DBs को पुनर्स्थापित किया जा सके। +- मौजूदा बैकअप से हटाए गए DBs को पुनर्स्थापित करना संभव है। ## Azure SQL Database -**Azure SQL Database** एक **पूर्ण प्रबंधित डेटाबेस प्लेटफ़ॉर्म के रूप में सेवा (PaaS)** है जो स्केलेबल और सुरक्षित संबंधपरक डेटाबेस समाधान प्रदान करता है। यह नवीनतम SQL Server तकनीकों पर आधारित है और अवसंरचना प्रबंधन की आवश्यकता को समाप्त करता है, जिससे यह क्लाउड-आधारित अनुप्रयोगों के लिए एक लोकप्रिय विकल्प बनता है। +**Azure SQL Database** एक **पूर्ण रूप से प्रबंधित डेटाबेस प्लेटफ़ॉर्म के रूप में सेवा (PaaS)** है जो स्केलेबल और सुरक्षित संबंधपरक डेटाबेस समाधान प्रदान करता है। यह नवीनतम SQL Server तकनीकों पर आधारित है और अवसंरचना प्रबंधन की आवश्यकता को समाप्त करता है, जिससे यह क्लाउड-आधारित अनुप्रयोगों के लिए एक लोकप्रिय विकल्प बनता है। SQL डेटाबेस बनाने के लिए यह आवश्यक है कि SQL सर्वर को इंगित किया जाए जहां इसे होस्ट किया जाएगा। -### SQL डेटाबेस सुरक्षा विशेषताएँ +### SQL डेटाबेस सुरक्षा सुविधाएँ -- **हमेशा अद्यतित**: SQL Server के नवीनतम स्थिर संस्करण पर चलता है और स्वचालित रूप से नई सुविधाएँ और पैच प्राप्त करता है। -- **विरासत में मिली SQL Server सुरक्षा विशेषताएँ:** +- **हमेशा अद्यतित**: नवीनतम स्थिर संस्करण पर चलता है SQL Server का और नए फीचर्स और पैच स्वचालित रूप से प्राप्त करता है। +- **विरासत में प्राप्त SQL Server सुरक्षा सुविधाएँ:** - प्रमाणीकरण (SQL और/या Entra ID) -- असाइन की गई प्रबंधित पहचान +- असाइन किए गए प्रबंधित पहचान - नेटवर्क प्रतिबंध - एन्क्रिप्शन - बैकअप @@ -71,29 +97,29 @@ SQL डेटाबेस बनाने के लिए यह आवश् - **डेटा पुनरावृत्ति:** विकल्प स्थानीय, क्षेत्र, भू-स्थान या भू-क्षेत्र पुनरावृत्त हैं। - **लेजर:** यह डेटा की अखंडता को क्रिप्टोग्राफिक रूप से सत्यापित करता है, यह सुनिश्चित करता है कि किसी भी छेड़छाड़ का पता लगाया जाए। वित्तीय, चिकित्सा और किसी भी संगठन के लिए उपयोगी जो संवेदनशील डेटा का प्रबंधन करता है। -एक SQL डेटाबेस एक **इलास्टिक पूल** का हिस्सा हो सकता है। इलास्टिक पूल कई डेटाबेसों के प्रबंधन के लिए एक लागत-कुशल समाधान है, जो उनके बीच कॉन्फ़िगर करने योग्य कंप्यूट (eDTUs) और स्टोरेज संसाधनों को साझा करता है, जिसमें मूल्य निर्धारण केवल आवंटित संसाधनों के आधार पर होता है न कि डेटाबेसों की संख्या के आधार पर। +एक SQL डेटाबेस एक **इलास्टिक पूल** का हिस्सा हो सकता है। इलास्टिक पूल कई डेटाबेस का प्रबंधन करने के लिए एक लागत-कुशल समाधान है, जो उनके बीच कॉन्फ़िगर करने योग्य कंप्यूट (eDTUs) और स्टोरेज संसाधनों को साझा करता है, जिसमें मूल्य निर्धारण केवल आवंटित संसाधनों के आधार पर होता है न कि डेटाबेस की संख्या के आधार पर। #### Azure SQL कॉलम स्तर सुरक्षा (मास्किंग) और पंक्ति स्तर सुरक्षा -**Azure SQL का गतिशील** डेटा मास्किंग एक विशेषता है जो **अनधिकृत उपयोगकर्ताओं से संवेदनशील जानकारी की रक्षा करने में मदद करती है**। वास्तविक डेटा को बदलने के बजाय, यह प्रदर्शित डेटा को गतिशील रूप से मास्क करता है, यह सुनिश्चित करता है कि संवेदनशील विवरण जैसे क्रेडिट कार्ड नंबर अस्पष्ट हैं। +**Azure SQL का गतिशील** डेटा मास्किंग एक विशेषता है जो **संवेदनशील जानकारी की सुरक्षा में मदद करती है** इसे अनधिकृत उपयोगकर्ताओं से छिपाकर। वास्तविक डेटा को बदलने के बजाय, यह प्रदर्शित डेटा को गतिशील रूप से मास्क करता है, यह सुनिश्चित करता है कि संवेदनशील विवरण जैसे क्रेडिट कार्ड नंबर अस्पष्ट हैं। -**गतिशील डेटा मास्किंग** उन सभी उपयोगकर्ताओं पर प्रभाव डालती है सिवाय उन लोगों के जो अनमास्क किए गए हैं (इन उपयोगकर्ताओं को इंगित करने की आवश्यकता होती है) और व्यवस्थापकों। इसमें वह कॉन्फ़िगरेशन विकल्प है जो यह निर्दिष्ट करता है कि कौन से SQL उपयोगकर्ता गतिशील डेटा मास्किंग से छूट प्राप्त करते हैं, **व्यवस्थापकों को हमेशा बाहर रखा जाता है**। +**गतिशील डेटा मास्किंग** सभी उपयोगकर्ताओं पर प्रभाव डालती है सिवाय उन लोगों के जो अनमास्क किए गए हैं (इन उपयोगकर्ताओं को इंगित करने की आवश्यकता है) और प्रशासकों। इसमें वह कॉन्फ़िगरेशन विकल्प है जो निर्दिष्ट करता है कि कौन से SQL उपयोगकर्ता गतिशील डेटा मास्किंग से छूट प्राप्त हैं, **प्रशासक हमेशा बाहर होते हैं**। -**Azure SQL पंक्ति स्तर सुरक्षा (RLS)** एक विशेषता है जो **नियंत्रित करती है कि कौन सी पंक्तियाँ एक उपयोगकर्ता देख या संशोधित कर सकता है**, यह सुनिश्चित करते हुए कि प्रत्येक उपयोगकर्ता केवल उनके लिए प्रासंगिक डेटा देखता है। फ़िल्टर या ब्लॉक प्रीडिकेट के साथ सुरक्षा नीतियाँ बनाकर, संगठन डेटाबेस स्तर पर बारीक-बारीक पहुंच लागू कर सकते हैं। +**Azure SQL पंक्ति स्तर सुरक्षा (RLS)** एक विशेषता है जो **नियंत्रित करती है कि कौन सी पंक्तियाँ एक उपयोगकर्ता देख या संशोधित कर सकता है**, यह सुनिश्चित करते हुए कि प्रत्येक उपयोगकर्ता केवल उनके लिए प्रासंगिक डेटा देखता है। फ़िल्टर या ब्लॉक प्रीडिकेट के साथ सुरक्षा नीतियाँ बनाकर, संगठन डेटाबेस स्तर पर बारीक पहुंच लागू कर सकते हैं। -### Azure SQL Managed Instance +### Azure SQL प्रबंधित उदाहरण -**Azure SQL Managed Instances** बड़े पैमाने पर, पूरे SQL Server इंस्टेंस-स्कोप्ड तैनातियों के लिए हैं। यह नवीनतम SQL Server ऑन-प्रिमाइसेस (Enterprise Edition) डेटाबेस इंजन के साथ लगभग 100% संगतता प्रदान करता है, जो सामान्य सुरक्षा चिंताओं को संबोधित करने के लिए एक स्वदेशी वर्चुअल नेटवर्क (VNet) कार्यान्वयन प्रदान करता है, और ऑन-प्रिमाइसेस SQL Server ग्राहकों के लिए एक व्यावसायिक मॉडल अनुकूल है। +**Azure SQL प्रबंधित उदाहरण** बड़े पैमाने पर, पूरे SQL Server उदाहरण-स्कोप वाले तैनाती के लिए हैं। यह नवीनतम SQL Server ऑन-प्रिमाइसेस (Enterprise Edition) डेटाबेस इंजन के साथ लगभग 100% संगतता प्रदान करता है, जो सामान्य सुरक्षा चिंताओं को संबोधित करने के लिए एक स्वदेशी वर्चुअल नेटवर्क (VNet) कार्यान्वयन प्रदान करता है, और ऑन-प्रिमाइसेस SQL Server ग्राहकों के लिए अनुकूल व्यावसायिक मॉडल। ### Azure SQL वर्चुअल मशीनें -**Azure SQL वर्चुअल मशीनें** आपको **ऑपरेटिंग सिस्टम** और SQL Server इंस्टेंस पर **नियंत्रण** करने की अनुमति देती हैं, क्योंकि एक VM SQL सर्वर चलाने वाली VM सेवा में उत्पन्न होगी। +**Azure SQL वर्चुअल मशीनें** **ऑपरेटिंग सिस्टम** और SQL Server उदाहरण को नियंत्रित करने की अनुमति देती हैं, क्योंकि एक VM SQL सर्वर चलाने वाली VM सेवा में उत्पन्न होगी। -जब एक SQL वर्चुअल मशीन बनाई जाती है, तो यह संभव है कि **VM की सभी सेटिंग्स का चयन किया जाए** (जैसा कि VM पाठ में दिखाया गया है) जो SQL सर्वर को होस्ट करेगा। +जब एक SQL वर्चुअल मशीन बनाई जाती है, तो यह संभव है कि **VM के सभी सेटिंग्स का चयन किया जाए** (जैसा कि VM पाठ में दिखाया गया है) जो SQL सर्वर को होस्ट करेगा। - इसका मतलब है कि VM कुछ VNet(s) तक पहुंच प्राप्त करेगा, इसमें **प्रबंधित पहचानें संलग्न** हो सकती हैं, फ़ाइल शेयर माउंट किए जा सकते हैं... जिससे SQL से VM में **पिवोटिंग** करना बहुत दिलचस्प हो जाता है। - इसके अलावा, यह एक ऐप आईडी और सीक्रेट को कॉन्फ़िगर करना संभव है ताकि **SQL को एक विशिष्ट की वॉल्ट** तक पहुंचने की अनुमति दी जा सके, जिसमें संवेदनशील जानकारी हो सकती है। -यह भी संभव है कि **स्वचालित SQL अपडेट**, **स्वचालित बैकअप**, **Entra ID प्रमाणीकरण** और अन्य SQL सेवाओं की अधिकांश सुविधाओं को कॉन्फ़िगर किया जा सके। +यह भी संभव है कि **स्वचालित SQL अपडेट**, **स्वचालित बैकअप**, **Entra ID प्रमाणीकरण** और अन्य SQL सेवाओं की अधिकांश सुविधाओं को कॉन्फ़िगर किया जाए। ## Enumeration @@ -278,33 +304,33 @@ $Connection.Close() invoke-sql 'Select Distinct TABLE_NAME From information_schema.TABLES;' ``` -आप sqlcmd का उपयोग करके डेटाबेस तक भी पहुँच सकते हैं। यह जानना महत्वपूर्ण है कि क्या सर्वर सार्वजनिक कनेक्शनों की अनुमति देता है `az sql server show --name --resource-group ` और यह भी कि क्या फ़ायरवॉल नियम हमारे IP को पहुँचने की अनुमति देता है: +आप sqlcmd का उपयोग करके डेटाबेस तक भी पहुँच सकते हैं। यह जानना महत्वपूर्ण है कि क्या सर्वर सार्वजनिक कनेक्शन की अनुमति देता है `az sql server show --name --resource-group ` और यह भी कि क्या फ़ायरवॉल नियम हमारे IP को पहुँचने की अनुमति देता है: ```bash sqlcmd -S .database.windows.net -U -P -d ``` -## References +## संदर्भ - [https://learn.microsoft.com/en-us/azure/azure-sql/azure-sql-iaas-vs-paas-what-is-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/azure-sql-iaas-vs-paas-what-is-overview?view=azuresql) - [https://learn.microsoft.com/en-us/azure/azure-sql/database/single-database-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/database/single-database-overview?view=azuresql) - [https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/sql-managed-instance-paas-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/sql-managed-instance-paas-overview?view=azuresql) - [https://learn.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/sql-server-on-azure-vm-iaas-what-is-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/sql-server-on-azure-vm-iaas-what-is-overview?view=azuresql) -## Privilege Escalation +## विशेषाधिकार वृद्धि {{#ref}} ../az-privilege-escalation/az-sql-privesc.md {{#endref}} -## Post Exploitation +## पोस्ट एक्सप्लोइटेशन {{#ref}} ../az-post-exploitation/az-sql-post-exploitation.md {{#endref}} -### Persistence +### स्थिरता {{#ref}} -../az-persistence/az-sql-persistance.md +../az-persistence/az-sql-persistence.md {{#endref}} {{#include ../../../banners/hacktricks-training.md}}