diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation/README.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation/README.md index 49897633b..7a3bc3d25 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation/README.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation/README.md @@ -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óć uwagę, ż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**.
### 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 ``` @@ -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/ @@ -134,8 +134,8 @@ aws kms update-alias \ --alias-name alias/ \ --target-key-id ``` -### 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 ``` ### 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 ``` -### 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 \ @@ -161,7 +160,7 @@ aws kms derive-shared-secret \ --key-agreement-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 \ @@ -169,8 +168,8 @@ aws kms sign \ --signing-algorithm \ --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 usunąć 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