Translated ['', 'src/pentesting-cloud/aws-security/aws-post-exploitation

This commit is contained in:
Translator
2026-02-23 11:07:19 +00:00
parent 071e1fa828
commit 4a21142158
@@ -10,15 +10,15 @@
../../aws-services/aws-kms-enum.md
{{#endref}}
### Шифрування/Розшифрування інформації
### Encrypt/Decrypt information
`fileb://` and `file://` are URI schemes used in AWS CLI commands to specify the path to local files:
`fileb://` and `file://` — це URI-схеми, що використовуються в командах AWS CLI для вказання шляху до локальних файлів:
- `fileb://:` зчитує файл у двійковому режимі, зазвичай використовується для бінарних (не текстових) файлів.
- `file://:` зчитує файл у текстовому режимі, зазвичай використовується для простих текстових файлів, скриптів або JSON без спеціальних вимог кодування.
- `fileb://:` читає файл у бінарному режимі, зазвичай використовується для файлів, що не є текстовими.
- `file://:` читає файл у текстовому режимі, зазвичай використовується для простих текстових файлів, скриптів або JSON, які не мають спеціальних вимог кодування.
> [!TIP]
> Зверніть увагу, що якщо ви хочете розшифрувати дані, що знаходяться у файлі, файл має містити двійкові дані, а не base64-кодовані дані. (fileb://)
> Зверніть увагу, що якщо ви хочете decrypt деякі дані всередині файлу, файл має містити бінарні дані, а не base64 закодовані дані. (fileb://)
- Використання **симетричного** ключа
```bash
@@ -60,15 +60,14 @@ aws kms decrypt \
```
### KMS Ransomware
Атакуючий із привілеями доступу до KMS може змінити KMS policy ключів і **grant his account access over them**, видаливши доступ, наданий легітимному обліковому запису.
Зловмисник, який має привілеї в KMS, може змінити політику KMS для ключів і **надати своєму обліковому запису доступ до них**, вилучивши доступ, наданий легітимному обліковому запису.
Тоді користувачі легітимного облікового запису не зможуть отримати доступ до жодної інформації жодного сервісу, яка була зашифрована цими ключами, створюючи простий, але ефективний ransomware проти облікового запису.
Тоді користувачі цього легітимного облікового запису не зможуть отримати доступ до жодної інформації сервісів, зашифрованої цими ключами, що створює простий, але ефективний ransomware проти облікового запису.
> [!WARNING]
> Зверніть увагу, що **AWS managed keys aren't affected** цим нападом, уразливі лише **Customer managed keys**.
> [!WARNING]
> Також зауважте необхідність використовувати параметр **`--bypass-policy-lockout-safety-check`** (відсутність цієї опції у веб-консолі робить цю атаку можливою лише з CLI).
> Зверніть увагу, що **AWS managed keys aren't affected** цією атакою, лише **Customer managed keys**.
>
> Також зверніть увагу на необхідність використання параметра **`--bypass-policy-lockout-safety-check`** (відсутність цієї опції у веб-консолі робить цю атаку можливою лише з CLI).
```bash
# Force policy change
aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \
@@ -93,28 +92,28 @@ aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \
}
```
> [!CAUTION]
> Зверніть увагу, якщо ви зміните ту політику й надасте доступ лише зовнішньому акаунту, а потім з цього зовнішнього акаунту спробуєте встановити нову політику, щоб **повернути доступ до початкового акаунту, у вас не вийде, бо дія Put Polocy не може бути виконана з крос-акаунта**.
> Зверніть увагу: якщо ви зміните цю політику й надасте доступ лише зовнішньому акаунту, а потім з цього зовнішнього акаунту спробуєте встановити нову політику, щоб **повернути доступ оригінальному акаунту, ви не зможете, бо дію Put Polocy не можна виконати з cross account**.
<figure><img src="../../../images/image (77).png" alt=""><figcaption></figcaption></figure>
### Generic KMS Ransomware
Існує ще один спосіб реалізації глобального KMS Ransomware, що включає такі кроки:
Існує інший спосіб виконати глобальний KMS Ransomware, який включає такі кроки:
- Створити новий **key with a key material**, імпортований зловмисником
- **Re-encrypt older data** жертви, зашифровані попередньою версією, новою версією
- **Re-encrypt older data** жертви, зашифровані попередньою версією, за допомогою нової
- **Delete the KMS key**
- Тепер лише зловмисник, який має оригінальний ключовий матеріал, зможе розшифрувати дані
- Тепер лише зловмисник, у якого є оригінальний key material, зможе розшифрувати зашифровані дані
### Delete Keys via kms:DeleteImportedKeyMaterial
З дозволом `kms:DeleteImportedKeyMaterial` суб'єкт може видалити імпортований ключовий матеріал з CMKs із `Origin=EXTERNAL` (CMKs, що імпортували свій ключовий матеріал), роблячи їх нездатними розшифрувати дані. Ця дія є руйнівною та незворотною, якщо не буде реімпортовано сумісного матеріалу, що дозволяє зловмиснику фактично спричинити втрату даних, схожу на ransomware, зробивши зашифровану інформацію назавжди недоступною.
Маючи дозвіл `kms:DeleteImportedKeyMaterial`, актор може видалити імпортований key material з CMKs з `Origin=EXTERNAL` (CMKs, що імпортували свій key material), роблячи їх нездатними розшифрувати дані. Ця дія є руйнівною і незворотною, якщо сумісний матеріал не буде повторно імпортовано, що дозволяє зловмиснику фактично спричинити ransomware-like втрату даних, зробивши зашифровану інформацію назавжди недоступною.
```bash
aws kms delete-imported-key-material --key-id <Key_ID>
```
### Знищення keys
### Destroy keys
Знищення keys може призвести до DoS.
Destroying keys можна виконати DoS.
```bash
# Schedule the destoy of a key (min wait time is 7 days)
aws kms schedule-key-deletion \
@@ -124,8 +123,8 @@ aws kms schedule-key-deletion \
> [!CAUTION]
> Зауважте, що AWS тепер **перешкоджає виконанню попередніх дій з іншого облікового запису:**
### Change or delete Alias
Ця атака видаляє або перенаправляє AWS KMS aliases, порушуючи key resolution і спричиняючи негайні збої в будь-яких сервісах, які покладаються на ці aliases, що призводить до denial-of-service. Маючи дозволи типу `kms:DeleteAlias` або `kms:UpdateAlias`, зловмисник може видалити або перенаправити aliases і порушити криптографічні операції (наприклад, encrypt, describe). Будь-який сервіс, що посилається на alias замість key ID, може не працювати доти, поки alias не буде відновлено або правильно перенаправлено.
### Змінити або видалити Alias
Ця атака видаляє або перенаправляє AWS KMS aliases, порушуючи розв'язування ключів і спричиняючи негайні збої в будь-яких сервісах, що покладаються на ці aliases, внаслідок чого виникає denial-of-service. Маючи дозволи на кшталт `kms:DeleteAlias` або `kms:UpdateAlias`, зловмисник може видалити або перенаправити aliases і порушити криптографічні операції (наприклад, encrypt, describe). Будь-який сервіс, що посилається на alias замість key ID, може не працювати, доки alias не буде відновлено або правильно перенаправлено.
```bash
# Delete Alias
aws kms delete-alias --alias-name alias/<key_alias>
@@ -136,7 +135,7 @@ aws kms update-alias \
--target-key-id <new_target_key>
```
### Скасування видалення ключа
Маючи дозволи на зразок `kms:CancelKeyDeletion` та `kms:EnableKey`, зловмисник може скасувати заплановане видалення AWS KMS customer master key та згодом знову його активувати. Це відновлює ключ (спочатку в стані Disabled) і повертає його здатність розшифровувати раніше захищені дані, що дозволяє exfiltration.
За наявності дозволів на кшталт `kms:CancelKeyDeletion` та `kms:EnableKey` зловмисник може скасувати заплановане видалення AWS KMS customer master key і пізніше знову його увімкнути. Це відновлює ключ (спочатку в стані Disabled) та повертає його здатність розшифровувати раніше захищені дані, що дозволяє exfiltration.
```bash
# Firts cancel de deletion
aws kms cancel-key-deletion \
@@ -146,22 +145,22 @@ aws kms cancel-key-deletion \
aws kms enable-key \
--key-id <Key_ID>
```
### Disable Key
З дозволом `kms:DisableKey` зловмисник може відключити AWS KMS customer master key, що перешкоджає його використанню для шифрування або розшифрування. Це порушує доступ для будь-яких сервісів, які залежать від цього CMK, і може спричинити негайні перебої або denial-of-service, поки ключ не буде повторно увімкнено.
### Вимкнення ключа
Маючи дозвіл `kms:DisableKey`, зловмисник може відключити AWS KMS customer master key, перешкодивши його використанню для шифрування або розшифрування. Це порушить доступ для будь-яких сервісів, що залежать від цього CMK, і може спричинити негайні збої або denial-of-service, доки ключ не буде знову ввімкнено.
```bash
aws kms disable-key \
--key-id <key_id>
```
### Отримання спільного секрету
Маючи дозвіл `kms:DeriveSharedSecret`, суб'єкт може використати приватний ключ, що зберігається в KMS, разом із публічним ключем, наданим користувачем, щоб обчислити ECDH спільний секрет.
### Derive Shared Secret
Маючи дозвіл `kms:DeriveSharedSecret`, актор може використати KMS-held private key разом із user-supplied public key для обчислення ECDH shared secret.
```bash
aws kms derive-shared-secret \
--key-id <key_id> \
--public-key fileb:///<route_to_public_key> \
--key-agreement-algorithm <algorithm>
```
### Impersonation via kms:Sign
З дозволом `kms:Sign` зловмисник може використовувати KMS-stored CMK для криптографічного підписування даних без розкриття приватного ключа, створюючи дійсні підписи, які можуть дозволити impersonation або авторизувати шкідливі дії.
### Імперсонація через `kms:Sign`
Маючи дозвіл `kms:Sign`, актор може використовувати KMS-stored CMK для криптографічного підписання даних без розкриття приватного ключа, створюючи дійсні підписи, які можуть дозволити імперсонацію або авторизувати шкідливі дії.
```bash
aws kms sign \
--key-id <key-id> \
@@ -169,8 +168,8 @@ aws kms sign \
--signing-algorithm <algoritmo> \
--message-type RAW
```
### DoS з Custom Key Stores
Маючи дозволи на кшталт `kms:DeleteCustomKeyStore`, `kms:DisconnectCustomKeyStore` або `kms:UpdateCustomKeyStore`, зловмисник може змінити, відключити або видалити AWS KMS Custom Key Store (CKS), зробивши його master keys нефункціональними. Це порушує операції шифрування, дешифрування та підписування для будь-яких сервісів, що покладаються на ці ключі, і може спричинити негайний denial-of-service. Тому обмеження та моніторинг цих дозволів є критично важливими.
### DoS with Custom Key Stores
Маючи дозволи на кшталт `kms:DeleteCustomKeyStore`, `kms:DisconnectCustomKeyStore` або `kms:UpdateCustomKeyStore`, зловмисник може змінити, відключити або видалити AWS KMS Custom Key Store (CKS), зробивши його майстер-ключі непридатними для роботи. Це порушує операції шифрування, дешифрування та підписування для будь-яких сервісів, які залежать від цих ключів, і може спричинити негайний denial-of-service. Тому обмеження та моніторинг цих дозволів є критично важливими.
```bash
aws kms delete-custom-key-store --custom-key-store-id <CUSTOM_KEY_STORE_ID>