tags: NFS enumerazione file_sharing Superenum Showmount RPCInfo RPC-Scan
NFS (Network File System) è un tipo di file system che consente agli utenti di computer di accedere, visualizzare, archiviare e aggiornare file su un server remoto. Questi dati remoti possono essere accessibili dal computer client nello stesso modo in cui vi si accede sul sistema locale.
Nmap
nmap -sV <Target IP Address>
sudo nmap --script nfs* 10.129.14.128 -sV -p111,2049
Starting Nmap 7.80 ( https://nmap.org ) at 2021-09-19 17:37 CEST
Nmap scan report for 10.129.14.128
Host is up (0.00021s latency).
PORT STATE SERVICE VERSION
111/tcp open rpcbind 2-4 (RPC #100000)
| nfs-ls: Volume /mnt/nfs
| access: Read Lookup NoModify NoExtend NoDelete NoExecute
| PERMISSION UID GID SIZE TIME FILENAME
| rwxrwxrwx 65534 65534 4096 2021-09-19T15:28:17 .
| ?????????? ? ? ? ? ..
| rw-r--r-- 0 0 1872 2021-09-19T15:27:42 id_rsa
| rw-r--r-- 0 0 348 2021-09-19T15:28:17 id_rsa.pub
| rw-r--r-- 0 0 0 2021-09-19T15:22:30 nfs.share
|_
| nfs-showmount:
|_ /mnt/nfs 10.129.14.0/24
| nfs-statfs:
| Filesystem 1K-blocks Used Available Use% Maxfilesize Maxlink
|_ /mnt/nfs 30313412.0 8074868.0 20675664.0 29% 16.0T 32000
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100000 3,4 111/tcp6 rpcbind
| 100000 3,4 111/udp6 rpcbind
| 100003 3 2049/udp nfs
| 100003 3 2049/udp6 nfs
| 100003 3,4 2049/tcp nfs
| 100003 3,4 2049/tcp6 nfs
| 100005 1,2,3 41982/udp6 mountd
| 100005 1,2,3 45837/tcp mountd
| 100005 1,2,3 47217/tcp6 mountd
| 100005 1,2,3 58830/udp mountd
| 100021 1,3,4 39542/udp nlockmgr
| 100021 1,3,4 44629/tcp nlockmgr
| 100021 1,3,4 45273/tcp6 nlockmgr
| 100021 1,3,4 47524/udp6 nlockmgr
| 100227 3 2049/tcp nfs_acl
| 100227 3 2049/tcp6 nfs_acl
| 100227 3 2049/udp nfs_acl
|_ 100227 3 2049/udp6 nfs_acl
2049/tcp open nfs_acl 3 (RPC #100227)
MAC Address: 00:00:00:00:00:00 (VMware)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.45 secondsShowmount
Tramite il seguente comando vediamo se è presente una cartella di condivisione:
showmount -e 10.129.14.128
Export list for 10.129.14.128:
/mnt/nfs 10.129.14.0/24
Se presente possiamo montare quella cartella sulla nostra macchina locale tramite i seguenti comandi:
Shiro1@htb[/htb]$ mkdir target-NFS
Shiro1@htb[/htb]$ sudo mount -t nfs 10.129.14.128:/ ./target-NFS/ -o nolock
Shiro1@htb[/htb]$ cd target-NFS
Shiro1@htb[/htb]$ tree .
.
└── mnt
└── nfs
├── id_rsa
├── id_rsa.pub
└── nfs.share
2 directories, 3 filesLe uniche cose che devi sostituire sono il nome della cartella sulla quale vuoi caricare la cartella remota in questo caso target-NFS e l’indirizzo IP della macchina remota in questo caso 10.129.14.128.
Se presente una cartella di condivisione possiamo anche provare a sfruttarla per ottenere una reverse shell, guarda questa pagina → NFS Shell.
Dopo aver eseguito tutti i passaggi necessari e ottenuto le informazioni di cui abbiamo bisogno, possiamo smontare la condivisione NFS:
Shiro1@htb[/htb]$ cd ..
Shiro1@htb[/htb]$ sudo umount ./target-NFSRPCInfo
Un modo semplice per vedere se il servizio NFS è attivo nella macchina possiamo utilizzare:
rpcinfo -p <indirizzo IP>
SuperEnum
SuperEnum è un tool che ci permette di enumerare facilmente il servizio NFS di una macchina, per utilizzarlo dobbiamo innanzitutto scaricarlo da questo sito github, poi va creato un file.txt con all’interno l’IP del target dentro la cartella nel quale è contenuto l’eseguibile e lo possiamo fare con il seguente comando:
echo "10.10.1.10" >> target.txtDopo aver creato il file possiamo lanciare il programma con:
./superenumCi chiederà quale file vogliamo scandagliare e noi gli metteremo il nome del file creato precedentemente.
RPC-Scan
Un altro tool che può sicuramente tornare utile è RPC-Scan che è ancora più semplice da utilizzare rispetto a superenum infatti ci basta scaricare il programma da questo sito poi dirigersi dentro la cartella del programma e lanciare il seguente comando:
python3 rpc-scan.py [Target IP address] --rpc