AWS - Codepipeline Privesc
codepipeline
Для отримання додаткової інформації про codepipeline перегляньте:
AWS - DataPipeline, CodePipeline & CodeCommit Enumiam:PassRole
, codepipeline:CreatePipeline
, codebuild:CreateProject, codepipeline:StartPipelineExecution
iam:PassRole
, codepipeline:CreatePipeline
, codebuild:CreateProject, codepipeline:StartPipelineExecution
Під час створення конвеєра коду ви можете вказати роль IAM конвеєра коду, тому ви можете скомпрометувати їх.
Крім попередніх дозволів вам знадобиться доступ до місця, де зберігається код (S3, ECR, github, bitbucket...)
Я тестував це, виконуючи процес на веб-сторінці, дозволи, зазначені раніше, не є необхідними для створення конвеєра коду, але для створення його на веб-сторінці вам також знадобиться: codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:<several>
Під час створення проекту збірки ви можете вказати команду для виконання (rev shell?) та виконати фазу збірки як привілейований користувач, це конфігурація, яку потрібно скомпрометувати зловмиснику:
?codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution
codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution
Можливо, з попередніми дозволами можна змінити використану роль та виконану команду на конвеєрі коду.
codepipeline:pollforjobs
codepipeline:pollforjobs
Коли викликається цей API, CodePipeline повертає тимчасові облікові дані для віджику S3, використаного для зберігання артефактів для конвеєра, якщо дія вимагає доступу до цього віджику S3 для вхідних або вихідних артефактів. Цей API також повертає будь-які секретні значення, визначені для дії.
Last updated