Translated ['', 'src/pentesting-cloud/aws-security/aws-privilege-escalat

This commit is contained in:
Translator
2025-10-04 09:11:12 +00:00
parent cd02d65992
commit 630cbea919
2 changed files with 48 additions and 13 deletions

View File

@@ -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 <Secret_Name>
```
## secretsmanager:DeleteResourcePolicy
यह action resource policy को delete करने की अनुमति देता है जो नियंत्रित करती है कि कौन किसी secret तक access कर सकता है। यदि resource policy को किसी विशिष्ट उपयोगकर्ताओं के सेट को access देने के लिए configured किया गया था तो यह DoS का कारण बन सकता है।
resource policy को delete करने के लिए:
```bash
aws secretsmanager delete-resource-policy \
--secret-id <Secret_Name>
```
## 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 <your-secret-name-or-arn> \
--version-stage AWSCURRENT \
--move-to-version-id <target-version-id> \
--remove-from-version-id <previous-version-id>
```
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -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 <secret_name> # 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 <secret_name>