mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-12 07:40:49 -08:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-privilege-escalat
This commit is contained in:
@@ -4,22 +4,22 @@
|
||||
|
||||
## Secrets Manager
|
||||
|
||||
Po więcej informacji sprawdź:
|
||||
Więcej informacji:
|
||||
|
||||
{{#ref}}
|
||||
../aws-services/aws-secrets-manager-enum.md
|
||||
{{#endref}}
|
||||
|
||||
### Odczyt sekretów
|
||||
### Read Secrets
|
||||
|
||||
The **secrets themself are sensitive information**, [sprawdź stronę privesc](../aws-privilege-escalation/aws-secrets-manager-privesc.md) aby dowiedzieć się, jak je odczytać.
|
||||
**Sekrety same w sobie są informacjami wrażliwymi**, [sprawdź stronę privesc](../aws-privilege-escalation/aws-secrets-manager-privesc.md) aby dowiedzieć się, jak je odczytać.
|
||||
|
||||
### DoS — zmiana wartości sekretu
|
||||
### DoS Change Secret Value
|
||||
|
||||
Zmieniając wartość sekretu możesz **spowodować DoS wszystkich systemów, które zależą od tej wartości.**
|
||||
|
||||
> [!WARNING]
|
||||
> Zauważ, że poprzednie wartości są również przechowywane, więc łatwo jest po prostu wrócić do poprzedniej wartości.
|
||||
> Należy pamiętać, że poprzednie wartości są również przechowywane, więc łatwo jest po prostu powrócić do poprzedniej wartości.
|
||||
```bash
|
||||
# Requires permission secretsmanager:PutSecretValue
|
||||
aws secretsmanager put-secret-value \
|
||||
@@ -28,22 +28,54 @@ aws secretsmanager put-secret-value \
|
||||
```
|
||||
### DoS Change KMS key
|
||||
|
||||
Jeśli attacker ma uprawnienie secretsmanager:UpdateSecret, może skonfigurować secret tak, aby używał KMS key należącego do attacker. Ten KMS key jest początkowo ustawiony w taki sposób, że każdy może go używać i mieć do niego dostęp, więc możliwe jest zaktualizowanie secret z nowym KMS key. Gdyby KMS key nie był dostępny, secret nie mógłby zostać zaktualizowany.
|
||||
Jeśli attacker ma uprawnienie secretsmanager:UpdateSecret, może skonfigurować secret tak, aby używał KMS key należącego do attacker. Ten KMS key jest początkowo ustawiony w taki sposób, że każdy może mieć do niego dostęp i go używać, więc aktualizacja secret z użyciem nowego KMS key jest możliwa. Gdyby KMS key nie był dostępny, secret nie mógłby zostać zaktualizowany.
|
||||
|
||||
Po zmianie KMS key dla secret attacker modyfikuje konfigurację swojego KMS key tak, aby dostęp do niego miał tylko attacker. W ten sposób w kolejnych wersjach secret będzie szyfrowany nowym KMS key, a ponieważ nie będzie do niego dostępu, możliwość odzyskania secret zostanie utracona.
|
||||
Po zmianie KMS key dla secret, attacker modyfikuje konfigurację swojego KMS key tak, aby tylko on miał do niego dostęp. W ten sposób w kolejnych wersjach secret będzie szyfrowany nowym KMS key, a ponieważ nie będzie dostępu do tego KMS key, możliwość pobrania secret zostanie utracona.
|
||||
|
||||
Ważne jest, aby zaznaczyć, że ta niedostępność wystąpi dopiero w późniejszych wersjach, po zmianie zawartości secret, ponieważ bieżąca wersja nadal jest zaszyfrowana oryginalnym KMS key.
|
||||
Ważne jest, aby zauważyć, że ta niedostępność wystąpi dopiero w późniejszych wersjach, po zmianie zawartości secret, ponieważ bieżąca wersja jest nadal zaszyfrowana oryginalnym 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 Usuwanie secretu
|
||||
### DoS Usuwanie sekretu
|
||||
|
||||
Minimalna liczba dni wymagana do usunięcia secretu to 7
|
||||
Minimalna liczba dni potrzebna do usunięcia sekretu wynosi 7
|
||||
```bash
|
||||
aws secretsmanager delete-secret \
|
||||
--secret-id MyTestSecret \
|
||||
--recovery-window-in-days 7
|
||||
```
|
||||
## secretsmanager:RestoreSecret
|
||||
|
||||
Możliwe jest przywrócenie secretu, co pozwala na przywrócenie secretów zaplanowanych do usunięcia — minimalny okres usuwania secretów to 7 dni, a maksymalny 30 dni. W połączeniu z uprawnieniem secretsmanager:GetSecretValue umożliwia to pobranie ich zawartości.
|
||||
|
||||
Aby odzyskać secret, który jest w trakcie usuwania, możesz użyć następującego polecenia:
|
||||
```bash
|
||||
aws secretsmanager restore-secret \
|
||||
--secret-id <Secret_Name>
|
||||
```
|
||||
## secretsmanager:DeleteResourcePolicy
|
||||
|
||||
Ta akcja pozwala usunąć politykę zasobów, która kontroluje, kto może uzyskać dostęp do secret. Może to doprowadzić do DoS, jeśli polityka zasobów była skonfigurowana tak, aby zezwalać na dostęp tylko określonej grupie użytkowników.
|
||||
|
||||
Aby usunąć politykę zasobów:
|
||||
```bash
|
||||
aws secretsmanager delete-resource-policy \
|
||||
--secret-id <Secret_Name>
|
||||
```
|
||||
## secretsmanager:UpdateSecretVersionStage
|
||||
|
||||
Stany sekretu są używane do zarządzania wersjami sekretu. AWSCURRENT oznacza aktywną wersję, której używają aplikacje, AWSPREVIOUS przechowuje poprzednią wersję, aby można było przywrócić ją w razie potrzeby, a AWSPENDING jest używany w procesie rotacji do przygotowania i walidacji nowej wersji przed ustawieniem jej jako bieżącej.
|
||||
|
||||
Aplikacje zawsze odczytują wersję oznaczoną AWSCURRENT. Jeśli ktoś przeniesie tę etykietę na niewłaściwą wersję, aplikacje będą używać nieprawidłowych poświadczeń i mogą nie działać.
|
||||
|
||||
AWSPREVIOUS nie jest używane automatycznie. Jednak jeśli AWSCURRENT zostanie usunięte lub przypisane nieprawidłowo, może się wydawać, że wszystko nadal działa na poprzedniej wersji.
|
||||
```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}}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# AWS - Przejęcie uprawnień w Secrets Manager
|
||||
# AWS - Secrets Manager Privesc
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Secrets Manager
|
||||
|
||||
Aby uzyskać więcej informacji na temat menedżera sekretów, sprawdź:
|
||||
Aby uzyskać więcej informacji o Secrets Manager, zobacz:
|
||||
|
||||
{{#ref}}
|
||||
../aws-services/aws-secrets-manager-enum.md
|
||||
@@ -12,15 +12,18 @@ Aby uzyskać więcej informacji na temat menedżera sekretów, sprawdź:
|
||||
|
||||
### `secretsmanager:GetSecretValue`
|
||||
|
||||
Atakujący z tym uprawnieniem może uzyskać **zapisana wartość wewnątrz sekretu** w AWS **Secretsmanager**.
|
||||
Atakujący z tym uprawnieniem może uzyskać **zapisaną wartość wewnątrz sekretu** w AWS **Secretsmanager**.
|
||||
```bash
|
||||
aws secretsmanager get-secret-value --secret-id <secret_name> # Get value
|
||||
```
|
||||
**Potencjalny wpływ:** Uzyskanie dostępu do danych o wysokiej wrażliwości w usłudze AWS Secrets Manager.
|
||||
**Potencjalny wpływ:** Uzyskanie dostępu do wysoce wrażliwych danych w AWS secrets manager service.
|
||||
|
||||
> [!WARNING]
|
||||
> Należy pamiętać, że nawet mając uprawnienie `secretsmanager:BatchGetSecretValue`, atakujący będzie również potrzebował `secretsmanager:GetSecretValue`, aby pobrać wrażliwe sekrety.
|
||||
|
||||
### `secretsmanager:GetResourcePolicy`, `secretsmanager:PutResourcePolicy`, (`secretsmanager:ListSecrets`)
|
||||
|
||||
Dzięki wcześniejszym uprawnieniom możliwe jest **przyznanie dostępu innym podmiotom/kontom (nawet zewnętrznym)** do uzyskania dostępu do **sekretu**. Należy pamiętać, że aby **odczytać sekrety zaszyfrowane** kluczem KMS, użytkownik musi również mieć **dostęp do klucza KMS** (więcej informacji na stronie [KMS Enum](../aws-services/aws-kms-enum.md)).
|
||||
Dzięki powyższym uprawnieniom możliwe jest **udzielenie dostępu innym principalom/kontom (nawet zewnętrznym)** do **sekretu**. Zwróć uwagę, że aby **odczytać sekrety zaszyfrowane** kluczem KMS, użytkownik musi również mieć **dostęp do klucza KMS** (więcej informacji na [KMS Enum page](../aws-services/aws-kms-enum.md)).
|
||||
```bash
|
||||
aws secretsmanager list-secrets
|
||||
aws secretsmanager get-resource-policy --secret-id <secret_name>
|
||||
|
||||
Reference in New Issue
Block a user