mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-post-exploitation
This commit is contained in:
+27
-27
@@ -12,15 +12,15 @@
|
||||
|
||||
### Encrypt/Decrypt information
|
||||
|
||||
`fileb://` और `file://` वे URI schemes हैं जो AWS CLI commands में स्थानीय फाइलों का path निर्दिष्ट करने के लिए उपयोग किए जाते हैं:
|
||||
`fileb://` और `file://` ऐसे URI schemes हैं जो AWS CLI कमांड्स में लोकल फाइलों का path बताने के लिए उपयोग होते हैं:
|
||||
|
||||
- `fileb://:` फाइल को बाइनरी मोड में पढ़ता है, आमतौर पर गैर-टेक्स्ट फ़ाइलों के लिए उपयोग होता है।
|
||||
- `file://:` फाइल को टेक्स्ट मोड में पढ़ता है, सामान्यतः plain text files, scripts, या JSON के लिए उपयोग होता है जो विशेष encoding आवश्यकताओं के बिना हों।
|
||||
- `fileb://:` फ़ाइल को बाइनरी मोड में पढ़ता है, सामान्यतः नॉन-टेक्स्ट फाइलों के लिए उपयोग होता है।
|
||||
- `file://:` फ़ाइल को टेक्स्ट मोड में पढ़ता है, आमतौर पर plain text files, scripts, या JSON के लिए जिनमें कोई विशेष encoding requirements नहीं होते।
|
||||
|
||||
> [!TIP]
|
||||
> ध्यान दें कि यदि आप किसी फ़ाइल के भीतर कुछ डेटा को decrypt करना चाहते हैं, तो फ़ाइल में binary data होना चाहिए, base64 encoded data नहीं। (fileb://)
|
||||
> ध्यान दें कि यदि आप किसी फाइल के अंदर कुछ data को decrypt करना चाहते हैं, तो फाइल में बाइनरी डेटा होना चाहिए, base64 encoded data नहीं. (fileb://)
|
||||
|
||||
- एक **symmetric** key का उपयोग
|
||||
- **symmetric** key का उपयोग
|
||||
```bash
|
||||
# Encrypt data
|
||||
aws kms encrypt \
|
||||
@@ -38,7 +38,7 @@ aws kms decrypt \
|
||||
--query Plaintext | base64 \
|
||||
--decode
|
||||
```
|
||||
- **asymmetric** key का उपयोग करना:
|
||||
- **asymmetric** कुंजी का उपयोग:
|
||||
```bash
|
||||
# Encrypt data
|
||||
aws kms encrypt \
|
||||
@@ -60,14 +60,14 @@ aws kms decrypt \
|
||||
```
|
||||
### KMS Ransomware
|
||||
|
||||
KMS पर privileged access रखने वाला attacker KMS की keys की KMS policy को संशोधित कर सकता है और **अपने खाते को उन पर access दे सकता है**, जिससे legit account को दिया गया access हटा दिया जाता है।
|
||||
KMS पर विशेषाधिकार प्राप्त पहुँच वाला एक हमलावर KMS policy को बदल सकता है और keys पर **grant his account access over them**, जिससे legit account को दिया गया access हटा दिया जाएगा।
|
||||
|
||||
इसके बाद, legit account users उन किसी भी सेवा की कोई भी जानकारी access नहीं कर पाएँगे जो इन keys से encrypted है, जिससे account पर एक आसान परंतु प्रभावी ransomware बन जाता है।
|
||||
फिर, वे वैध खाते के उपयोगकर्ता उन keys से encrypt किए गए किसी भी सेवा की किसी भी जानकारी तक पहुँच नहीं कर पाएंगे, जिससे उस खाते पर एक सरल परन्तु प्रभावी ransomware बन जाएगा।
|
||||
|
||||
> [!WARNING]
|
||||
> ध्यान दें कि **AWS managed keys aren't affected** इस हमले से प्रभावित नहीं होते, केवल **Customer managed keys** प्रभावित होते हैं।
|
||||
>
|
||||
> साथ ही ध्यान दें कि पैरामीटर **`--bypass-policy-lockout-safety-check`** का उपयोग आवश्यक है (web console में यह विकल्प न होने के कारण यह हमला केवल CLI से ही संभव है)।
|
||||
> ध्यान दें कि **AWS managed keys aren't affected** — इस हमले से प्रभावित नहीं होते, केवल **Customer managed keys** प्रभावित होते हैं।
|
||||
|
||||
> साथ ही ध्यान दें कि param **`--bypass-policy-lockout-safety-check`** का उपयोग आवश्यक है (web console में इस विकल्प की कमी के कारण यह हमला केवल CLI से ही संभव है)।
|
||||
```bash
|
||||
# Force policy change
|
||||
aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \
|
||||
@@ -92,28 +92,28 @@ aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \
|
||||
}
|
||||
```
|
||||
> [!CAUTION]
|
||||
> ध्यान दें कि यदि आप उस policy को बदलते हैं और केवल access को एक external account को देते हैं, और फिर इस external account से आप एक नया policy सेट करने की कोशिश करते हैं ताकि **give the access back to original account, you won't be able cause the Put Polocy action cannot be performed from a cross account**।
|
||||
> ध्यान दें कि यदि आप उस policy को बदलते हैं और केवल किसी external account को access देते हैं, और फिर उस external account से आप एक नई policy सेट करके **give the access back to original account, you won't be able cause the Put Polocy action cannot be performed from a cross account** करने की कोशिश करते हैं, तो आप सक्षम नहीं होंगे।
|
||||
|
||||
<figure><img src="../../../images/image (77).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Generic KMS Ransomware
|
||||
|
||||
global KMS Ransomware को अंजाम देने का एक और तरीका है, जिसमें निम्नलिखित चरण शामिल होंगे:
|
||||
Global KMS Ransomware को perform करने का एक और तरीका है, जिसमें निम्नलिखित steps शामिल होंगे:
|
||||
|
||||
- Create a new **key with a key material** जिसे attacker ने import किया हो
|
||||
- **Re-encrypt older data** जिसे victim के previous version से encrypt किया गया था, उसे नए version से re-encrypt करें।
|
||||
- Create a new **key with a key material** जिसे attacker द्वारा import किया गया हो
|
||||
- **Re-encrypt older data** जिसे victim के previous version से encrypt किया गया था, उसे new version से re-encrypt करें।
|
||||
- **Delete the KMS key**
|
||||
- अब केवल attacker ही, जिसके पास original key material है, encrypted data को decrypt कर पाएगा
|
||||
- अब केवल attacker, जिसके पास original key material है, वही encrypted data को decrypt कर पाएगा
|
||||
|
||||
### Delete Keys via kms:DeleteImportedKeyMaterial
|
||||
|
||||
With the `kms:DeleteImportedKeyMaterial` permission, an actor can delete the imported key material from CMKs with `Origin=EXTERNAL` (CMKs that have imported their key material), making them unable to decrypt data. This action is destructive and irreversible unless compatible material is re-imported, allowing an attacker to effectively cause ransomware-like data loss by rendering encrypted information permanently inaccessible.
|
||||
`kms:DeleteImportedKeyMaterial` permission के साथ, एक actor CMKs जिनका `Origin=EXTERNAL` है (वे CMKs जिन्होंने अपना key material import किया है) से imported key material को delete कर सकता है, जिससे वे data को decrypt करने में असमर्थ हो जाते हैं। यह action destructive और irreversible है जब तक compatible material फिर से re-import नहीं किया जाता, जिससे attacker प्रभावी रूप से ransomware-like data loss पैदा कर सकता है और encrypted जानकारी को स्थायी रूप से inaccessible बना सकता है।
|
||||
```bash
|
||||
aws kms delete-imported-key-material --key-id <Key_ID>
|
||||
```
|
||||
### कुंजियाँ नष्ट करना
|
||||
### keys नष्ट करना
|
||||
|
||||
कुंजियाँ नष्ट करने से DoS किया जा सकता है।
|
||||
keys को नष्ट करने से DoS करना संभव है।
|
||||
```bash
|
||||
# Schedule the destoy of a key (min wait time is 7 days)
|
||||
aws kms schedule-key-deletion \
|
||||
@@ -121,10 +121,10 @@ aws kms schedule-key-deletion \
|
||||
--pending-window-in-days 7
|
||||
```
|
||||
> [!CAUTION]
|
||||
> ध्यान दें कि AWS अब **पहले की क्रियाओं को cross account से निष्पादित किए जाने से रोकता है:**
|
||||
> ध्यान दें कि AWS अब **cross account से पहले बताए गए कार्यों को करने से रोकता है:**
|
||||
|
||||
### Alias बदलें या हटाएँ
|
||||
यह हमला AWS KMS aliases को delete या redirect कर देता है, जिससे key resolution टूट जाती है और उन services में तत्काल विफलताएँ होती हैं जो उन aliases पर निर्भर करती हैं, परिणामस्वरूप denial-of-service हो जाता है। `kms:DeleteAlias` या `kms:UpdateAlias` जैसे permissions होने पर एक attacker aliases को remove या repoint कर सकता है और cryptographic operations (e.g., encrypt, describe) को बाधित कर सकता है। कोई भी service जो key ID के बजाय alias को reference करती है, तब तक fail हो सकती है जब तक alias को restore या सही तरीके से remap नहीं किया जाता।
|
||||
### Alias बदलना या हटाना
|
||||
यह attack AWS KMS aliases को delete या redirect कर देता है, जिससे key resolution टूट जाती है और उन सेवाओं में तुरंत failures होते हैं जो इन aliases पर निर्भर करती हैं, परिणामस्वरूप denial-of-service होता है। `kms:DeleteAlias` या `kms:UpdateAlias` जैसी permissions होने पर एक attacker aliases को remove या repoint कर सकता है और cryptographic operations (e.g., encrypt, describe) को बाधित कर सकता है। कोई भी service जो key ID की बजाय alias को reference करती है, alias के restore या सही तरीके से remap होने तक fail हो सकती है।
|
||||
```bash
|
||||
# Delete Alias
|
||||
aws kms delete-alias --alias-name alias/<key_alias>
|
||||
@@ -135,7 +135,7 @@ aws kms update-alias \
|
||||
--target-key-id <new_target_key>
|
||||
```
|
||||
### कुंजी हटाने को रद्द करना
|
||||
`kms:CancelKeyDeletion` और `kms:EnableKey` जैसी अनुमतियों के साथ, कोई actor किसी AWS KMS customer master key की निर्धारित deletion को रद्द कर सकता है और बाद में उसे फिर से सक्षम कर सकता है। ऐसा करने से कुंजी पुनः प्राप्त हो जाती है (initially in Disabled state) और यह पहले से सुरक्षित डेटा को decrypt करने की क्षमता बहाल कर देती है, जिससे exfiltration संभव हो जाता है।
|
||||
`kms:CancelKeyDeletion` और `kms:EnableKey` जैसे permissions के साथ, एक actor AWS KMS customer master key की निर्धारित deletion को रद्द कर सकता है और बाद में उसे पुनः सक्षम कर सकता है। ऐसा करने से कुंजी (प्रारंभ में Disabled state) पुनर्प्राप्त हो जाती है और पहले सुरक्षित किए गए डेटा को decrypt करने की इसकी क्षमता बहाल हो जाती है, जिससे exfiltration संभव हो जाता है।
|
||||
```bash
|
||||
# Firts cancel de deletion
|
||||
aws kms cancel-key-deletion \
|
||||
@@ -146,13 +146,13 @@ aws kms enable-key \
|
||||
--key-id <Key_ID>
|
||||
```
|
||||
### Disable Key
|
||||
`kms:DisableKey` अनुमति के साथ, एक अभिकर्ता AWS KMS customer master key को निष्क्रिय कर सकता है, जिससे उसे encryption या decryption के लिए उपयोग नहीं किया जा सकेगा। यह उस CMK पर निर्भर किसी भी सेवा की पहुंच को बाधित कर देता है और जब तक key को पुनः सक्षम नहीं किया जाता, तब तक तत्काल व्यवधान या denial-of-service हो सकता है।
|
||||
`kms:DisableKey` अनुमति होने पर कोई व्यक्ति AWS KMS customer master key को अक्षम कर सकता है, जिससे वह encryption या decryption के लिए उपयोग नहीं हो सकेगी। यह उन किसी भी सेवाओं की पहुँच को तोड़ देता है जो उस CMK पर निर्भर करती हैं और कुंजी को पुनः सक्षम किए जाने तक तत्काल व्यवधान या denial-of-service का कारण बन सकता है।
|
||||
```bash
|
||||
aws kms disable-key \
|
||||
--key-id <key_id>
|
||||
```
|
||||
### Derive Shared Secret
|
||||
With the `kms:DeriveSharedSecret` permission, एक actor KMS-में रखी निजी कुंजी और उपयोगकर्ता-प्रदान सार्वजनिक कुंजी का उपयोग करके एक ECDH साझा रहस्य गणना कर सकता है।
|
||||
यदि किसी के पास `kms:DeriveSharedSecret` permission है, तो एक actor KMS-held private key और user-supplied public key का उपयोग करके एक ECDH shared secret की गणना कर सकता है।
|
||||
```bash
|
||||
aws kms derive-shared-secret \
|
||||
--key-id <key_id> \
|
||||
@@ -160,7 +160,7 @@ aws kms derive-shared-secret \
|
||||
--key-agreement-algorithm <algorithm>
|
||||
```
|
||||
### Impersonation via kms:Sign
|
||||
`kms:Sign` permission के साथ, एक actor KMS-stored CMK का उपयोग करके private key को उजागर किए बिना डेटा को cryptographically साइन कर सकता है, जिससे ऐसे वैध सिग्नेचर बनते हैं जो impersonation को सक्षम कर सकते हैं या दुर्भावनापूर्ण कार्रवाइयों को अधिकृत कर सकते हैं।
|
||||
यदि किसी के पास `kms:Sign` permission होता है, तो वह KMS-stored CMK का उपयोग करके बिना private key को उजागर किए डेटा को cryptographically sign कर सकता है, जिससे वैध signatures बनते हैं जो impersonation की अनुमति दे सकते हैं या किसी malicious action को authorize कर सकते हैं।
|
||||
```bash
|
||||
aws kms sign \
|
||||
--key-id <key-id> \
|
||||
@@ -169,7 +169,7 @@ aws kms sign \
|
||||
--message-type RAW
|
||||
```
|
||||
### DoS with Custom Key Stores
|
||||
यदि किसी को `kms:DeleteCustomKeyStore`, `kms:DisconnectCustomKeyStore`, या `kms:UpdateCustomKeyStore` जैसी permissions मिलती हैं, तो एक actor किसी AWS KMS Custom Key Store (CKS) को संशोधित, डिस्कनेक्ट, या डिलीट कर सकता है, जिससे उसके master keys निष्क्रिय हो जाते हैं। इससे उन सेवाओं के लिए एन्क्रिप्शन, डिक्रिप्शन, और साइनिंग ऑपरेशन प्रभावित होते हैं जो उन keys पर निर्भर हैं और यह तुरंत denial-of-service का कारण बन सकता है। इसलिए इन permissions को सीमित और मॉनिटर करना अत्यंत आवश्यक है।
|
||||
`kms:DeleteCustomKeyStore`, `kms:DisconnectCustomKeyStore`, या `kms:UpdateCustomKeyStore` जैसी permissions होने पर कोई actor AWS KMS Custom Key Store (CKS) को संशोधित, डिस्कनेक्ट या डिलीट कर सकता है, जिससे उसके master keys काम करना बंद कर देते हैं। इससे उन सेवाओं के लिए encryption, decryption और signing ऑपरेशन्स प्रभावित हो जाते हैं जो उन keys पर निर्भर करती हैं और यह तुरंत एक denial-of-service पैदा कर सकता है। इसलिए उन permissions को सीमित करना और मॉनिटर करना बेहद महत्वपूर्ण है।
|
||||
```bash
|
||||
aws kms delete-custom-key-store --custom-key-store-id <CUSTOM_KEY_STORE_ID>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user