11 KiB
2049 - Pentesting del servizio NFS
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
- Lavori in una azienda di sicurezza informatica? Vuoi vedere la tua azienda pubblicizzata in HackTricks? o vuoi avere accesso all'ultima versione di PEASS o scaricare HackTricks in PDF? Controlla i PACCHETTI DI ABBONAMENTO!
- Scopri The PEASS Family, la nostra collezione di esclusive NFT
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguimi su Twitter 🐦@carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR al repo hacktricks e al repo hacktricks-cloud.
Informazioni di base
NFS è un sistema progettato per client/server che consente agli utenti di accedere in modo trasparente ai file su una rete come se questi file fossero situati all'interno di una directory locale.
Un aspetto notevole di questo protocollo è la mancanza di meccanismi di autenticazione o autorizzazione integrati. Invece, l'autorizzazione si basa sulle informazioni del file system, con il server incaricato di tradurre accuratamente le informazioni utente fornite dal client nel formato di autorizzazione richiesto dal file system, seguendo principalmente la sintassi UNIX.
L'autenticazione di solito si basa sugli identificatori UNIX UID
/GID
e l'appartenenza ai gruppi. Tuttavia, si presenta una sfida a causa della possibile discrepanza nelle corrispondenze UID
/GID
tra client e server, lasciando poco spazio per una verifica aggiuntiva da parte del server. Di conseguenza, il protocollo è più adatto per l'uso all'interno di reti fidate, data la sua dipendenza da questo metodo di autenticazione.
Porta predefinita: 2049/TCP/UDP (tranne la versione 4, che richiede solo TCP o UDP).
2049/tcp open nfs 2-3 (RPC #100003
Versioni
-
NFSv2: Questa versione è riconosciuta per la sua ampia compatibilità con vari sistemi, segnando la sua importanza con operazioni iniziali prevalentemente su UDP. Essendo la più vecchia della serie, ha gettato le basi per sviluppi futuri.
-
NFSv3: Introdotto con una serie di miglioramenti, NFSv3 si è ampliato rispetto al suo predecessore supportando dimensioni variabili dei file e offrendo meccanismi di segnalazione degli errori migliorati. Nonostante i suoi progressi, ha incontrato limitazioni nella piena compatibilità all'indietro con i client NFSv2.
-
NFSv4: Una versione di riferimento nella serie NFS, NFSv4 ha introdotto una serie di funzionalità progettate per modernizzare la condivisione dei file su reti. Miglioramenti notevoli includono l'integrazione di Kerberos per una sicurezza elevata, la capacità di attraversare i firewall e operare su Internet senza la necessità di portmappers, il supporto per le Access Control Lists (ACL) e l'introduzione di operazioni basate sullo stato. I suoi miglioramenti delle prestazioni e l'adozione di un protocollo stateful distinguono NFSv4 come un avanzamento fondamentale nelle tecnologie di condivisione dei file di rete.
Ogni versione di NFS è stata sviluppata con l'intento di affrontare le esigenze in continua evoluzione degli ambienti di rete, migliorando progressivamente la sicurezza, la compatibilità e le prestazioni.
Enumerazione
Utili script di nmap
nfs-ls #List NFS exports and check permissions
nfs-showmount #Like showmount -e
nfs-statfs #Disk statistics and info from NFS share
Moduli utili di Metasploit
Metasploit è un framework di test di penetrazione ampiamente utilizzato che offre una vasta gamma di moduli per l'esecuzione di attacchi e test di penetrazione. Di seguito sono elencati alcuni dei moduli più utili di Metasploit:
-
exploit/multi/handler
: Questo modulo consente di creare un gestore per le connessioni in entrata, consentendo di intercettare e sfruttare le connessioni di un exploit riuscito. -
exploit/multi/script/web_delivery
: Questo modulo consente di consegnare un payload tramite un server web, consentendo di eseguire codice arbitrario sul sistema di destinazione. -
exploit/windows/smb/ms17_010_eternalblue
: Questo modulo sfrutta la vulnerabilità EternalBlue nel protocollo SMBv1 di Windows per ottenere l'esecuzione remota di codice su un sistema di destinazione. -
auxiliary/scanner/portscan/tcp
: Questo modulo consente di eseguire una scansione delle porte TCP su un host di destinazione, identificando le porte aperte e i servizi in ascolto. -
auxiliary/scanner/smb/smb_version
: Questo modulo consente di identificare la versione del protocollo SMB in uso su un host di destinazione. -
post/multi/manage/shell_to_meterpreter
: Questo modulo consente di convertire una shell di sistema ottenuta in un sessione Meterpreter, fornendo funzionalità avanzate per il controllo del sistema di destinazione. -
post/multi/gather/enum_domain
: Questo modulo consente di raccogliere informazioni sul dominio di destinazione, inclusi utenti, gruppi e computer. -
post/multi/gather/enum_applications
: Questo modulo consente di raccogliere informazioni sulle applicazioni installate sul sistema di destinazione.
Questi sono solo alcuni dei moduli disponibili in Metasploit. Il framework offre una vasta gamma di funzionalità e moduli per supportare i test di penetrazione su una varietà di sistemi e servizi.
scanner/nfs/nfsmount #Scan NFS mounts and list permissions
Montaggio
Per sapere quale cartella il server ha disponibile per il montaggio, puoi chiederglielo usando:
showmount -e <IP>
Quindi montalo usando:
mount -t nfs [-o vers=2] <ip>:<remote_folder> <local_folder> -o nolock
Dovresti specificare di utilizzare la versione 2 perché non ha alcuna autenticazione o autorizzazione.
Esempio:
mkdir /mnt/new_back
mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock
Permessi
Se monti una cartella che contiene file o cartelle accessibili solo da alcuni utenti (tramite UID), puoi creare localmente un utente con quel UID e utilizzando quell'utente sarai in grado di accedere al file/cartella.
NSFShell
Per elencare, montare e cambiare UID e GID per avere accesso ai file, puoi utilizzare nfsshell.
File di configurazione
/etc/exports
/etc/lib/nfs/etab
Impostazioni pericolose
-
Permessi di lettura e scrittura (
rw
): Questa impostazione consente sia la lettura che la scrittura nel file system. È essenziale considerare le implicazioni di concedere un accesso così ampio. -
Utilizzo di porte non sicure (
insecure
): Quando abilitato, ciò consente al sistema di utilizzare porte superiori a 1024. La sicurezza delle porte al di sopra di questo intervallo può essere meno rigorosa, aumentando il rischio. -
Visibilità dei file system nidificati (
nohide
): Questa configurazione rende le directory visibili anche se un altro file system è montato sotto una directory esportata. Ogni directory richiede la propria voce di esportazione per una corretta gestione. -
Proprietà dei file di root (
no_root_squash
): Con questa impostazione, i file creati dall'utente root mantengono il loro UID/GID originale di 0, ignorando il principio del privilegio minimo e potenzialmente concedendo autorizzazioni eccessive. -
Non soppressione di tutti gli utenti (
no_all_squash
): Questa opzione garantisce che le identità degli utenti siano preservate in tutto il sistema, il che potrebbe causare problemi di autorizzazione e controllo dell'accesso se non gestiti correttamente.
Escalation dei privilegi utilizzando errori di configurazione NFS
Escalation dei privilegi NFS no_root_squash e no_all_squash
Comandi automatici di 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}
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
- Lavori in un'azienda di sicurezza informatica? Vuoi vedere la tua azienda pubblicizzata in HackTricks? o vuoi avere accesso all'ultima versione di PEASS o scaricare HackTricks in PDF? Controlla i PACCHETTI DI ABBONAMENTO!
- Scopri La Famiglia PEASS, la nostra collezione di esclusive NFT
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguimi su Twitter 🐦@carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR al repo hacktricks e al repo hacktricks-cloud.