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

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:

?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

AWS mentions:

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