AWS - Codepipeline Privesc
Last updated
Last updated
Vir meer inligting oor codepipeline kyk:
AWS - DataPipeline, CodePipeline & CodeCommit Enumiam:PassRole
, codepipeline:CreatePipeline
, codebuild:CreateProject, codepipeline:StartPipelineExecution
Wanneer jy 'n kodepyplyn skep, kan jy 'n codepipeline IAM Rol om uit te voer aandui, dus kan jy hulle kompromitteer.
Afgesien van die vorige toestemmings, sal jy toegang tot die plek waar die kode gestoor word nodig hê (S3, ECR, github, bitbucket...)
Ek het dit getoets deur die proses op die webwerf te doen, die toestemmings wat voorheen aangedui is, is nie die Lys/Kry eenhede wat nodig is om 'n kodepyplyn te skep nie, maar om dit op die web te skep, sal jy ook nodig hê: codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:<several>
Tydens die skepping van die bouprojek kan jy 'n bevel om uit te voer (rev shell?) aandui en die boufase as bevoorregte gebruiker uitvoer, dit is die konfigurasie wat die aanvaller nodig het om te kompromitteer:
codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution
Dit mag moontlik wees om die rol wat gebruik word en die bevel wat op 'n kodepyplyn uitgevoer word, te wysig met die vorige toestemmings.
codepipeline:pollforjobs
Wanneer hierdie API geroep word, gee CodePipeline tydelike geloofsbriewe vir die S3-emmer wat gebruik word om artefakte vir die pyplyn te stoor, as die aksie toegang tot daardie S3-emmer vir inset- of uitvoerartefakte benodig. Hierdie API gee ook enige geheime waardes wat vir die aksie gedefinieer is terug.