AWS - Codepipeline Privesc
Last updated
Last updated
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
有关 codepipeline 的更多信息,请查看:
AWS - DataPipeline, CodePipeline & CodeCommit Enumiam: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
当调用此 API 时,CodePipeline 返回用于存储管道工件的 S3 存储桶的临时凭证,如果该操作需要访问该 S3 存储桶以获取输入或输出工件。此 API 还 返回为该操作定义的任何秘密值。
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)