2049 - Pentesting NFS Service

Jifunze kuhusu kudukua AWS kutoka mwanzo hadi kuwa bingwa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Taarifa Msingi

NFS ni mfumo ulioundwa kwa ajili ya mteja/mtumishi ambao huruhusu watumiaji kupata faili kwa urahisi kupitia mtandao kana kwamba faili hizo ziko katika saraka ya ndani.

Jambo muhimu kuhusu itifaki hii ni ukosefu wake wa uthibitishaji au mifumo ya idhini iliyojengwa ndani. Badala yake, idhini inategemea taarifa za mfumo wa faili, ambapo mtumishi anajukumu la kutafsiri kwa usahihi taarifa za mtumiaji zinazotolewa na mteja katika muundo unaohitajika wa idhini wa mfumo wa faili, kwa kufuata hasa sintaksia ya UNIX.

Uthibitishaji mara nyingi unategemea kitambulisho cha UID/GID cha UNIX na uanachama wa kikundi. Hata hivyo, changamoto inatokea kutokana na tofauti inayowezekana katika ufanano wa UID/GID kati ya wateja na watumishi, hivyo hakuna nafasi ya uthibitisho zaidi na mtumishi. Kwa hiyo, itifaki hii ni bora kutumika katika mitandao ya kuaminika, kutokana na kutegemea njia hii ya uthibitisho.

Bandari ya chaguo-msingi: 2049/TCP/UDP (isipokuwa toleo la 4, inahitaji TCP au UDP tu).

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

Toleo

  • NFSv2: Toleo hili linatambulika kwa uwezo wake mkubwa wa kufanya kazi na mifumo mbalimbali, na kwa kuanza kwa shughuli za awali zaidi kwa kutumia UDP. Kwa kuwa ni toleo la zamani katika mfululizo huu, lilianzisha msingi wa maendeleo ya baadaye.

  • NFSv3: Ilianzishwa na maboresho mengi, NFSv3 iliongeza kwa kiasi kikubwa kwenye toleo lake la awali kwa kusaidia ukubwa tofauti wa faili na kutoa njia bora ya kuripoti makosa. Licha ya maendeleo yake, ilikabiliwa na vizuizi katika uwezo wake wa kurudisha nyuma kikamilifu kwa wateja wa NFSv2.

  • NFSv4: Toleo muhimu katika mfululizo wa NFS, NFSv4 ilileta kwenye meza kipindi cha huduma zilizoundwa kuboresha ushirikiano wa kugawana faili kwenye mitandao. Maboresho muhimu ni pamoja na ujumuishaji wa Kerberos kwa ajili ya usalama wa juu, uwezo wa kuvuka kizuizi cha moto na kufanya kazi kupitia mtandao bila haja ya portmappers, usaidizi wa Orodha za Kudhibiti Upatikanaji (ACLs), na kuanzishwa kwa shughuli zinazotegemea hali. Uboreshaji wake wa utendaji na uchukuzi wa itifaki yenye hali unatambulisha NFSv4 kama maendeleo muhimu katika teknolojia za kugawana faili kwenye mitandao.

Kila toleo la NFS limeendelezwa kwa lengo la kukabiliana na mahitaji yanayobadilika ya mazingira ya mtandao, kwa kuimarisha usalama, uwezo wa kushirikiana, na utendaji.

Uchambuzi

Skrini za nmap zinazofaa

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

