2049 - Pentesting NFS Service

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!

मूल जानकारी

NFS एक क्लाइंट/सर्वर के लिए डिज़ाइन किया गया सिस्टम है जो उपयोगकर्ताओं को नेटवर्क के माध्यम से फ़ाइलों तक पहुँचने की सुविधा प्रदान करता है जैसे कि ये फ़ाइलें स्थानीय निर्देशिका में स्थित हों।

इस प्रोटोकॉल की एक महत्वपूर्ण पहलू यह है कि इसमें निर्मित प्रमाणीकरण या अधिकृति तंत्र नहीं है। इसके बजाय, अधिकृति फ़ाइल सिस्टम जानकारी पर निर्भर है, जिसमें सर्वर को सही ढंग से क्लाइंट द्वारा प्रदान की गई उपयोगकर्ता जानकारी को फ़ाइल सिस्टम की आवश्यक अधिकृति प्रारूप में अनुवाद करना होता है, मुख्य रूप से UNIX सिंटैक्स का पालन करते हुए।

प्रमाणीकरण आम तौर पर UNIX UID/GID पहचानकर्ता और समूह सदस्यता पर निर्भर करता है। हालांकि, एक चुनौती उत्पन्न होती है क्योंकि क्लाइंट और सर्वर के बीच UID/GID मैपिंग में मेल नहीं खाता है, जिससे सर्वर द्वारा अतिरिक्त सत्यापन के लिए कोई स्थान नहीं बचता। इसलिए, यह प्रोटोकॉल विश्वसनीय नेटवर्क्स के भीतर उपयोग के लिए सबसे उपयुक्त है, क्योंकि यह इस प्रकार के प्रमाणीकरण पद्धति पर निर्भर है।

डिफ़ॉल्ट पोर्ट: 2049/TCP/UDP (संस्करण 4 को छोड़कर, यह केवल TCP या UDP की आवश्यकता है)।

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

संस्करण

  • NFSv2: यह संस्करण विभिन्न सिस्टमों के साथ व्यापक संगतता के लिए मान्यता प्राप्त है, जिसे प्रारंभिक कार्यों के रूप में अधिकांश यूडीपी के माध्यम से चिह्नित किया गया है। यह सीरीज का सबसे पुराना संस्करण होने के नाते, इसने भविष्य के विकास के लिए आधार रखा।

  • NFSv3: एक विभिन्न सुधारों के साथ पेश किया गया, NFSv3 अपने पूर्वज को समर्थन देने के लिए फाइल के आकारों में परिवर्तनीयता और सुधारित त्रुटि रिपोर्टिंग तंत्रों की पेशकश करके अपनी सीमाओं में आगे बढ़ा। इसके विकासों के बावजूद, यह NFSv2 क्लाइंट्स के साथ पूरी प्रतिकूलता में सीमाओं का सामना करता था।

  • NFSv4: NFS श्रृंखला में एक महत्वपूर्ण संस्करण, NFSv4 नेटवर्कों के बीच फ़ाइल साझाकरण को आधुनिकीकरण करने के लिए डिज़ाइन किए गए सुविधाओं का एक सुइट लाया। उल्लेखनीय सुधार में Kerberos का एकीकरण उच्च सुरक्षा के लिए, फायरवॉल को चारों ओर से चलने और पोर्टमैपर की आवश्यकता के बिना इंटरनेट पर काम करने की क्षमता, पहुंच नियंत्रण सूची (ACLs) का समर्थन, और स्थिति-आधारित कार्यों का परिचय शामिल है। इसकी प्रदर्शन सुधार और एक स्थितिग्राही प्रोटोकॉल के अभिगमन से NFSv4 को नेटवर्क फ़ाइल साझाकरण प्रौद्योगिकियों में एक महत्वपूर्ण उन्नति के रूप में पहचाना जाता है।

प्रत्येक NFS संस्करण को नेटवर्क परिवेशों की बदलती आवश्यकताओं को पता करने के इरादे से विकसित किया गया है, सुरक्षा, संगतता, और प्रदर्शन को प्रगतिशील ढंग से बढ़ाते हुए।

गणना

उपयोगी nmap स्क्रिप्ट

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

उपयोगी मेटास्प्लॉइट मॉड्यूल

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

माउंटिंग

जानने के लिए कौन सी फोल्डर सर्वर माउंट करने के लिए उपलब्ध है, आप नीचे दिए गए कमांड का उपयोग कर सकते हैं:

showmount -e <IP>

फिर इसे माउंट करें:

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

आपको उसे संस्करण 2 का उपयोग करने के लिए निर्दिष्ट करना चाहिए क्योंकि इसमें कोई प्रमाणीकरण या अधिकारिकरण नहीं है।

उदाहरण:

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

अनुमतियाँ

यदि आप एक फ़ोल्डर माउंट करते हैं जिसमें कुछ उपयोगकर्ता द्वारा ही पहुंची जा सकने वाली फ़ाइलें या फ़ोल्डर होते हैं (द्वारा UID). आप उस UID के साथ स्थानीय रूप से एक उपयोगकर्ता बना सकते हैं और उस उपयोगकर्ता का उपयोग करके आप फ़ाइल/फ़ोल्डर तक पहुंच सकते हैं।

NSFShell

फ़ाइलों तक पहुंच प्राप्त करने के लिए UID और GID को स्विच करने और माउंट करने के लिए nfsshell का उपयोग कर सकते हैं।

Nice NFSShell tutorial.

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

खतरनाक सेटिंग्स

  • पढ़ने और लिखने की अनुमति (rw): यह सेटिंग फाइल सिस्टम से पढ़ने और लिखने दोनों की अनुमति देती है। इस तरह की व्यापक पहुंच देने के प्रभावों को ध्यान में रखना महत्वपूर्ण है।

  • असुरक्षित पोर्ट का उपयोग (insecure): जब यह सक्षम होता है, तो इसे सिस्टम को 1024 के ऊपर के पोर्ट का उपयोग करने की अनुमति होती है। इस सीमा के ऊपर के पोर्टों की सुरक्षा कम मजबूत हो सकती है, जिससे जोखिम बढ़ सकता है।

  • नेस्टेड फ़ाइल सिस्टम की दृश्यता (nohide): इस कॉन्फ़िगरेशन से निर्यातित निर्देशिकाओं को दिखाया जाता है भले ही किसी अन्य फ़ाइल सिस्टम को नीचे माउंट किया गया हो। प्रबंधन के लिए प्रत्येक निर्देशिका को अपना निर्यात प्रविष्टि चाहिए।

  • रूट फ़ाइल्स स्वामित्व (no_root_squash): इस सेटिंग के साथ, रूट उपयोगकर्ता द्वारा बनाई गई फ़ाइलें अपना मूल UID/GID 0 बनाए रखती हैं, उत्तम अधिकार के सिद्धांत को अनदेखा करती हैं और अत्यधिक अनुमतियों की संभावना हो सकती है।

  • सभी उपयोगकर्ताओं का स्क्वॉश न करना (no_all_squash): यह विकल्प सुनिश्चित करता है कि उपयोगकर्ता पहचानें पूरे सिस्टम में संरक्षित रहें, जो सही ढंग से संभाला नहीं गया हो तो अनुमति और पहुंच नियंत्रण समस्याओं का कारण बन सकता है।

NFS मिसकॉन्फ़िगरेशन का उपयोग करके विशेषाधिकार उन्नति

NFS no_root_squash और no_all_squash विशेषाधिकार उन्नति

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}
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!

Last updated