AWS - Codepipeline Privesc

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

codepipeline

For more info about codepipeline check:

AWS - DataPipeline, CodePipeline & CodeCommit Enum

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

Al crear una code pipeline puedes indicar un codepipeline IAM Role to run, por lo tanto podrías comprometerlos.

Además de los permisos anteriores necesitarías acceso al lugar donde se almacena el código (S3, ECR, github, bitbucket…)

Probé esto haciendo el proceso en la página web; los permisos indicados previamente son los que no son de tipo List/Get necesarios para crear un codepipeline, pero para crearlo en la web también necesitarás: codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:<several>

Durante la creación del build project puedes indicar un command to run (rev shell?) y ejecutar la fase de build como privileged user, esa es la configuración que el atacante necesita para comprometerlo:

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

Podría ser posible modificar el role usado y el command ejecutado en un codepipeline con los permisos anteriores.

codepipeline:pollforjobs

AWS mentions:

When this API is called, CodePipeline returns temporary credentials for the S3 bucket used to store artifacts for the pipeline, if the action requires access to that S3 bucket for input or output artifacts. This API also returns any secret values defined for the action.

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks