AWS - Codepipeline Privesc
Last updated
Last updated
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
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
このAPIが呼び出されると、CodePipelineはパイプラインのアーティファクトを保存するために使用されるS3バケットの一時的な資格情報を返します。アクションがそのS3バケットへの入力または出力アーティファクトへのアクセスを必要とする場合です。このAPIはまた、アクションのために定義された任意の秘密の値も返します。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)