AWS - Codepipeline Privesc

Impara l'hacking AWS da zero a esperto con htARTE (Esperto Red Team di HackTricks AWS)!

Altri modi per supportare HackTricks:

codepipeline

Per ulteriori informazioni su codepipeline, controlla:

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

Quando si crea un code pipeline, è possibile indicare un Ruolo IAM di codepipeline da eseguire, quindi potresti comprometterli.

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

Ho testato questo processo sulla pagina web, le autorizzazioni indicate precedentemente non sono quelle di List/Get necessarie per creare un codepipeline, ma per crearlo nel web avrai bisogno anche 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 è possibile indicare un comando da eseguire (rev shell?) e 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 un codepipeline con le autorizzazioni precedenti.

codepipeline:pollforjobs

AWS menziona:

Quando viene chiamata questa API, CodePipeline restituisce credenziali temporanee per il bucket S3 utilizzato per memorizzare gli artefatti per il pipeline, se l'azione richiede l'accesso a tale bucket S3 per artefatti di input o output. Questa API restituisce anche qualsiasi valore segreto definito per l'azione.

Impara l'hacking AWS da zero a esperto con htARTE (Esperto Red Team di HackTricks AWS)!

Altri modi per supportare HackTricks:

Last updated