AWS - Codepipeline Privesc

支持 HackTricks

codepipeline

有关 codepipeline 的更多信息,请查看:

AWS - DataPipeline, CodePipeline & CodeCommit Enum

iam:PassRole, codepipeline:CreatePipeline, codebuild:CreateProject, codepipeline:StartPipelineExecution

创建 code pipeline 时,你可以指定一个 codepipeline IAM Role 来运行,因此你可以利用它们。

除了之前的权限,你还需要 访问存储代码的地方(S3, ECR, github, bitbucket...)

我在网页上测试了这个过程,之前提到的权限不是创建 codepipeline 所需的 List/Get 权限,但在网页上创建时你还需要:codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:<several>

创建构建项目 期间,你可以指定一个 要运行的命令(反向 shell?)并以 特权用户 运行构建阶段,这是攻击者需要利用的配置:

?codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution

可能可以使用之前的权限修改 codepipeline 中使用的角色和执行的命令。

codepipeline:pollforjobs

AWS 提到:

当调用此 API 时,CodePipeline 返回用于存储管道工件的 S3 存储桶的临时凭证,如果操作需要访问该 S3 存储桶以获取输入或输出工件。此 API 还 返回为操作定义的任何秘密值

支持 HackTricks

Last updated