AWS - EMR Privesc
Reading time: 4 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
EMR
Mehr Info über EMR in:
iam:PassRole
, elasticmapreduce:RunJobFlow
Ein Angreifer mit diesen Berechtigungen kann ein neues EMR-Cluster erstellen, indem er EC2-Rollen anfügt und versuchen, dessen Anmeldeinformationen zu stehlen.
Beachten Sie, dass Sie dazu einige SSH-Privatschlüssel, die im Konto importiert wurden, kennen oder einen importieren müssen und in der Lage sein müssen, Port 22 im Master-Knoten zu öffnen (Sie könnten dies mit den Attributen EmrManagedMasterSecurityGroup
und/oder ServiceAccessSecurityGroup
innerhalb von --ec2-attributes
tun).
# 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
Beachten Sie, wie eine EMR-Rolle in --service-role
und eine EC2-Rolle in --ec2-attributes
innerhalb von InstanceProfile
angegeben ist. Diese Technik ermöglicht jedoch nur das Stehlen der EC2-Rollenanmeldeinformationen (da Sie sich über SSH verbinden), jedoch nicht der EMR IAM-Rolle.
Potenzielle Auswirkungen: Privesc zur angegebenen EC2-Dienstrolle.
elasticmapreduce:CreateEditor
, iam:ListRoles
, elasticmapreduce:ListClusters
, iam:PassRole
, elasticmapreduce:DescribeEditor
, elasticmapreduce:OpenEditorInConsole
Mit diesen Berechtigungen kann ein Angreifer zur AWS-Konsole gehen, ein Notebook erstellen und darauf zugreifen, um die IAM-Rolle zu stehlen.
caution
Selbst wenn Sie einer Notebook-Instanz in meinen Tests eine IAM-Rolle zuweisen, habe ich festgestellt, dass ich in der Lage war, AWS-verwaltete Anmeldeinformationen zu stehlen und nicht die Anmeldeinformationen, die mit der IAM-Rolle verbunden sind.
Potenzielle Auswirkungen: Privesc zur AWS-verwalteten Rolle arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile
elasticmapreduce:OpenEditorInConsole
Nur mit dieser Berechtigung kann ein Angreifer auf das Jupyter Notebook zugreifen und die IAM-Rolle stehlen, die damit verbunden ist.
Die URL des Notebooks lautet https://<notebook-id>.emrnotebooks-prod.eu-west-1.amazonaws.com/<notebook-id>/lab/
caution
Selbst wenn Sie einer Notebook-Instanz in meinen Tests eine IAM-Rolle zuweisen, habe ich festgestellt, dass ich in der Lage war, AWS-verwaltete Anmeldeinformationen zu stehlen und nicht die Anmeldeinformationen, die mit der IAM-Rolle verbunden sind.
Potenzielle Auswirkungen: Privesc zur AWS-verwalteten Rolle arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.