diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md index 7adbed7bb..a9d3555a4 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md @@ -10,29 +10,29 @@ ../aws-services/aws-secrets-manager-enum.md {{#endref}} -### Secrets पढ़ें +### Read Secrets -ये **secrets स्वयं संवेदनशील जानकारी** हैं, [check the privesc page](../aws-privilege-escalation/aws-secrets-manager-privesc.md) यह जानने के लिए कि इन्हें कैसे पढ़ना है। +**secrets स्वयं संवेदनशील जानकारी हैं**, उन्हें पढ़ने का तरीका जानने के लिए [check the privesc page](../aws-privilege-escalation/aws-secrets-manager-privesc.md) देखें। ### DoS Change Secret Value -secret के मान को बदलकर आप उन सभी सिस्टम्स को **DoS कर सकते हैं जो उस मान पर निर्भर करते हैं।** +secret के मान को बदलकर आप **उन सभी सिस्टम्स को DoS कर सकते हैं जो उस मान पर निर्भर करते हैं।** > [!WARNING] -> ध्यान दें कि पिछले मान भी संग्रहीत होते हैं, इसलिए पुराने मान पर वापस जाना आसान है। +> ध्यान दें कि पिछले मान भी संग्रहीत होते हैं, इसलिए पहले के मान पर वापस जाना आसान है। ```bash # Requires permission secretsmanager:PutSecretValue aws secretsmanager put-secret-value \ --secret-id MyTestSecret \ --secret-string "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}" ``` -### DoS Change KMS key +### DoS: KMS key बदलना -यदि हमलावर के पास secretsmanager:UpdateSecret permission है, तो वे secret को हमलावर के स्वामित्व वाले KMS key का उपयोग करने के लिए कॉन्फ़िगर कर सकते हैं। वह key प्रारम्भ में इस तरह से सेट की गई होती है कि कोई भी उसे एक्सेस और उपयोग कर सकता है, इसलिए secret को नए key के साथ अपडेट करना संभव हो पाता है। यदि वह key एक्सेस करने योग्य नहीं होती, तो secret को अपडेट नहीं किया जा सकता था। +यदि हमलावर के पास secretsmanager:UpdateSecret permission है, तो वह secret को attacker के स्वामित्व वाले KMS key का उपयोग करने के लिए कॉन्फ़िगर कर सकता है। उस key को प्रारंभ में इस तरह सेट किया जाता है कि कोई भी उसे एक्सेस और उपयोग कर सके, इसलिए secret को नए key के साथ अपडेट करना संभव होता है। यदि key सुलभ नहीं होता, तो secret को अपडेट नहीं किया जा सकता था। -secret के लिए key बदलने के बाद, हमलावर अपनी key की कॉन्फ़िगरेशन बदल देता है ताकि केवल वही उसे एक्सेस कर सके। इस तरह, secret के बाद के संस्करण नए key के साथ एन्क्रिप्ट होंगे, और क्योंकि उस key तक कोई पहुँच नहीं होगी, secret को पुनः प्राप्त करने की क्षमता खो जाएगी। +secret के लिए key बदलने के बाद, हमलावर अपनी key की कॉन्फ़िगरेशन बदलता है ताकि केवल वही उसे एक्सेस कर सके। इस तरह, secret के बाद के संस्करण नई key के साथ एन्क्रिप्ट होंगे, और चूँकि उस key तक कोई पहुँच नहीं होगी, secret को पुनः प्राप्त करने की क्षमता खो जाएगी। -यह ध्यान देने योग्य है कि यह असमर्थता केवल बाद के संस्करणों में ही होगी, जब secret की सामग्री बदल जाएगी, क्योंकि वर्तमान संस्करण अभी भी मूल KMS key से एन्क्रिप्टेड है। +यह ध्यान रखना महत्वपूर्ण है कि यह असमर्थता केवल बाद के संस्करणों में ही होगी, जब secret की सामग्री बदल जाएगी, क्योंकि वर्तमान संस्करण अभी भी मूल KMS key के साथ एन्क्रिप्टेड है। ```bash aws secretsmanager update-secret \ --secret-id MyTestSecret \ @@ -40,10 +40,42 @@ aws secretsmanager update-secret \ ``` ### DoS Deleting Secret -एक secret को delete करने के लिए न्यूनतम दिनों की संख्या 7 है +Secret को delete करने के लिए न्यूनतम दिनों की संख्या 7 है। ```bash aws secretsmanager delete-secret \ --secret-id MyTestSecret \ --recovery-window-in-days 7 ``` +## secretsmanager:RestoreSecret + +एक secret को restore किया जा सकता है, जिससे उन secrets को भी बहाल करना संभव होता है जिन्हें deletion के लिए शेड्यूल किया गया है, क्योंकि secrets के लिए न्यूनतम deletion अवधि 7 दिन और अधिकतम 30 दिन है। secretsmanager:GetSecretValue permission के साथ यह उनकी सामग्री पुनः प्राप्त करना संभव बनाता है। + +जिस secret को delete किया जा रहा है उसे recover करने के लिए आप निम्नलिखित command का उपयोग कर सकते हैं: +```bash +aws secretsmanager restore-secret \ +--secret-id +``` +## secretsmanager:DeleteResourcePolicy + +यह action resource policy को delete करने की अनुमति देता है जो नियंत्रित करती है कि कौन किसी secret तक access कर सकता है। यदि resource policy को किसी विशिष्ट उपयोगकर्ताओं के सेट को access देने के लिए configured किया गया था तो यह DoS का कारण बन सकता है। + +resource policy को delete करने के लिए: +```bash +aws secretsmanager delete-resource-policy \ +--secret-id +``` +## secretsmanager:UpdateSecretVersionStage + +एक secret की states का उपयोग secret के वर्शन प्रबंधित करने के लिए किया जाता है। AWSCURRENT उस सक्रिय वर्शन को चिह्नित करता है जिसका उपयोग एप्लिकेशन करते हैं, AWSPREVIOUS पिछले वर्शन को रखता है ताकि जरूरत पड़ने पर आप rollback कर सकें, और AWSPENDING rotation प्रक्रिया में उपयोग होता है ताकि एक नए वर्शन को current बनाने से पहले उसे तैयार और validate किया जा सके। + +एप्लिकेशन हमेशा AWSCURRENT वाले वर्शन को पढ़ते हैं। यदि कोई उस लेबल को गलत वर्शन पर स्थानांतरित कर देता है, तो ऐप्स अवैध credentials का उपयोग करेंगे और विफल हो सकते हैं। + +AWSPREVIOUS स्वतः उपयोग में नहीं आता। हालांकि, अगर AWSCURRENT हटा दिया जाए या गलत तरीके से पुनः असाइन कर दिया जाए, तो ऐसा दिखाई दे सकता है कि सब कुछ अभी भी पिछले वर्शन के साथ चल रहा है। +```bash +aws secretsmanager update-secret-version-stage \ +--secret-id \ +--version-stage AWSCURRENT \ +--move-to-version-id \ +--remove-from-version-id +``` {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md index 6fd2ed56b..655f8984f 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md @@ -4,7 +4,7 @@ ## Secrets Manager -Secrets manager के बारे में अधिक जानकारी के लिए देखें: +Secrets Manager के बारे में अधिक जानकारी के लिए देखें: {{#ref}} ../aws-services/aws-secrets-manager-enum.md @@ -12,15 +12,18 @@ Secrets manager के बारे में अधिक जानकारी ### `secretsmanager:GetSecretValue` -इस अनुमति के साथ एक हमलावर AWS **Secretsmanager** में **एक रहस्य के अंदर सहेजा गया मान** प्राप्त कर सकता है। +इस अनुमति वाले attacker AWS **Secretsmanager** में किसी **secret के अंदर का सहेजा गया मान** प्राप्त कर सकता है। ```bash aws secretsmanager get-secret-value --secret-id # Get value ``` -**संभावित प्रभाव:** AWS सीक्रेट्स मैनेजर सेवा के अंदर उच्च संवेदनशील डेटा तक पहुंच प्राप्त करना। +**संभावित प्रभाव:** AWS Secrets Manager service के अंदर उच्च संवेदनशील डेटा तक पहुँच। + +> [!WARNING] +> ध्यान रखें कि भले ही `secretsmanager:BatchGetSecretValue` अनुमति हो, एक हमलावर को संवेदनशील secrets प्राप्त करने के लिए `secretsmanager:GetSecretValue` की भी आवश्यकता होगी। ### `secretsmanager:GetResourcePolicy`, `secretsmanager:PutResourcePolicy`, (`secretsmanager:ListSecrets`) -पिछले अनुमतियों के साथ, यह संभव है कि **अन्य प्रिंसिपल/खातों (यहां तक कि बाहरी)** को **गुप्त** तक पहुंच देने के लिए। ध्यान दें कि **KMS कुंजी** के साथ एन्क्रिप्ट किए गए गुप्तों को **पढ़ने** के लिए, उपयोगकर्ता को **KMS कुंजी पर पहुंच** भी होनी चाहिए (अधिक जानकारी के लिए [KMS Enum पृष्ठ](../aws-services/aws-kms-enum.md) देखें)। +पूर्व अनुमतियों के साथ यह संभव है कि अन्य principals/accounts (even external) को **give access to other principals/accounts (even external)** करके **secret** तक पहुँच दी जा सके। ध्यान दें कि KMS key के साथ **read secrets encrypted** करने के लिए, उपयोगकर्ता के पास **access over the KMS key** भी होना चाहिए (अधिक जानकारी के लिए [KMS Enum page](../aws-services/aws-kms-enum.md)). ```bash aws secretsmanager list-secrets aws secretsmanager get-resource-policy --secret-id