# AWS - Codepipeline Privesc {{#include ../../../banners/hacktricks-training.md}} ## codepipeline Per ulteriori informazioni su codepipeline controlla: {{#ref}} ../aws-services/aws-datapipeline-codepipeline-codebuild-and-codecommit.md {{#endref}} ### `iam:PassRole`, `codepipeline:CreatePipeline`, `codebuild:CreateProject, codepipeline:StartPipelineExecution` Quando crei una pipeline di codice puoi indicare un **ruolo IAM di codepipeline da eseguire**, quindi potresti comprometterli. Oltre ai permessi precedenti avresti bisogno di **accesso al luogo dove è memorizzato il codice** (S3, ECR, github, bitbucket...) Ho testato questo eseguendo il processo nella pagina web, i permessi indicati precedentemente non sono quelli di List/Get necessari per creare una codepipeline, ma per crearla nel web avrai anche bisogno di: `codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:` Durante la **creazione del progetto di build** puoi indicare un **comando da eseguire** (rev shell?) e far eseguire la fase di build come **utente privilegiato**, questa è la configurazione di cui l'attaccante ha bisogno per compromettere: ![](<../../../images/image (276).png>) ![](<../../../images/image (181).png>) ### ?`codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution` Potrebbe essere possibile modificare il ruolo utilizzato e il comando eseguito su una codepipeline con i permessi precedenti. ### `codepipeline:pollforjobs` [AWS menziona](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PollForJobs.html): > Quando questa API viene chiamata, CodePipeline **restituisce credenziali temporanee per il bucket S3** utilizzato per memorizzare gli artefatti per la pipeline, se l'azione richiede accesso a quel bucket S3 per artefatti di input o output. Questa API **restituisce anche eventuali valori segreti definiti per l'azione**. {{#include ../../../banners/hacktricks-training.md}}