8.8 KiB
2049 - Pentesting Serviço NFS
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
- Você trabalha em uma empresa de cibersegurança? Quer ver sua empresa anunciada no HackTricks? ou quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Confira os PLANOS DE ASSINATURA!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial PEASS & HackTricks
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para o repositório hacktricks e repositório hacktricks-cloud.
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).
2049/tcp open nfs 2-3 (RPC #100003
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
nfs-ls #List NFS exports and check permissions
nfs-showmount #Like showmount -e
nfs-statfs #Disk statistics and info from NFS share
Módulos úteis do metasploit
scanner/nfs/nfsmount #Scan NFS mounts and list permissions
Montagem
Para saber qual pasta o servidor tem disponível para montar, você pode perguntar usando:
showmount -e <IP>
Em seguida, monte usando:
mount -t nfs [-o vers=2] <ip>:<remote_folder> <local_folder> -o nolock
Deve-se especificar para usar a versão 2 porque ela não possui nenhuma forma de autenticação ou autorização.
Exemplo:
mkdir /mnt/new_back
mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock
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
/etc/exports
/etc/lib/nfs/etab
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
Protocol_Name: NFS #Protocol Abbreviation if there is one.
Port_Number: 2049 #Comma separated if there is more than one.
Protocol_Description: Network File System #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for NFS
Note: |
NFS is a system designed for client/server that enables users to seamlessly access files over a network as though these files were located within a local directory.
#apt install nfs-common
showmount 10.10.10.180 ~or~showmount -e 10.10.10.180
should show you available shares (example /home)
mount -t nfs -o ver=2 10.10.10.180:/home /mnt/
cd /mnt
nano into /etc/passwd and change the uid (probably 1000 or 1001) to match the owner of the files if you are not able to get in
https://book.hacktricks.xyz/pentesting/nfs-service-pentesting
Entry_2:
Name: Nmap
Description: Nmap with NFS Scripts
Command: nmap --script=nfs-ls.nse,nfs-showmount.nse,nfs-statfs.nse -p 2049 {IP}
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
- Você trabalha em uma empresa de cibersegurança? Quer ver sua empresa anunciada no HackTricks? ou quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Confira os PLANOS DE ASSINATURA!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial PEASS & HackTricks
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para o repositório hacktricks e repositório hacktricks-cloud.