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 controlla:

AWS - DataPipeline, CodePipeline & CodeCommit Enum

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

Quando crei una code pipeline puoi indicare un ruolo IAM di codepipeline da eseguire, quindi potresti comprometterli.

Oltre ai permessi precedenti avresti bisogno di accesso al luogo dove il codice è memorizzato (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:<several>

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:

?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:

Quando questa API viene chiamata, CodePipeline restituisce credenziali temporanee per il bucket S3 utilizzato per memorizzare 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.

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