AWS - Codepipeline Privesc
codepipeline
Kwa maelezo zaidi kuhusu codepipeline angalia:
AWS - DataPipeline, CodePipeline & CodeCommit Enumiam:PassRole
, codepipeline:CreatePipeline
, codebuild:CreateProject, codepipeline:StartPipelineExecution
iam:PassRole
, codepipeline:CreatePipeline
, codebuild:CreateProject, codepipeline:StartPipelineExecution
Wakati wa kuunda code pipeline unaweza kuonyesha codepipeline IAM Role ya kuendesha, kwa hivyo unaweza kuathiri.
Mbali na ruhusa zilizotajwa hapo awali utahitaji upatikanaji wa mahali ambapo msimbo umehifadhiwa (S3, ECR, github, bitbucket...)
Nilijaribu hii kwa kufanya mchakato kwenye ukurasa wa wavuti, ruhusa zilizotajwa hapo awali sio zile za List/Get zinazohitajika kuunda codepipeline, lakini kwa kuunda kwenye wavuti pia utahitaji: codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:<several>
Wakati wa kuunda mradi wa kujenga unaweza kuonyesha amri ya kuendesha (rev shell?) na kuendesha awamu ya kujenga kama mtumiaji mwenye ruhusa, hiyo ndiyo usanidi ambao mshambuliaji anahitaji kuathiri:
?codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution
codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution
Inawezekana kubadilisha jukumu linalotumiwa na amri inayotekelezwa kwenye codepipeline kwa ruhusa zilizotajwa hapo awali.
codepipeline:pollforjobs
codepipeline:pollforjobs
Wakati API hii inaitwa, CodePipeline inarudisha hati za muda kwa S3 bucket inayotumika kuhifadhi mabaki ya pipeline, ikiwa hatua inahitaji upatikanaji wa S3 bucket kwa mabaki ya pembejeo au pato. API hii pia inarudisha maadili yoyote ya siri yaliyofafanuliwa kwa hatua hiyo.
Last updated