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

This commit is contained in:
Translator
2025-10-04 09:13:24 +00:00
parent 4eefe50278
commit afa772448c
2 changed files with 50 additions and 15 deletions

View File

@@ -4,22 +4,22 @@
## Secrets Manager
Для отримання додаткової інформації див.:
Для додаткової інформації див.:
{{#ref}}
../aws-services/aws-secrets-manager-enum.md
{{#endref}}
### Читання секретів
### Читання Secrets
Самі **секрети є конфіденційною інформацією**, [check the privesc page](../aws-privilege-escalation/aws-secrets-manager-privesc.md) щоб дізнатися, як їх читати.
**secrets самі по собі є чутливою інформацією**, [див. сторінку privesc](../aws-privilege-escalation/aws-secrets-manager-privesc.md), щоб дізнатися, як їх читати.
### DoS — Зміна значення секрету
### DoS — Зміна значення Secret
Змінивши значення секрету, ви можете спричинити **DoS для всіх систем, що залежать від цього значення.**
Змінивши значення secret, ви можете **DoS всі системи, які залежать від цього значення.**
> [!WARNING]
> Зверніть увагу, що попередні значення також зберігаються, тому легко просто повернутися до попереднього значення.
> Зверніть увагу, що попередні значення також зберігаються, тому легко повернутися до попереднього значення.
```bash
# Requires permission secretsmanager:PutSecretValue
aws secretsmanager put-secret-value \
@@ -28,22 +28,54 @@ aws secretsmanager put-secret-value \
```
### DoS Change KMS key
Якщо зловмисник має дозвіл secretsmanager:UpdateSecret, він може налаштувати secret на використання KMS key, що належить зловмисникові. Спочатку цей KMS key налаштовано так, що будь-хто може отримати до нього доступ і використовувати його, тому оновлення secret з новим ключем можливе. Якби KMS key був недоступний, secret не можна було б оновити.
Якщо attacker має дозвіл secretsmanager:UpdateSecret, він може налаштувати secret так, щоб він використовував KMS key, який належить attacker. Цей key спочатку налаштований так, що будь-хто може отримати до нього доступ і використовувати його, тому оновлення secret з новим key можливе. Якби key не був доступний, secret не можна було б оновити.
Після зміни KMS key для secret зловмисник модифікує конфігурацію свого ключа так, щоб доступ до нього мав лише він. Таким чином у наступних версіях secret вони будуть зашифровані цим новим ключем, і через відсутність доступу до ключа можливість отримати secret буде втрачена.
Після зміни key для secret attacker змінює конфігурацію свого key так, щоб доступ до нього мав тільки attacker. Таким чином, у наступних версіях secret він буде зашифрований новим key, і оскільки доступу до нього не буде, можливість отримати secret буде втрачена.
Важливо зазначити, що така недоступність виникне лише в пізніших версіях, після зміни вмісту secret, оскільки поточна версія все ще зашифрована оригінальним KMS key.
Важливо зауважити, що ця недоступність виникне лише у пізніших версіях, після зміни вмісту secret, оскільки поточна версія все ще зашифрована оригінальним KMS key.
```bash
aws secretsmanager update-secret \
--secret-id MyTestSecret \
--kms-key-id arn:aws:kms:us-west-2:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
```
### DoS Deleting Secret
### DoS Видалення секрету
Мінімальна кількість днів для видалення секрету — 7
Мінімальна кількість днів для видалення секрету — 7.
```bash
aws secretsmanager delete-secret \
--secret-id MyTestSecret \
--recovery-window-in-days 7
```
## secretsmanager:RestoreSecret
Можна відновити secret, що дозволяє відновлювати secrets, які були заплановані до видалення, оскільки мінімальний період очікування видалення для secrets становить 7 днів, а максимальний — 30 днів. У поєднанні з дозволом secretsmanager:GetSecretValue це дає змогу отримати їхній вміст.
Щоб відновити secret, який перебуває в процесі видалення, можна використати таку команду:
```bash
aws secretsmanager restore-secret \
--secret-id <Secret_Name>
```
## secretsmanager:DeleteResourcePolicy
Ця дія дозволяє видаляти політику доступу до ресурсу, яка контролює, хто може отримати доступ до секрету. Це може призвести до DoS, якщо політика доступу до ресурсу була налаштована так, щоб дозволяти доступ конкретному набору користувачів.
Щоб видалити політику доступу до ресурсу:
```bash
aws secretsmanager delete-resource-policy \
--secret-id <Secret_Name>
```
## secretsmanager:UpdateSecretVersionStage
Стані секрету використовуються для керування версіями секрету. AWSCURRENT позначає активну версію, яку використовують програми, AWSPREVIOUS зберігає попередню версію, щоб ви могли при необхідності здійснити відкат, а AWSPENDING використовується в процесі ротації для підготовки та перевірки нової версії перед тим, як зробити її поточною.
Програми завжди читають версію з AWSCURRENT. Якщо хтось перемістить цю мітку на неправильну версію, додатки використовуватимуть недійсні облікові дані і можуть не працювати.
AWSPREVIOUS не використовується автоматично. Однак якщо AWSCURRENT буде видалено або переназначено неправильно, може здатися, що все досі працює з попередньою версією.
```bash
aws secretsmanager update-secret-version-stage \
--secret-id <your-secret-name-or-arn> \
--version-stage AWSCURRENT \
--move-to-version-id <target-version-id> \
--remove-from-version-id <previous-version-id>
```
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -4,7 +4,7 @@
## Secrets Manager
Для отримання додаткової інформації про Secrets Manager дивіться:
Для отримання додаткової інформації про Secrets Manager див.:
{{#ref}}
../aws-services/aws-secrets-manager-enum.md
@@ -12,15 +12,18 @@
### `secretsmanager:GetSecretValue`
Зловмисник з цим дозволом може отримати **збережене значення всередині секрету** в AWS **Secretsmanager**.
Зловмисник з цим дозволом може отримати **збережене значення всередині secret** в AWS **Secretsmanager**.
```bash
aws secretsmanager get-secret-value --secret-id <secret_name> # Get value
```
**Потенційний вплив:** Доступ до високочутливих даних у службі AWS Secrets Manager.
**Potential Impact:** Доступ до високочутливих даних у сервісі AWS secrets manager.
> [!WARNING]
> Зауважте, що навіть за наявності дозволу `secretsmanager:BatchGetSecretValue`, зловмиснику також потрібен `secretsmanager:GetSecretValue` для отримання чутливих секретів.
### `secretsmanager:GetResourcePolicy`, `secretsmanager:PutResourcePolicy`, (`secretsmanager:ListSecrets`)
З попередніми дозволами можливо **надати доступ іншим принципалам/акаунтам (навіть зовнішнім)** для доступу до **секрету**. Зверніть увагу, що для **читання секретів, зашифрованих** за допомогою ключа KMS, користувач також повинен мати **доступ до ключа KMS** (більше інформації на [KMS Enum page](../aws-services/aws-kms-enum.md)).
З попередніми дозволами можна **надати доступ іншим principals/accounts (навіть зовнішнім)** до цього **секрету**. Зауважте, що щоб **читати секрети, зашифровані** за допомогою KMS key, користувач також має мати **доступ до KMS key** (докладніше на [KMS Enum page](../aws-services/aws-kms-enum.md)).
```bash
aws secretsmanager list-secrets
aws secretsmanager get-resource-policy --secret-id <secret_name>