From 2b4fa7f6a085c5dacf25a6a9f0b96eda6c3822e4 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 26 Jan 2026 01:10:20 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/aws-security/aws-privilege-escalat --- .../aws-stepfunctions-privesc/README.md | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) 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 22f7bcbf2..633ca5ed4 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 -Kwa maelezo zaidi kuhusu huduma hii ya AWS, angalia: +Kwa taarifa zaidi kuhusu huduma hii ya AWS, angalia: {{#ref}} ../../aws-services/aws-stepfunctions-enum.md {{#endref}} -### Task Resources +### Rasilimali za Task -Mbinu hizi za privilege escalation zitahitaji kutumia baadhi ya rasilimali za AWS Step Functions ili kutekeleza vitendo vinavyohusiana na privilege escalation. +Teknolojia hizi za privilege escalation zitahitaji kutumia baadhi ya AWS Step Functions resources ili kutekeleza vitendo vinavyotakiwa vya privilege escalation. -Ili kuangalia vitendo vyote vinavyowezekana, unaweza kwenda kwenye akaunti yako ya AWS, uchague kitendo unachotaka kutumia na uone vigezo vinavyotumika, kama ifuatavyo: +Ili kuangalia vitendo vyote vinavyowezekana, unaweza kwenda kwenye akaunti yako ya AWS, uchague action ungependa kutumia na uone vigezo vinavyotumika, kama katika:
-Au unaweza pia kwenda kwenye nyaraka za API za AWS na kukagua nyaraka za kila kitendo: +Au unaweza pia kwenda kwenye API documentation ya AWS na ukakagua kila action documentation: - [**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` -Mshambuliaji mwenye ruhusa za **`states:TestState`** na **`iam:PassRole`** anaweza kujaribu state yoyote na kupitisha role yoyote ya IAM kwa state hiyo bila kuunda au kusasisha state machine iliyopo, jambo ambalo linaweza kumuwezesha kupata kwa njia isiyoidhinishwa huduma nyingine za AWS kwa kutumia ruhusa za role hizo. Kwa pamoja, ruhusa hizi zinaweza kusababisha vitendo vingi visivyoidhinishwa, kuanzia kubadilisha workflows au data, kuvujisha data, uharibifu wa rasilimali, hadi privilege escalation. +Mwanaoruaji mwenye ruhusa za **`states:TestState`** & **`iam:PassRole`** anaweza kujaribu state yoyote na kupitisha IAM role yoyote kwa state bila kuunda au kusasisha state machine iliyopo, jambo ambalo linaweza kuwezesha upatikanaji usioidhinishwa kwa huduma nyingine za AWS kwa kutumia ruhusa za role hizo. Pamoja, ruhusa hizi zinaweza kusababisha vitendo vingi visivyoidhinishwa, kuanzia kuathiri workflows au kubadilisha data hadi uvunjifu wa data, kuathiri rasilimali, na 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] ``` -Mifano ifuatayo inaonyesha jinsi ya kujaribu state inayounda access key kwa mtumiaji **`admin`** kwa kutumia ruhusa hizi na role yenye upole katika mazingira ya AWS. Role hii yenye upole inapaswa kuwa na sera yoyote yenye ruhusa za juu iliyohusishwa nayo (kwa mfano **`arn:aws:iam::aws:policy/AdministratorAccess`**) inayomruhusu state kutekeleza kitendo **`iam:CreateAccessKey`**: +Mifano ifuatayo inaonyesha jinsi ya kujaribu state inayounda ufunguo wa upatikanaji kwa mtumiaji **`admin`** kwa kutumia ruhusa hizi na role yenye kibali pana katika mazingira ya AWS. Role hii yenye kibali inapaswa kuwa na sera yoyote yenye idhini ya juu inayohusishwa nayo (kwa mfano **`arn:aws:iam::aws:policy/AdministratorAccess`**) ambayo inaruhusu state kufanya kitendo cha **`iam:CreateAccessKey`**: - **stateDefinition.json**: ```json @@ -42,7 +42,7 @@ Mifano ifuatayo inaonyesha jinsi ya kujaribu state inayounda access key kwa mtum "End": true } ``` -- **Amri** iliyotekelezwa kufanya privesc: +- **Amri** iliyotekelezwa kutekeleza privesc: ```bash aws stepfunctions test-state --definition file://stateDefinition.json --role-arn arn:aws:iam:::role/PermissiveRole @@ -59,23 +59,23 @@ aws stepfunctions test-state --definition file://stateDefinition.json --role-arn "status": "SUCCEEDED" } ``` -**Potential Impact**: Utekelezaji usioidhinishwa na kuchezea workflows na ufikiaji wa rasilimali nyeti, jambo ambalo linaweza kusababisha kuvunjwa kwa usalama kwa kiwango kikubwa. +**Athari Inayoweza Kutokea**: Utekelezaji usioidhinishwa na uendeshaji wa workflows na upatikanaji wa rasilimali nyeti, ambayo inaweza kusababisha uvunjaji mkubwa wa usalama. ### `states:CreateStateMachine` & `iam:PassRole` & (`states:StartExecution` | `states:StartSyncExecution`) -Mshambuliaji mwenye **`states:CreateStateMachine`**& **`iam:PassRole`** angeweza kuunda state machine na kuipatia yoyote IAM role, akiruhusu ufikiaji usioidhinishwa kwa huduma nyingine za AWS kwa kutumia permissions za role hizo. Ikilinganishwa na mbinu ya privesc iliyotangulia (**`states:TestState`** & **`iam:PassRole`**), hii haitekelezwi yenyewe; utahitaji pia kuwa na **`states:StartExecution`** au **`states:StartSyncExecution`** permissions (**`states:StartSyncExecution`** haipatikani kwa **standard workflows**, inapatikana tu kwa **express state machines**) ili kuanzisha execution kwenye state machine. +Mshambulizi mwenye **`states:CreateStateMachine`** & **`iam:PassRole`** ataweza kuunda state machine na kuiweka role yoyote ya IAM, kuruhusu upatikanaji usioidhinishwa kwa huduma nyingine za AWS kwa kutumia ruhusa za role hizo. Tofauti na mbinu ya privesc iliyotangulia (**`states:TestState`** & **`iam:PassRole`**), hii haitekelezi yenyewe; utahitaji pia ruhusa za **`states:StartExecution`** au **`states:StartSyncExecution`** ili kuanza utekelezaji wa state machine. (**`states:StartSyncExecution`** haipatikani kwa standard workflows, **ila kwa express state machines**). ```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 ] ``` -Mifano ifuatayo yanaonyesha jinsi ya kuunda state machine inayounda access key kwa mtumiaji **`admin`** na kuhamisha kitufe hiki cha ufikiaji kwa S3 bucket inayodhibitiwa na mshambuliaji, kwa kutumia ruhusa hizi na role yenye ruhusa nyingi katika mazingira ya AWS. Role hii inapaswa kuwa na sera yoyote ya zenye mamlaka ya juu iliyohusishwa nayo (kwa mfano **`arn:aws:iam::aws:policy/AdministratorAccess`**) ambayo inaruhusu state machine kutekeleza vitendo **`iam:CreateAccessKey`** na **`s3:putObject`**. +Mifano ifuatayo inaonyesha jinsi ya kuunda state machine ambayo inaunda access key kwa mtumiaji **`admin`** na kusafirisha access key hiyo kwa S3 bucket inayodhibitiwa na mshambuliaji, ikitumia ruhusa hizi na role isiyozuia ya mazingira ya AWS. Role hii isiyozuia inapaswa kuwa na sera yoyote ya kiwango cha juu inayohusiana nayo (kwa mfano **`arn:aws:iam::aws:policy/AdministratorAccess`**) inayomruhusu state machine kufanya vitendo vya **`iam:CreateAccessKey`** na **`s3:putObject`**. - **stateMachineDefinition.json**: ```json @@ -123,7 +123,7 @@ aws stepfunctions create-state-machine --name MaliciousStateMachine --definition "creationDate": "2024-07-09T20:29:35.381000+02:00" } ``` -- **Amri** iliyotekelezwa **kuanza utekelezaji** wa state machine iliyotengenezwa awali: +- **Amri** iliyotekelezwa ili **kuanza utekelezaji** wa state machine iliyotengenezwa hapo awali: ```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] -> S3 bucket inayodhibitiwa na mshambuliaji inapaswa kuwa na ruhusa za kukubali kitendo cha s3:PutObject kutoka kwa akaunti ya mwathirika. +> S3 bucket inayodhibitiwa na attacker inapaswa kuwa na ruhusa za kupokea s3:PutObject action kutoka kwa victim account. -**Athari Inayowezekana**: Utekelezaji usioidhinishwa na urekebishaji wa workflows na upatikanaji wa rasilimali nyeti, ambayo yanaweza kusababisha uvunjaji mkubwa wa usalama. +**Athari Inayowezekana**: Utekelezaji na uhariri wa bila idhini wa workflows na upatikanaji wa rasilimali nyeti, ambao unaweza kusababisha uvunjaji mkubwa wa usalama. -### `states:UpdateStateMachine` & (si kila wakati inahitajika) `iam:PassRole` +### `states:UpdateStateMachine` & (not always required) `iam:PassRole` -Mshambuliaji mwenye ruhusa ya **`states:UpdateStateMachine`** anaweza kubadilisha ufafanuzi wa state machine, akiwemo kuongeza states za kimya za ziada ambazo zinaweza kusababisha ongezeko la ruhusa. Kwa njia hiyo, wakati mtumiaji halali ataanzisha utekelezaji wa state machine, state mpya hasidi ya kimya itatekelezwa na ongezeko la ruhusa litafanikiwa. +Attacker mwenye ruhusa **`states:UpdateStateMachine`** angeweza kubadilisha ufafanuzi wa state machine, akiongeza states za siri ambazo zinaweza kusababisha privilege escalation. Kwa njia hii, wakati mtumiaji halali anapoanzisha utekelezaji wa state machine, state mpya ya uharibifu itatekelezwa na privilege escalation itafanikiwa. -Kulingana na kiwango cha ruhusa cha IAM Role iliyohusishwa na state machine, mshambuliaji atakutana na matukio mawili: +Kulingana na jinsi IAM Role inayohusishwa na state machine ilivyo na ruhusa, attacker atakumbana na hali 2: -1. **Permissive IAM Role**: Ikiwa IAM Role iliyohusishwa na state machine tayari ina ruhusa nyingi (kwa mfano ikiwa imeambatana na sera ya **`arn:aws:iam::aws:policy/AdministratorAccess`**), basi ruhusa ya **`iam:PassRole`** haitahitajika kwa kuongeza ruhusa kwa sababu haitakuwa muhimu kusasisha pia IAM Role; ufafanuzi wa state machine utakutosha. -2. **Not permissive IAM Role**: Tofauti na kesi ya awali, hapa mshambuliaji atahitaji pia ruhusa ya **`iam:PassRole`** kwa sababu itahitajika kuhusisha IAM Role yenye ruhusa zaidi na state machine pamoja na kubadilisha ufafanuzi wa state machine. +1. **Permissive IAM Role**: Ikiwa IAM Role inayohusishwa na state machine tayari ina ruhusa nyingi (kwa mfano ina polisi **`arn:aws:iam::aws:policy/AdministratorAccess`** imeambatishwa), basi ruhusa **`iam:PassRole`** haitahitajika kwa ajili ya privilege escalation kwa kuwa haitakuwa lazima kubadilisha IAM Role; ufafanuzi wa state machine utatosha. +2. **Not permissive IAM Role**: Tofauti na kesi ya awali, hapa attacker atahitaji pia ruhusa ya **`iam:PassRole`** kwa sababu itakuwa muhimu kuhusisha IAM Role yenye ruhusa nyingi na state machine pamoja na kubadilisha ufafanuzi wa state machine. ```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 ] ``` -Mifano ifuatayo inaonyesha jinsi ya kusasisha state machine halali ambayo inaita tu HelloWorld Lambda function, ili kuongeza state ya ziada inayemwongeza mtumiaji **`unprivilegedUser`** kwenye IAM Group ya **`administrator`**. Kwa njia hii, wakati mtumiaji halali atapoanza utekelezaji wa state machine iliyosasishwa, state mpya hii ya kibaya iliyojificha itatekelezwa na kupandisha hadhi kutafanikiwa. +Mifano ifuatayo inaonyesha jinsi ya kusasisha state machine halali ambayo inaitisha tu HelloWorld Lambda function, ili kuongeza state ya ziada ambayo inaongeza mtumiaji **`unprivilegedUser`** kwenye **`administrator`** IAM Group. Kwa njia hii, wakati mtumiaji halali anapoanza utekelezaji wa state machine iliyosasishwa, state mpya ya uharibifu iliyofichika itatekelezwa na kuongezeka kwa ruhusa kutafanikiwa. > [!WARNING] -> Ikiwa state machine haina IAM Role inayoruhusu iliyohusishwa, pia itahitajika ruhusa ya **`iam:PassRole`** ili kusasisha IAM Role ili kuhusisha IAM Role inayoruhusu (kwa mfano ile yenye sera **`arn:aws:iam::aws:policy/AdministratorAccess`** imeambatishwa). +> Iwapo state machine haina IAM Role yenye ruhusa pana iliyohusishwa, pia itahitajika ruhusa ya **`iam:PassRole`** ili kusasisha IAM Role ili kuhusisha IAM Role yenye ruhusa pana (kwa mfano moja yenye sera **`arn:aws:iam::aws:policy/AdministratorAccess`** imeambatishwa). {{#tabs }} {{#tab name="Legit State Machine" }} @@ -226,6 +226,6 @@ aws stepfunctions update-state-machine --state-machine-arn arn:aws:states:us-eas "revisionId": "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f" } ``` -**Athari Inazoweza Kutokea**: Utekelezaji usioidhinishwa na uendeshaji/kuvuruga taratibu za kazi na upatikanaji wa rasilimali nyeti, jambo ambalo linaweza kusababisha uvunjaji mkubwa wa usalama. +**Athari Inayowezekana**: Utekelezaji usioidhinishwa na kuingilia au kuendesha workflows na upatikanaji wa rasilimali nyeti, linaloweza kusababisha uvunjaji mkubwa wa usalama. {{#include ../../../../banners/hacktricks-training.md}}