NFS
Ports : 111 (RPC), 2049 (NFS)
Remarque
Si des partages sont découvert et que l'option no_root_squash
a été utilisée, on pourra en tant que root, uploader des binaires setuid root ! Cela ne fonctionne pas si root_squash
a été paramétré
rpc info
rpcinfo inlanefreight.htb
nmap -sSUC -p111 $TARGET
# via un pivot
proxychains -q nmap -n -Pn -sT -p 111 --script rpcinfo,nfs-showmount 172.16.8.20
nmap
# enumeration de la version et du script rpcinfo
sudo nmap -Pn $TARGET -p111,2049 -sV -sC
# usage de tous les scripts NFS (nfs-ls, nfs-showmount, nfs-statfs, rpcinfo)
sudo nmap --script nfs* $TARGET_IP -sV -p111,2049
liste des partages NFS
$ showmount -e $TARGET_IP
Export list for 10.129.14.128:
/mnt/nfs 10.129.14.0/24
Montage d'un partage NFS
mkdir target-NFS
sudo mount -t nfs $TARGET_IP:/Remote_Share ./target-NFS/ -o nolock
cd target-NFS
Démontage d'un partage NFS hors ligne
Si le serveur ne répond plus on pourra utiliser :
umount -f -l /mnt/monDossier
Lister le contenu du dossier avec les UIDs et GIDs
$ ls -n
total 16
-rw-r--r-- 1 1000 1000 1872 Sep 25 00:55 aze.priv
-rw-r--r-- 1 1000 1000 348 Sep 25 00:55 aze.pub
-rw-r--r-- 1 0 1000 1221 Sep 19 18:21 dds.sh
-rw-r--r-- 1 0 0 1872 Sep 19 17:27 id_rsa
Obtenir le bon UID
$ sudo su -s /bin/bash <username>
Création d'un utilisateur avec un UID spécifique
useradd -u 1234 <username>
passwd <username>
sudo su <username>
Solution alternative : nfsshell
Cette solution permet d'émuler les uid et gid de notre choix
installation
https://github.com/NetDirect/nfsshell
Tutorial :
https://www.pentestpartners.com/security-blog/using-nfsshell-to-compromise-older-environments/
Solution alternative (non testée ) : NfSpy
https://github.com/bonsaiviking/NfSpy
https://malicious.link/posts/2013/2013-03-04-mounting-nfs-shares-through-meterpreter-with-nfspy/
yay -S nfspy
proxychains nfspy -d -o server=172.16.2.20:/,nfsport=2049/tcp,mountport=2049/tcp,ro /mnt/DEV01