AWS - EMR Privesc

Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

EMR

Περισσότερες πληροφορίες σχετικά με το EMR στο:

AWS - EMR Enum

iam:PassRole, elasticmapreduce:RunJobFlow

Ένας επιτιθέμενος με αυτές τις άδειες μπορεί να εκτελέσει ένα νέο cluster EMR επισυνάπτοντας ρόλους EC2 και να προσπαθήσει να κλέψει τα διαπιστευτήριά του. Σημειώστε ότι για να το κάνετε αυτό θα χρειαστεί να γνωρίζετε κάποιο ιδιωτικό κλειδί ssh που έχει εισαχθεί στο λογαριασμό ή να εισαγάγετε ένα, και να είστε σε θέση να ανοίξετε τη θύρα 22 στον κύριο κόμβο (μπορείτε να το κάνετε αυτό με τα χαρακτηριστικά 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 καθορίζεται στο --service-role και ένας ρόλος ec2 καθορίζεται στο --ec2-attributes μέσα στο InstanceProfile. Ωστόσο, αυτή η τεχνική επιτρέπει μόνο την κλοπή των διαπιστευτηρίων του ρόλου EC2 (καθώς θα συνδεθείτε μέσω ssh) και όχι του IAM ρόλου του EMR.

Πιθανές Επιπτώσεις: Ανέβασμα στον ρόλο υπηρεσίας EC2 που καθορίζεται.

elasticmapreduce:CreateEditor, iam:ListRoles, elasticmapreduce:ListClusters, iam:PassRole, elasticmapreduce:DescribeEditor, elasticmapreduce:OpenEditorInConsole

Με αυτές τις άδειες, ένας επιτιθέμενος μπορεί να μεταβεί στο AWS console, να δημιουργήσει ένα Notebook και να έχει πρόσβαση σε αυτό για να κλέψει τον IAM ρόλο.

Ακόμα κι αν επισυνάψετε έναν IAM ρόλο στην περίπτωση του notebook στις δοκιμές μου παρατήρησα ότι μπορούσα να κλέψω διαχειριζόμενα διαπιστευτήρια AWS και όχι διαπιστευτήρια που σχετίζονται με τον σχετικό ρόλο IAM.

Πιθανές Επιπτώσεις: Ανέβασμα στον διαχειριζόμενο ρόλο AWS arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile

elasticmapreduce:OpenEditorInConsole

Μόνο με αυτήν την άδεια, ένας επιτιθέμενος θα μπορεί να έχει πρόσβαση στο Jupyter Notebook και να κλέψει τον IAM ρόλο που του αντιστοιχεί. Η διεύθυνση URL του notebook είναι https://<notebook-id>.emrnotebooks-prod.eu-west-1.amazonaws.com/<notebook-id>/lab/

Ακόμα κι αν επισυνάψετε έναν IAM ρόλο στην περίπτωση του notebook στις δοκιμές μου παρατήρησα ότι μπορούσα να κλέψω διαχειριζόμενα διαπιστευτήρια AWS και όχι διαπιστευτήρια που σχετίζονται με τον σχετικό ρόλο IAM`.

Πιθανές Επιπτώσεις: Ανέβασμα στον διαχειριζόμενο ρόλο AWS arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile

Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated