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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
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
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
scanner/nfs/nfsmount #Scan NFS mounts and list permissions
Mounting
Ili kujua ni folda ipi ambayo server inapatikana kuunganishwa, unaweza kuomba kutumia:
showmount -e <IP>
Kisha pandisha kutumia:
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:
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.
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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.