AWS - EventBridge Scheduler Privesc
Last updated
Last updated
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
EventBridge Scheduler 可以通过调度对各种 AWS 服务的调用来进行权限提升。通过利用其按计划调用服务的能力,具有足够权限的用户可以提升权限。以下是 EventBridge Scheduler 可以使用模板目标触发的一些关键操作:
Lambda: lambda:InvokeFunction - 按计划调用 Lambda 函数。
CodeBuild: codebuild:StartBuild - 启动 AWS CodeBuild 项目。
CodePipeline: codepipeline:StartPipelineExecution - 触发 AWS CodePipeline 执行。
ECS: ecs:RunTask - 运行 ECS 任务。
EventBridge: events:PutEvents - 将事件放入 EventBridge。
Inspector: inspector:StartAssessmentRun - 启动 Amazon Inspector 评估。
Kinesis: kinesis:PutRecord - 将记录放入 Kinesis 流。
Firehose: firehose:PutRecord - 将记录放入 Firehose 交付流。
SageMaker: sagemaker:StartPipelineExecution - 启动 SageMaker 管道执行。
SNS: sns:Publish - 向 SNS 主题发布消息。
SQS: sqs:SendMessage - 向 SQS 队列发送消息。
Step Functions: states:StartExecution - 启动 AWS Step Functions 的执行。
这些只是 EventBridge Scheduler 可以执行的一些模板操作。然而,通过使用通用目标,可以调用许多其他 AWS 服务的操作。通用目标允许进行超出模板列表的更广泛的 API 操作。
有关 EventBridge Scheduler 的更多信息,请参见:
iam:PassRole
, (scheduler:CreateSchedule
| scheduler:UpdateSchedule
)具有 sts:AssumeRole
、iam:PassRole
和 scheduler:CreateSchedule 或 scheduler:UpdateSchedule
权限的用户可以通过利用 EventBridge Scheduler 调用使用更高权限角色的服务来提升权限。
拥有这些权限,攻击者可以假设一个具有更高权限的角色,并在创建或更新计划时将该角色传递给 EventBridge Scheduler。该计划可以配置为执行之前列出的任何操作,例如调用 Lambda 函数、启动 ECS 任务、触发 CodePipeline 执行或 EventBridge Scheduler 支持的 270 个 AWS 服务的任何操作。通过调度这些操作,攻击者可以滥用更高的权限在 AWS 服务中执行未经授权的操作。 \
例如,他们可以配置计划以调用一个 Lambda 函数,这是一个模板操作:
除了模板化的服务操作,您可以在 EventBridge Scheduler 中使用通用目标来调用许多 AWS 服务的广泛 API 操作。通用目标提供了灵活性,可以调用几乎任何 API。一个例子是使用通用目标添加 "AdminAccessPolicy",使用具有 "putRolePolicy" 策略的角色:
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)