AWS - Codepipeline Privesc
Reading time: 3 minutes
tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
codepipeline
Para mais informações sobre codepipeline veja:
AWS - DataPipeline, CodePipeline & CodeCommit Enum
iam:PassRole, codepipeline:CreatePipeline, codebuild:CreateProject, codepipeline:StartPipelineExecution
Ao criar um code pipeline você pode indicar uma codepipeline IAM Role para executar, portanto você poderia comprometer essa role.
Além das permissões anteriores, você precisaria de acesso ao local onde o código é armazenado (S3, ECR, github, bitbucket...)
Eu testei isso fazendo o processo pela interface web. As permissões indicadas anteriormente não são as List/Get necessárias para criar um codepipeline, mas para criá-lo na web você também precisará de: codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:<several>
Durante a criação do projeto de build você pode indicar um comando a ser executado (rev shell?) e executar a fase de build como usuário privilegiado, essa é a configuração que o atacante precisa comprometer:
.png)
.png)
?codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution
Pode ser possível modificar a role usada e o comando executado em um codepipeline com as permissões anteriores.
codepipeline:pollforjobs
Quando essa API é chamada, o CodePipeline retorna credenciais temporárias para o S3 bucket usado para armazenar artefatos para o pipeline, se a ação requerer acesso a esse S3 bucket para artefatos de entrada ou saída. Essa API também retorna quaisquer valores secretos definidos para a ação.
tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
HackTricks Cloud