AWS - Codepipeline Privesc
Tip
学习并练习 AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
codepipeline
有关 codepipeline 的更多信息,请参阅:
AWS - DataPipeline, CodePipeline & CodeCommit Enum
iam:PassRole, codepipeline:CreatePipeline, codebuild:CreateProject, codepipeline:StartPipelineExecution
创建 codepipeline 时,可以指定一个用于运行的 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>
在创建 build project 期间,你可以指定一个要执行的 command(rev shell?),并将 build 阶段设置为以 特权用户 运行;这就是攻击者用来妥协的配置:
.png)
.png)
?codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution
使用上述权限,可能可以修改 codepipeline 所使用的角色和执行的命令。
codepipeline:pollforjobs
当调用此 API 时,如果该 action 需要访问用于存储管道工件的 S3 bucket 以获取输入或输出工件,CodePipeline 会返回该 S3 bucket 的临时凭证。该 API 还会 返回为该 action 定义的任何 secret 值。
Tip
学习并练习 AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
HackTricks Cloud

