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:<several>

ビルドプロジェクトの作成中に、実行するコマンド(rev shell?)を指定し、ビルドフェーズを特権ユーザーとして実行することができます。これが攻撃者が妥協するために必要な設定です:

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

前述の権限を使用して、コードパイプラインで使用されるロールや実行されるコマンドを変更することが可能かもしれません。

codepipeline:pollforjobs

AWSは次のように述べています

このAPIが呼び出されると、CodePipelineはパイプラインのアーティファクトを保存するために使用されるS3バケットの一時的な資格情報を返します。アクションがそのS3バケットへの入力または出力アーティファクトへのアクセスを必要とする場合です。このAPIはまた、アクションのために定義された任意の秘密の値も返します。

HackTricksをサポートする

Last updated