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, consulte:
AWS - DataPipeline, CodePipeline & CodeCommit Enum
iam:PassRole
, codepipeline:CreatePipeline
, codebuild:CreateProject, codepipeline:StartPipelineExecution
Ao criar um code pipeline, você pode indicar um IAM Role do codepipeline para executar, portanto, você poderia comprometê-los.
Além das permissões anteriores, você precisaria de acesso ao local onde o código está armazenado (S3, ECR, github, bitbucket...)
Eu testei isso fazendo o processo na página da 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:<vários>
Durante a criação do projeto de build, você pode indicar um comando para executar (rev shell?) e executar a fase de build como usuário privilegiado, essa é a configuração que o atacante precisa para comprometer:
?codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution
Pode ser possível modificar o papel usado e o comando executado em um codepipeline com as permissões anteriores.
codepipeline:pollforjobs
Quando esta API é chamada, o CodePipeline retorna credenciais temporárias para o bucket S3 usado para armazenar artefatos para o pipeline, se a ação requer acesso a esse bucket S3 para artefatos de entrada ou saída. Esta 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.