AWS - Codepipeline Privesc

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

codepipeline

Para mais informações sobre o codepipeline, consulte:

pageAWS - DataPipeline, CodePipeline & CodeCommit Enum

iam:PassRole, codepipeline:CreatePipeline, codebuild:CreateProject, codepipeline:StartPipelineExecution

Ao criar um pipeline de código, você pode indicar um Papel IAM 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...)

Testei isso fazendo o processo na página da web, as permissões indicadas anteriormente não são as de 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 para executar (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 o papel usado e o comando executado em um codepipeline com as permissões anteriores.

codepipeline:pollforjobs

AWS menciona:

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 exigir 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.

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Última actualización