AWS - EMR Privesc

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

EMR

Mais informações sobre o EMR em:

pageAWS - EMR Enum

iam:PassRole, elasticmapreduce:RunJobFlow

Um atacante com essas permissões pode executar um novo cluster EMR anexando funções EC2 e tentar roubar suas credenciais. Observe que, para fazer isso, você precisaria conhecer alguma chave privada ssh importada na conta ou importar uma e ser capaz de abrir a porta 22 no nó mestre (você pode ser capaz de fazer isso com os atributos EmrManagedMasterSecurityGroup e/ou ServiceAccessSecurityGroup dentro de --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

Observe como uma função EMR é especificada em --service-role e uma função ec2 é especificada em --ec2-attributes dentro de InstanceProfile. No entanto, essa técnica só permite roubar as credenciais da função EC2 (pois você se conectará via ssh) e não a função IAM do EMR.

Impacto Potencial: Escalação de privilégios para a função de serviço EC2 especificada.

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

Com essas permissões, um atacante pode acessar o console da AWS, criar um Notebook e acessá-lo para roubar a Função IAM.

Mesmo se você anexar uma função IAM à instância do notebook, nos meus testes, notei que consegui roubar credenciais gerenciadas pela AWS e não credenciais relacionadas à função IAM.

Impacto Potencial: Escalação de privilégios para a função gerenciada pela AWS arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile

elasticmapreduce:OpenEditorInConsole

Apenas com essa permissão, um atacante poderá acessar o Jupyter Notebook e roubar a função IAM associada a ele. A URL do notebook é https://<notebook-id>.emrnotebooks-prod.eu-west-1.amazonaws.com/<notebook-id>/lab/

Mesmo se você anexar uma função IAM à instância do notebook, nos meus testes, notei que consegui roubar credenciais gerenciadas pela AWS e não credenciais relacionadas à função IAM`.

Impacto Potencial: Escalação de privilégios para a função gerenciada pela AWS arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Última actualización