8.3 KiB
2049 - Pentesting NFS Service
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Osnovne informacije
NFS je sistem dizajniran za klijent/server koji omogućava korisnicima da besprekorno pristupaju datotekama preko mreže kao da su te datoteke smeštene unutar lokalnog direktorijuma.
Značajan aspekt ovog protokola je njegov nedostatak ugrađenih mehanizama autentifikacije ili autorizacije. Umesto toga, autorizacija se oslanja na informacije o datotečnom sistemu, pri čemu je server zadužen za tačno prevođenje informacija o korisniku koje pruža klijent u potrebni format autorizacije datotečnog sistema, prvenstveno prateći UNIX sintaksu.
Autentifikacija se obično oslanja na UNIX UID
/GID
identifikatore i članstva u grupama. Međutim, izazov nastaje zbog potencijalne nesaglasnosti u UID
/GID
mapiranju između klijenata i servera, ostavljajući bez prostora za dodatnu verifikaciju od strane servera. Kao rezultat, protokol je najbolje koristiti unutar pouzdanih mreža, s obzirom na to da se oslanja na ovu metodu autentifikacije.
Podrazumevani port: 2049/TCP/UDP (osim verzije 4, potrebni su samo TCP ili UDP).
2049/tcp open nfs 2-3 (RPC #100003
Verzije
-
NFSv2: Ova verzija je prepoznata po širokoj kompatibilnosti sa raznim sistemima, označavajući njen značaj sa početnim operacijama pretežno preko UDP-a. Kao najstarija u seriji, postavila je temelje za buduće razvoj.
-
NFSv3: Uvedena sa nizom poboljšanja, NFSv3 je proširila svog prethodnika podržavajući promenljive veličine datoteka i nudeći poboljšane mehanizme izveštavanja o greškama. I pored svojih napredaka, suočila se sa ograničenjima u punoj unazadnoj kompatibilnosti sa NFSv2 klijentima.
-
NFSv4: Prelomna verzija u NFS seriji, NFSv4 je donela niz funkcija dizajniranih da modernizuju deljenje datoteka preko mreža. Značajna poboljšanja uključuju integraciju Kerberosa za visoku sigurnost, sposobnost prelaska kroz vatrozidove i rad preko Interneta bez potrebe za portmaperima, podršku za liste kontrole pristupa (ACL), i uvođenje operacija zasnovanih na stanju. Njena poboljšanja u performansama i usvajanje protokola zasnovanog na stanju izdvajaju NFSv4 kao ključni napredak u tehnologijama deljenja mrežnih datoteka.
Svaka verzija NFS-a je razvijena sa namerom da odgovori na evoluirajuće potrebe mrežnih okruženja, postepeno poboljšavajući sigurnost, kompatibilnost i performanse.
Enumeracija
Korisni nmap skripti
nfs-ls #List NFS exports and check permissions
nfs-showmount #Like showmount -e
nfs-statfs #Disk statistics and info from NFS share
Korisni metasploit moduli
scanner/nfs/nfsmount #Scan NFS mounts and list permissions
Mounting
Da biste saznali koju fasciklu server ima dostupnu za montiranje, možete ga pitati koristeći:
showmount -e <IP>
Zatim ga montirajte koristeći:
mount -t nfs [-o vers=2] <ip>:<remote_folder> <local_folder> -o nolock
Trebalo bi da navedete da koristite verziju 2 jer nema nikakvu autentifikaciju ili autorizaciju.
Primer:
mkdir /mnt/new_back
mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock
Dozvole
Ako montirate folder koji sadrži fajlove ili foldere koji su dostupni samo nekim korisnicima (preko UID). Možete napraviti lokalno korisnika sa tim UID i koristeći tog korisnika moći ćete da pristupite fajlu/folderu.
NSFShell
Da biste lako listali, montirali i menjali UID i GID kako biste imali pristup fajlovima, možete koristiti nfsshell.
Konfiguracione datoteke
/etc/exports
/etc/lib/nfs/etab
Opasne postavke
-
Dozvole za čitanje i pisanje (
rw
): Ova postavka omogućava i čitanje i pisanje u fajl sistem. Važno je razmotriti posledice davanja tako širokog pristupa. -
Korišćenje nesigurnih portova (
insecure
): Kada je omogućeno, ovo omogućava sistemu da koristi portove iznad 1024. Bezbednost portova iznad ovog opsega može biti manje stroga, povećavajući rizik. -
Vidljivost ugnježdenih fajl sistema (
nohide
): Ova konfiguracija čini direktorijume vidljivim čak i ako je drugi fajl sistem montiran ispod izvezenog direktorijuma. Svakom direktorijumu je potrebna sopstvena izvozna stavka za pravilno upravljanje. -
Vlasništvo fajlova od strane root korisnika (
no_root_squash
): Sa ovom postavkom, fajlovi koje kreira root korisnik zadržavaju svoj originalni UID/GID od 0, zanemarujući princip minimalnih privilegija i potencijalno dodeljujući prekomerne dozvole. -
Nesmanjenje svih korisnika (
no_all_squash
): Ova opcija osigurava da identiteti korisnika budu očuvani širom sistema, što može dovesti do problema sa dozvolama i kontrolom pristupa ako se ne upravlja pravilno.
Eskalacija privilegija korišćenjem NFS pogrešnih konfiguracija
NFS no_root_squash i no_all_squash eskalacija privilegija
HackTricks Automatske komande
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}
{% hint style="success" %}
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.