AWS - Codepipeline Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Для отримання додаткової інформації про codepipeline перевірте:
iam:PassRole
, codepipeline:CreatePipeline
, codebuild:CreateProject, codepipeline:StartPipelineExecution
При створенні code pipeline ви можете вказати IAM роль codepipeline для виконання, тому ви могли б їх скомпрометувати.
Окрім попередніх дозволів, вам знадобиться доступ до місця, де зберігається код (S3, ECR, github, bitbucket...)
Я протестував це, виконуючи процес на веб-сторінці, дозволи, зазначені раніше, не є List/Get, які потрібні для створення codepipeline, але для створення його в вебі вам також знадобляться: 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
Можливо, можна змінити роль, що використовується, і команду, що виконується на codepipeline, з попередніми дозволами.
codepipeline:pollforjobs
Коли цей API викликається, CodePipeline повертає тимчасові облікові дані для S3 бакету, що використовується для зберігання артефактів для pipeline, якщо дія вимагає доступу до цього S3 бакету для вхідних або вихідних артефактів. Цей API також повертає будь-які секретні значення, визначені для дії.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)