2049 - Pentesting NFS Service
Informações Básicas
NFS é um sistema projetado para cliente/servidor que permite aos usuários acessar arquivos em uma rede como se esses arquivos estivessem localizados em um diretório local.
Um aspecto notável desse protocolo é a falta de mecanismos de autenticação ou autorização integrados. Em vez disso, a autorização depende das informações do sistema de arquivos, com o servidor encarregado de traduzir com precisão as informações de usuário fornecidas pelo cliente no formato de autorização necessário do sistema de arquivos, seguindo principalmente a sintaxe UNIX.
A autenticação geralmente depende dos identificadores UID/GID UNIX e das associações de grupos. No entanto, surge um desafio devido ao potencial desajuste nas associações de UID/GID entre clientes e servidores, não deixando espaço para verificação adicional pelo servidor. Consequentemente, o protocolo é mais adequado para uso em redes confiáveis, dada sua dependência desse método de autenticação.
Porta padrão: 2049/TCP/UDP (exceto a versão 4, que só precisa de TCP ou UDP).
Versões
NFSv2: Esta versão é reconhecida por sua ampla compatibilidade com vários sistemas, marcando sua importância com operações iniciais predominantemente sobre UDP. Sendo a mais antiga da série, ela estabeleceu as bases para desenvolvimentos futuros.
NFSv3: Introduzida com uma série de aprimoramentos, o NFSv3 expandiu seu antecessor ao suportar tamanhos de arquivo variáveis e oferecer mecanismos de relatório de erros aprimorados. Apesar de seus avanços, enfrentou limitações na compatibilidade total com clientes NFSv2.
NFSv4: Uma versão marcante na série NFS, o NFSv4 trouxe uma série de recursos projetados para modernizar o compartilhamento de arquivos em redes. Melhorias notáveis incluem a integração do Kerberos para alta segurança, a capacidade de atravessar firewalls e operar pela Internet sem a necessidade de portmappers, suporte para Listas de Controle de Acesso (ACLs) e a introdução de operações baseadas em estado. Seus aprimoramentos de desempenho e a adoção de um protocolo baseado em estado distinguem o NFSv4 como um avanço fundamental nas tecnologias de compartilhamento de arquivos em rede.
Cada versão do NFS foi desenvolvida com a intenção de abordar as necessidades em constante evolução dos ambientes de rede, aprimorando progressivamente a segurança, compatibilidade e desempenho.
Enumeração
Scripts nmap úteis
Módulos úteis do metasploit
Montagem
Para saber qual pasta o servidor tem disponível para montar, você pode perguntar usando:
Em seguida, monte usando:
Deve-se especificar para usar a versão 2 porque ela não possui nenhuma forma de autenticação ou autorização.
Exemplo:
Permissões
Se você montar uma pasta que contém arquivos ou pastas acessíveis apenas por algum usuário (por UID). Você pode criar localmente um usuário com esse UID e usando esse usuário você poderá acessar o arquivo/pasta.
NSFShell
Para listar, montar e alterar o UID e GID facilmente para ter acesso aos arquivos, você pode usar nfsshell.
Arquivos de configuração
Configurações perigosas
Permissões de Leitura e Escrita (
rw
): Essa configuração permite tanto a leitura quanto a escrita no sistema de arquivos. É essencial considerar as implicações de conceder um acesso tão amplo.Uso de Portas Inseguras (
insecure
): Quando habilitado, isso permite que o sistema utilize portas acima de 1024. A segurança das portas acima desse intervalo pode ser menos rigorosa, aumentando o risco.Visibilidade de Sistemas de Arquivos Aninhados (
nohide
): Essa configuração torna os diretórios visíveis mesmo se outro sistema de arquivos estiver montado abaixo de um diretório exportado. Cada diretório requer sua própria entrada de exportação para um gerenciamento adequado.Propriedade de Arquivos Raiz (
no_root_squash
): Com essa configuração, arquivos criados pelo usuário raiz mantêm seu UID/GID original de 0, ignorando o princípio do menor privilégio e potencialmente concedendo permissões excessivas.Não Supressão de Todos os Usuários (
no_all_squash
): Essa opção garante que as identidades dos usuários sejam preservadas em todo o sistema, o que poderia levar a problemas de permissão e controle de acesso se não forem tratados corretamente.
Escalação de Privilégios usando configurações incorretas do NFS
Escalação de Privilégios do NFS no_root_squash e no_all_squash
Comandos Automáticos do HackTricks
Last updated