AWS - Codepipeline Privesc

Reading time: 3 minutes

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

codepipeline

Per ulteriori informazioni su codepipeline consulta:

AWS - DataPipeline, CodePipeline & CodeCommit Enum

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

Quando crei una code pipeline puoi indicare un codepipeline IAM Role da utilizzare, quindi potresti comprometterlo.

Oltre alle autorizzazioni precedenti avresti bisogno di accesso al luogo dove il codice è memorizzato (S3, ECR, github, bitbucket...)

Ho testato questo eseguendo il processo nella pagina web; le autorizzazioni indicate precedentemente sono quelle non di tipo List/Get necessarie per creare una codepipeline, ma per crearla via web avrai anche bisogno di: codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:<several>

Durante la creazione del build project puoi indicare un comando da eseguire (rev shell?) e far eseguire la fase di build come privileged user; questa è la configurazione che l'attaccante cerca per compromettere:

?codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution

Potrebbe essere possibile modificare il ruolo usato e il comando eseguito su una codepipeline con le autorizzazioni precedenti.

codepipeline:pollforjobs

AWS mentions:

Quando questa API viene chiamata, CodePipeline restituisce credenziali temporanee per il bucket S3 usato per memorizzare gli artifact per la pipeline, se l'azione richiede accesso a quel bucket S3 per artifact di input o output. Questa API restituisce anche eventuali valori segreti definiti per l'azione.

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks