AWS - EventBridge Scheduler Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (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 or scheduler:UpdateSchedule
권한을 가진 사용자는 EventBridge Scheduler를 활용하여 더 높은 권한을 가진 역할을 사용하여 서비스를 호출함으로써 권한을 상승시킬 수 있습니다.
이러한 권한을 통해 공격자는 권한이 상승된 역할을 가정하고, 일정을 생성하거나 업데이트할 때 그 역할을 EventBridge Scheduler에 전달할 수 있습니다. 일정은 이전에 나열된 작업 중 어떤 것이든 수행하도록 구성할 수 있으며, Lambda 함수를 호출하거나, ECS 작업을 시작하거나, CodePipeline 실행을 트리거하거나, EventBridge Scheduler에서 지원하는 270개의 AWS 서비스의 어떤 작업이든 수행할 수 있습니다. 이러한 작업을 예약함으로써 공격자는 더 높은 권한을 남용하여 AWS 서비스 전반에 걸쳐 무단 작업을 수행할 수 있습니다. \
예를 들어, 그들은 일정을 구성하여 템플릿 작업인 Lambda 함수를 호출할 수 있습니다:
EventBridge Scheduler에서 템플릿 서비스 작업 외에도 다양한 AWS 서비스에 대한 광범위한 API 작업을 호출하기 위해 유니버설 대상을 사용할 수 있습니다. 유니버설 대상은 거의 모든 API를 호출할 수 있는 유연성을 제공합니다. 한 가지 예는 "putRolePolicy" 정책이 있는 역할을 사용하여 "AdminAccessPolicy"를 추가하는 유니버설 대상을 사용하는 것입니다:
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)