9.5 KiB
2049 - Pentesting Serviço NFS
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de cibersegurança? Gostaria de ver sua empresa anunciada no HackTricks? ou gostaria de 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 do 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
É um sistema cliente/servidor que permite aos usuários acessar arquivos em uma rede e tratá-los como se estivessem em um diretório de arquivos local. Tem o mesmo propósito que o SMB, mas não pode se comunicar com o SMB.
O protocolo NFS não possui mecanismo de autenticação ou autorização. A autorização é obtida a partir das informações disponíveis no sistema de arquivos, onde o servidor é responsável por traduzir as informações do usuário fornecidas pelo cliente para as do sistema de arquivos e converter as informações de autorização correspondentes da maneira mais correta possível na sintaxe exigida pelo UNIX.
A autenticação mais comum é via UID
/GID
UNIX e associações de grupos
, razão pela qual essa sintaxe é a mais provável de ser aplicada ao protocolo NFS. Um problema é que o cliente e o servidor não necessariamente precisam ter as mesmas correspondências de UID/GID para usuários e grupos. Nenhuma verificação adicional pode ser feita por parte do servidor. Por isso, o NFS deve ser apenas usado com esse método de autenticação em redes confiáveis.
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
(De https://academy.hackthebox.com/module/112/section/1068)
Versão | Recursos |
---|---|
NFSv2 |
É mais antiga mas é suportada por muitos sistemas e inicialmente operava totalmente sobre UDP. |
NFSv3 |
Possui mais recursos, incluindo tamanho de arquivo variável e melhor relatório de erros, mas não é totalmente compatível com clientes NFSv2. |
NFSv4 |
Inclui Kerberos, funciona através de firewalls e na Internet, não requer mais portmappers, suporta ACLs, aplica operações baseadas em estado e fornece melhorias de desempenho e alta segurança. Também é a primeira versão a ter um protocolo baseado em estado. |
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 usar esse usuário para 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
(De https://academy.hackthebox.com/module/112/section/1068)
Opção | Descrição |
---|---|
rw |
Permissões de leitura e escrita. |
insecure |
Portas acima de 1024 serão usadas. |
nohide |
Se outro sistema de arquivos foi montado abaixo de um diretório exportado, este diretório é exportado por sua própria entrada de exportação. |
no_root_squash |
Todos os arquivos criados pelo root são mantidos com o UID/GID 0. |
no_all_squash |
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: |
It is a client/server system that allows users to access files across a network and treat them as if they resided in a local file 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}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Trabalha em uma empresa de cibersegurança? Gostaria de ver sua empresa anunciada no HackTricks? ou gostaria de 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 do 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.