AWS - Codepipeline Privesc

HackTricks 지원하기

codepipeline

codepipeline에 대한 더 많은 정보는 다음을 확인하세요:

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

코드 파이프라인을 생성할 때 실행할 codepipeline IAM 역할을 지정할 수 있으므로, 이를 통해 권한을 탈취할 수 있습니다.

이전 권한 외에도 코드가 저장된 위치에 대한 접근 권한이 필요합니다 (S3, ECR, github, bitbucket...)

웹 페이지에서 이 과정을 테스트했으며, 이전에 언급한 권한은 코드파이프라인을 생성하는 데 필요한 List/Get 권한이 아니지만, 웹에서 생성하려면 다음도 필요합니다: codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:<여러>

빌드 프로젝트 생성 중실행할 명령(rev shell?)을 지정하고 특권 사용자로 빌드 단계를 실행할 수 있습니다. 이는 공격자가 탈취하는 데 필요한 구성입니다:

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

이전 권한으로 코드파이프라인에서 사용되는 역할과 실행되는 명령을 수정할 수 있을 가능성이 있습니다.

codepipeline:pollforjobs

AWS는 다음과 같이 언급합니다:

이 API가 호출되면, CodePipeline은 파이프라인의 아티팩트를 저장하는 S3 버킷에 대한 임시 자격 증명을 반환합니다. 이 작업이 입력 또는 출력 아티팩트에 대해 해당 S3 버킷에 대한 접근을 요구하는 경우입니다. 이 API는 또한 작업에 대해 정의된 모든 비밀 값을 반환합니다.

HackTricks 지원하기

Last updated