2049 - Pentesting NFS Service

Reading time: 6 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Basic Information

NFS ni mfumo ulioandaliwa kwa ajili ya client/server ambao unawawezesha watumiaji kufikia faili kwa urahisi kupitia mtandao kana kwamba faili hizi ziko ndani ya directory ya ndani.

Sifa muhimu ya protokali hii ni ukosefu wa uthibitishaji au mitambo ya idhini iliyojengwa ndani. Badala yake, idhini inategemea taarifa za mfumo wa faili, ambapo seva inawajibika kutafsiri kwa usahihi taarifa za mtumiaji zilizotolewa na mteja katika format ya idhini inayohitajika na mfumo wa faili, hasa ikifuatilia sintaksia ya UNIX.

Uthibitishaji kwa kawaida unategemea vitambulisho vya UID/GID vya UNIX na uanachama wa vikundi. Hata hivyo, changamoto inajitokeza kutokana na uwezekano wa kutofautiana katika mappings ya UID/GID kati ya wateja na seva, na kuacha nafasi ya kuthibitisha zaidi na seva. Kwa hivyo, protokali hii inafaa zaidi kutumika ndani ya mitandao ya kuaminika, kutokana na kutegemea njia hii ya uthibitishaji.

Port ya default: 2049/TCP/UDP (isipokuwa toleo la 4, inahitaji tu TCP au UDP).

2049/tcp open  nfs     2-3 (RPC #100003

Versions

  • NFSv2: Toleo hili linatambulika kwa ufanisi wake mpana na mifumo mbalimbali, likionyesha umuhimu wake katika operesheni za awali hasa kupitia UDP. Kwa kuwa zamani zaidi katika mfululizo, lilianzisha msingi wa maendeleo ya baadaye.

  • NFSv3: Iliyotambulishwa kwa mabadiliko mbalimbali, NFSv3 ilipanua juu ya mtangulizi wake kwa kusaidia ukubwa wa faili tofauti na kutoa mifumo bora ya kuripoti makosa. Licha ya maendeleo yake, ilikabiliwa na mipaka katika ufanisi wa kurudi nyuma kwa wateja wa NFSv2.

  • NFSv4: Toleo muhimu katika mfululizo wa NFS, NFSv4 ilileta seti ya vipengele vilivyoundwa kuboresha ushirikiano wa faili katika mitandao. Maboresho makubwa ni pamoja na ujumuishaji wa Kerberos kwa usalama wa juu, uwezo wa kupita kwenye moto na kufanya kazi juu ya Mtandao bila haja ya portmappers, msaada wa Orodha za Udhibiti wa Ufikiaji (ACLs), na utambulisho wa operesheni za msingi wa hali. Maboresho yake ya utendaji na kupitishwa kwa itifaki ya hali inafanya NFSv4 kuwa maendeleo muhimu katika teknolojia za ushirikiano wa faili mtandaoni.

Kila toleo la NFS limeandaliwa kwa nia ya kukabiliana na mahitaji yanayobadilika ya mazingira ya mtandao, ikiongeza hatua kwa hatua usalama, ufanisi, na utendaji.

Enumeration

Useful nmap scripts

bash
nfs-ls #List NFS exports and check permissions
nfs-showmount #Like showmount -e
nfs-statfs #Disk statistics and info from NFS share

Moduli muhimu ya metasploit

bash
scanner/nfs/nfsmount #Scan NFS mounts and list permissions

Mounting

Ili kujua ni folda ipi ambayo server inapatikana kuunganishwa, unaweza kuomba kutumia:

bash
showmount -e <IP>

Kisha pandisha kutumia:

bash
mount -t nfs [-o vers=2] <ip>:<remote_folder> <local_folder> -o nolock

Unapaswa kubainisha tumia toleo la 2 kwa sababu halina uthibitishaji au idhinishaji yoyote.

Mfano:

bash
mkdir /mnt/new_back
mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock

Permissions

Ikiwa unakata folder ambayo ina files au folders ambazo zinaweza kufikiwa na mtumiaji fulani tu (kwa UID). Unaweza kuunda katika eneo la ndani mtumiaji mwenye UID hiyo na kwa kutumia mtumiaji huyo utaweza kufikia file/folder.

NSFShell

Ili orodhesha kwa urahisi, kukata na kubadilisha UID na GID ili kupata ufikiaji wa files unaweza kutumia nfsshell.

Nice NFSShell tutorial.

Config files

/etc/exports
/etc/lib/nfs/etab

Dangerous settings

  • Read and Write Permissions (rw): Mipangilio hii inaruhusu kusoma na kuandika kwenye mfumo wa faili. Ni muhimu kuzingatia athari za kutoa ufikiaji mpana kama huu.

  • Use of Insecure Ports (insecure): Wakati imewezeshwa, hii inaruhusu mfumo kutumia bandari zilizo juu ya 1024. Usalama wa bandari zilizo juu ya kiwango hiki unaweza kuwa dhaifu, kuongeza hatari.

  • Visibility of Nested File Systems (nohide): Mipangilio hii inafanya saraka kuonekana hata kama mfumo mwingine wa faili umewekwa chini ya saraka iliyosafirishwa. Kila saraka inahitaji kuingia kwake mwenyewe kwa usimamizi sahihi.

  • Root Files Ownership (no_root_squash): Kwa mipangilio hii, faili zinazoundwa na mtumiaji wa root zinahifadhi UID/GID yao ya awali ya 0, bila kuzingatia kanuni ya haki ndogo na huenda ikatoa ruhusa nyingi.

  • Non-Squashing of All Users (no_all_squash): Chaguo hili linahakikisha kwamba vitambulisho vya watumiaji vinahifadhiwa katika mfumo mzima, ambavyo vinaweza kusababisha matatizo ya ruhusa na udhibiti wa ufikiaji ikiwa hayatatuliwa vizuri.

Privilege Escalation using NFS misconfigurations

NFS no_root_squash and no_all_squash privilege escalation

HackTricks Automatic Commands

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}

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks