AWS - Codepipeline Privesc

支持 HackTricks

codepipeline

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

AWS - DataPipeline, CodePipeline & CodeCommit Enum

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

在创建代码管道时,您可以指定一个 codepipeline IAM 角色来运行,因此您可以妥协它们。

除了之前的权限,您还需要 访问存储代码的位置(S3、ECR、github、bitbucket...)

我在网页上测试了这个过程,之前提到的权限不是创建代码管道所需的 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:pollforjobs

AWS 提到

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

支持 HackTricks

Last updated