Metasploit ni chombo maarufu cha kufanya uchunguzi wa usalama na kufanya mashambulizi ya kudhibiti mfumo. Inatoa moduli nyingi ambazo zinaweza kutumiwa kwa ufanisi katika kufanya pentesting. Hapa kuna baadhi ya moduli muhimu za Metasploit:

  • exploit/multi/handler: Moduli hii inaruhusu kuanzisha kusikiliza kwa kushughulikia mashambulizi ya kijijini. Inaweza kutumiwa kusikiliza kwa kushughulikia kwa itifaki mbalimbali kama vile HTTP, TCP, na UDP.

  • exploit: Moduli hizi zinawezesha kufanya mashambulizi ya kudhibiti mfumo kwa kutumia udhaifu katika programu au itifaki. Kuna moduli nyingi za kipekee kwa udhaifu tofauti, kama vile exploit/windows/smb/ms17_010_eternalblue ambayo inatumika kwa kudhibiti mfumo wa Windows kupitia udhaifu wa EternalBlue.

  • auxiliary: Moduli hizi zinatoa zana za ziada ambazo zinaweza kutumiwa katika mchakato wa pentesting. Kwa mfano, auxiliary/scanner/portscan/tcp inaweza kutumiwa kufanya uchunguzi wa bandari za TCP kwenye mfumo uliolengwa.

  • post: Moduli hizi zinatoa zana za kufanya shughuli baada ya kuvamia mfumo. Kwa mfano, post/multi/gather/enum_system inaweza kutumiwa kukusanya habari kuhusu mfumo uliolengwa baada ya kuvamia.

  • payload: Moduli hizi zinatoa aina tofauti za mizigo ambazo zinaweza kutumika kwa kudhibiti mfumo uliolengwa. Kwa mfano, payload/linux/x86/shell_reverse_tcp inatoa mizigo ya kudhibiti mfumo wa Linux kwa kutumia itifaki ya reverse TCP.

Moduli hizi ni baadhi tu ya zana zinazopatikana katika Metasploit. Kwa kuchunguza na kuelewa jinsi ya kutumia moduli hizi, unaweza kuwa na uwezo mkubwa wa kufanya pentesting kwa ufanisi.

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

Kufunga

Ili kujua folda ipi inayopatikana kwa kufunga kwenye seva, unaweza kuuliza kwa kutumia:

showmount -e <IP>

Kisha ungana nayo kwa kutumia:

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

Unapaswa kufafanua kutumia toleo 2 kwa sababu hakina uthibitishaji au idhini yoyote.

Mfano:

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

Vibali

Ikiwa unafunga saraka ambayo ina faili au saraka zinazopatikana tu na mtumiaji fulani (kwa UID). Unaweza kuunda mtumiaji kwa kutumia UID hiyo na kwa kutumia mtumiaji huyo utaweza kupata faili/saraka.

NSFShell

Ili kuorodhesha, kufunga na kubadilisha UID na GID ili kupata faili, unaweza kutumia nfsshell.

Tutorial nzuri ya NFSShell.

Faili za Usanidi

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

Mipangilio hatari

  • Mipangilio ya Kusoma na Kuandika (rw): Mipangilio hii inaruhusu kusoma na kuandika kwenye mfumo wa faili. Ni muhimu kuzingatia athari za kutoa upatikanaji mpana kama huo.

  • Matumizi ya Bandari Zisizo Salama (insecure): Kukiwezeshwa, hii inaruhusu mfumo kutumia bandari zilizo juu ya 1024. Usalama wa bandari zilizo juu ya kikomo hiki unaweza kuwa dhaifu, kuongeza hatari.

  • Uonekano wa Mifumo ya Faili Iliyofichwa (nohide): Mipangilio hii inafanya saraka kuonekana hata kama mfumo mwingine wa faili umefungwa chini ya saraka iliyosambazwa. Kila saraka inahitaji kuingizwa kwa kujitolea ili kusimamia vizuri.

  • Umiliki wa Faili za Mizizi (no_root_squash): Kwa mipangilio hii, faili zilizoundwa na mtumiaji wa mizizi zinabaki na UID/GID yao ya asili ya 0, bila kuzingatia kanuni ya idadi ndogo ya ruhusa na huenda zikatoa ruhusa nyingi.

  • Kutowasukuma Watumiaji Wote (no_all_squash): Chaguo hili linahakikisha utambulisho wa watumiaji unahifadhiwa kwenye mfumo, ambayo inaweza kusababisha masuala ya ruhusa na udhibiti wa upatikanaji ikiwa haitashughulikiwa kwa usahihi.

Kupandisha Hadhi kwa Kutumia Mipangilio Mibovu ya NFS

Kupandisha Hadhi kwa Kutumia Mipangilio Mibovu ya NFS ya no_root_squash na no_all_squash

Amri za Kiotomatiki za 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}
Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Last updated