Leia o arquivo _**/etc/exports**_, se você encontrar algum diretório configurado como **no\_root\_squash**, então você pode **acessá-lo** como **cliente** e **escrever dentro** desse diretório **como se** você fosse o **root** local da máquina.
**no\_root\_squash**: Essa opção basicamente dá autoridade ao usuário root no cliente para acessar arquivos no servidor NFS como root. E isso pode levar a sérias implicações de segurança.
**no\_all\_squash:** Isso é semelhante à opção **no\_root\_squash**, mas se aplica a **usuários não-root**. Imagine que você tenha um shell como usuário nobody; verifique o arquivo /etc/exports; a opção no\_all\_squash está presente; verifique o arquivo /etc/passwd; emule um usuário não-root; crie um arquivo suid como esse usuário (montando usando nfs). Execute o suid como usuário nobody e torne-se um usuário diferente.
* **Montando esse diretório** em uma máquina cliente e, **como root, copiando** dentro da pasta montada o binário **/bin/bash** e dando a ele direitos **SUID**, e **executando a partir da máquina vítima** esse binário bash.
* **Montando esse diretório** em uma máquina cliente, e **como root copiando** dentro da pasta montada nosso payload compilado que irá abusar da permissão SUID, dar a ele direitos de **SUID**, e **executar a partir da máquina vítima** esse binário (você pode encontrar aqui alguns [payloads C SUID](payloads-to-execute.md#c)).
Observe que, se você puder criar um **túnel da sua máquina para a máquina da vítima, ainda poderá usar a versão remota para explorar essa escalada de privilégios, tunelando as portas necessárias**.\
O truque a seguir é no caso de o arquivo `/etc/exports`**indicar um endereço IP**. Nesse caso, você **não poderá usar** em nenhum caso a **exploração remota** e precisará **abusar desse truque**.\
Outro requisito necessário para que a exploração funcione é que **a exportação dentro de `/etc/export`****deve estar usando a flag `insecure`**.\
\--_Não tenho certeza se esse truque funcionará se `/etc/export` estiver indicando um endereço IP_--
Agora, vamos supor que o servidor de compartilhamento ainda esteja executando `no_root_squash`, mas há algo impedindo que montemos o compartilhamento em nossa máquina de teste de penetração. Isso aconteceria se o `/etc/exports` tivesse uma lista explícita de endereços IP permitidos para montar o compartilhamento.
Isso significa que estamos presos explorando o compartilhamento montado na máquina localmente a partir de um usuário não privilegiado. Mas acontece que há outro exploit local menos conhecido.
Este exploit depende de um problema na especificação NFSv3 que exige que seja responsabilidade do cliente anunciar seu uid/gid ao acessar o compartilhamento. Assim, é possível falsificar o uid/gid forjando as chamadas NFS RPC se o compartilhamento já estiver montado!
Uma vez com privilégios de root local na máquina, eu queria saquear o compartilhamento NFS em busca de possíveis segredos que me permitissem fazer um pivô. Mas havia muitos usuários do compartilhamento, cada um com seus próprios uids que eu não conseguia ler, apesar de ser root, por causa da incompatibilidade de uid. Eu não queria deixar rastros óbvios, como um chown -R, então criei um pequeno trecho de código para definir meu uid antes de executar o comando de shell desejado:
- Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
- Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
- **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **Compartilhe seus truques de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.