AWS - EMR Privesc

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

EMR

Weitere Informationen zu EMR unter:

pageAWS - EMR Enum

iam:PassRole, elasticmapreduce:RunJobFlow

Ein Angreifer mit diesen Berechtigungen kann einen neuen EMR-Cluster ausführen, der EC2-Rollen anhängt, und versuchen, deren Anmeldeinformationen zu stehlen. Beachten Sie, dass Sie hierfür einen SSH-Privatkey kennen müssen, der im Konto importiert ist, oder einen importieren müssen, und in der Lage sein müssen, Port 22 im Masterknoten zu öffnen (dies könnte mit den Attributen EmrManagedMasterSecurityGroup und/oder ServiceAccessSecurityGroup innerhalb von --ec2-attributes möglich sein).

# 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

Hinweis, 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 über SSH eine Verbindung herstellen), nicht jedoch der EMR-IAM-Rolle.

Potenzielle Auswirkungen: Privilege Escalation zur spezifizierten EC2-Service-Rolle.

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

Mit diesen Berechtigungen kann ein Angreifer zur AWS-Konsole gehen, ein Notizbuch erstellen und darauf zugreifen, um die IAM-Rolle zu stehlen.

Auch wenn Sie eine IAM-Rolle an die Notizbuchinstanz anhängen, habe ich in meinen Tests festgestellt, dass ich in der Lage war, AWS-Verwaltungsanmeldeinformationen zu stehlen und nicht Anmeldeinformationen, die sich auf die IAM-Rolle beziehen.

Potenzielle Auswirkungen: Privilege Escalation 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 damit verbundene IAM-Rolle stehlen. Die URL des Notizbuchs lautet https://<notebook-id>.emrnotebooks-prod.eu-west-1.amazonaws.com/<notebook-id>/lab/

Auch wenn Sie eine IAM-Rolle an die Notizbuchinstanz anhängen, habe ich in meinen Tests festgestellt, dass ich in der Lage war, AWS-Verwaltungsanmeldeinformationen zu stehlen und nicht Anmeldeinformationen, die sich auf die IAM-Rolle beziehen`.

Potenzielle Auswirkungen: Privilege Escalation zur AWS-verwalteten Rolle arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated