پنجره باز به روی فایلهای محرمانه!
وقتی هارد دیسک پهنه، حریم خصوصی چیه!
⬅️ببین رفیق، تو دنیای لینوکس و یونیکس، یه پروتکل خیلی قدیمی و پرکاربرد داریم به اسم NFS (Network File System) که معمولاً روی پورت TCP 2049 میشینه. کارش چیه؟ کارش اینه که یه پوشه رو تو شبکه به اشتراک بذاره تا بقیه بتونن جوری بهش وصل بشن که انگار اون پوشه روی هارد خودشونه.
مشکل کجاست؟ مشکل اینه که اگه ادمین شبکه این پروتکل رو درست کانفیگ نکنه (که خیلی وقتا نمیکنه!)، این “پوشه اشتراکی” میشه یه دروازه باز برای من و تو که بریم توش بگردیم، فایلها رو کپی کنیم، یا حتی فایلهای سیستمی رو دستکاری کنیم. به این کار میگن NFS Enumeration.
خیلی وقتها اصلا رمز عبوری در کار نیست؛ فقط چک میکنه ببینه IP تو مجازه یا نه. اگه IP تو لیست باشه (یا لیستش برای همه باز باشه)، دیگه تمومه!
🤗چی گیرمون میاد؟ (گنجینه اطلاعات)
اگه بتونیم NFS رو Enumerate کنیم، به اینا میرسیم:
- لیست اشتراکها (Shares): دقیقاً چه پوشههایی تو شبکه ول هستن.
- مجوزهای دسترسی: کی میتونه بخونه؟ کی میتونه بنویسه؟ (اگه
rwباشه که نور علی نوره!). - نسخه NFS: اگه ورژن قدیمی باشه، پر از باگه.
- فایلهای حساس: دیتابیسها، بکاپها، فایلهای کانفیگ و شاید کلیدهای SSH.
🕵️♀️جعبهابزار هکرها (دستورات و ابزارهای Enumerate)
خب بریم سراغ کار عملی. فرض کن IP تارگت ما <target-IP> هست.
۱. آچار فرانسه شبکه: Nmap
اول چک میکنیم پورت بازه و بعدش با اسکریپتها میریم تو کارش.
الف) اسکن پورت:
nmap -p 2049 -sV target-IP
ب) استخراج اطلاعات با اسکریپتهای Nmap:
انمپ اسکریپتهای مخصوص NFS داره که کار رو خیلی راحت میکنه:
nmap -p 2049 –script nfs-ls,nfs-showmount,nfs-statfs target-IP
nfs-showmount: لیست پوشههای اشتراکی رو نشون میده (معادل دستور showmount).nfs-ls: اگه دسترسی داشته باشه، محتویات داخل اون پوشهها رو لیست میکنه.nfs-statfs: چقدر فضا داره و وضعیتش چیه.
۲. ابزار کلاسیک: showmount
این ابزار سادهترین راهه برای اینکه ببینی سرور چی رو به اشتراک گذاشته.
showmount -e target-IP
خروجی این دستور معمولاً یه لیست میده مثل این:
/home/backup * (یعنی پوشه بکاپ برای همه دنیا بازه!).
۳. کارآگاه سرویسها: rpcinfo
چون NFS بر پایه RPC (Remote Procedure Call) کار میکنه، با این ابزار میتونی بفهمی چه سرویسهای RPC و چه ورژنهایی فعالن.
rpcinfo -p target-IP
اگه دیدی mountd و nfs تو لیست هستن، یعنی راه بازه.
۴. فریمورک متاسپلویت (Metasploit)
متاسپلویت هم ماژول آماده داره که اسکن میکنه ببینه چی گیرش میاد.
use auxiliary/scanner/nfs/nfsmount set RHOSTS target-IP run
۵. اتصال نهایی: mount (دسترسی فیزیکی به فایلها)
وقتی فهمیدی چه پوشهای بازه (مثلاً /share)، حالا باید اون رو روی سیستم خودت سوار (Mount) کنی تا بتونی فایلهاش رو ببینی و دستکاری کنی.
# اول یه پوشه خالی بساز
mkdir /mnt/target_nfs
# حالا مونت کن
sudo mount -t nfs target-IP:/share /mnt/target_nfs
حالا برو تو /mnt/target_nfs و هر کاری دلت میخواد بکن!
مراحل عملیاتی (از صفر تا صد)
- شناسایی: اول ببینیم پورت ۲۰۴۹ بازه؟
nmap -p 2049 -sV target-IP
کشف اشتراکها: ببینیم چه پوشههایی رو حراج کرده.
showmount -e target-IP
بررسی دقیقتر: با rpcinfo ببینیم وضعیت سرویسها چطوره.
rpcinfo -p target-IP
نفوذ (Mounting): وصل شو به اشتراک و فایلها رو بردار.
sudo mount -t nfs target-IP:/share /mnt
تحلیل: فایلها رو بگرد دنبال پسورد، کلید SSH یا هر چیز باارزشی.
🔖خطرات و حملات بعدی
- دسترسی غیرمجاز: خوندن فایلهای محرمانه شرکت.
- Privilege Escalation: یه ترفند معروف هست به اسم Root Squashing. اگه بتونی فایل سیستم رو مونت کنی و فایل خودت رو با مجوز
SUIDکپی کنی اون تو، میتونی رو سیستم اصلی دسترسی root بگیری! - Man-in-the-Middle: چون NFS رمزنگاری نداره، وسط راه میشه دیتا رو دزدید.
😎دیوارهای دفاعی (چطور امنش کنیم؟)
- محدودیت دسترسی: تو فایل
/etc/exportsدقیق مشخص کن فقط IPهای خاصی بتونن وصل بشن. ستاره*نذار! - NFSv4: از ورژن ۴ استفاده کن که امنیت و احراز هویت بهتری داره.
- مجوزهای Read-Only: اگه کاربرا فقط نیاز به خوندن دارن، حتماً
ro(Read-only) ست کن، نهrw. - Root_Squash: این قابلیت رو فعال کن تا کسی نتونه با دسترسی root به فایلها وصل بشه.
- فایروال: پورت ۲۰۴۹ رو از اینترنت ببند. فقط شبکه داخلی باید ببینه.