hacktricks/network-services-pentesting/nfs-service-pentesting.md
Translator workflow 75e8745ba3 Translated to Hindi
2023-11-06 08:38:02 +00:00

17 KiB

2049 - NFS सेवा का पेंटेस्टिंग

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

मूलभूत जानकारी

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

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

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

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

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

संस्करण

(स्रोत: https://academy.hackthebox.com/module/112/section/1068)

संस्करण विशेषताएं
NFSv2 यह पुराना है लेकिन इसे कई सिस्टमों द्वारा समर्थित किया जाता है और इसे पहले पूरी तरह से UDP पर संचालित किया जाता था।
NFSv3 इसमें अधिक विशेषताएं हैं, जिसमें चरणीय फ़ाइल आकार और बेहतर त्रुटि रिपोर्टिंग शामिल है, लेकिन यह NFSv2 क्लाइंटों के साथ पूरी तरह संगत नहीं है।
NFSv4 इसमें Kerberos शामिल है, यह फ़ायरवॉल के माध्यम से और इंटरनेट पर काम करता है, अब पोर्टमैपर की आवश्यकता नहीं होती है, ACLs का समर्थन करता है, स्थिति-आधारित आपरेशन लागू करता है, और प्रदर्शन में सुधार करता है और उच्च सुरक्षा प्रदान करता है। यह एक स्थितिप्रद संचार प्रोटोकॉल होने का पहला संस्करण भी है।

जांच

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

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

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

Metasploit में कई मॉड्यूल्स हैं जो NFS सेवा के पेंटेस्टिंग के लिए उपयोगी हो सकते हैं। यहां कुछ महत्वपूर्ण मॉड्यूल्स हैं:

  • auxiliary/scanner/nfs/nfsmount: यह मॉड्यूल NFS सर्वर के लिए माउंट प्रदान करता है और उपयोगकर्ताओं की जानकारी को प्राप्त करने के लिए उपयोगी हो सकता है।

  • auxiliary/scanner/nfs/nfsenum: यह मॉड्यूल NFS सर्वर पर उपयोगकर्ताओं, शेयर और अन्य विवरणों की जांच करने के लिए उपयोगी हो सकता है।

  • auxiliary/scanner/nfs/nfs_showmount: यह मॉड्यूल NFS सर्वर पर उपयोगकर्ताओं और शेयरों की जांच करने के लिए उपयोगी हो सकता है।

  • exploit/linux/nfs/nfs_mountd: यह मॉड्यूल NFS सर्वर पर एक अनुरोध को उपयोग करके एक शेयर को माउंट करने के लिए उपयोगी हो सकता है।

  • exploit/linux/nfs/nfsd: यह मॉड्यूल NFS सर्वर पर एक अनुरोध को उपयोग करके एक शेयर को अनुमति देने के लिए उपयोगी हो सकता है।

ये मॉड्यूल्स आपको NFS सेवा के पेंटेस्टिंग में मदद कर सकते हैं।

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 का उपयोग कर सकते हैं।

अच्छा NFSShell ट्यूटोरियल।

कॉन्फ़िग फ़ाइलें

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

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

(स्रोत: https://academy.hackthebox.com/module/112/section/1068)

विकल्प विवरण
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: |
It is a client/server system that allows users to access files across a network and treat them as if they resided in a local file 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}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