شرح RPC , NFS وازاي بيشتغلوا سوا , وازاي هيفيدك كاريد تيمر , وازاي تحمي السيستم لو انت Blue team
أولًا: RPC – Remote Procedure Call
ببساطة، RPC بيسمحلك تبعت أمر يتنفذ على جهاز تاني كأنك بتشغله عندك
الجميل هنا إنك مش محتاج تكون فاهم إزاي بيتنفذ الأمر من جوه، أنت بس بتبعت الطلب، والسيرفر يرد
في Linux، المسؤول عن تنظيم الكلام ده هو خدمة اسمها rpcbind (أو portmapper)
ودي بتشتغل على بورت 111 وبتحتفظ بقائمة بكل خدمة RPC شغالة والبورت اللي بتستخدمه
يعني لو عايز توصل لخدمة زي NFS، لازم الأول تسأل rpcbind: "هي شغالة فين؟"
ثانيًا: NFS – Network File System
NFS بتخلي جهاز Linux يشارك فولدر معين، وجهاز تاني يقدر يركبه ويتعامل معاه كأنه جزء من نظام ملفاته
التركيب (mount) بيتم من خلال أمر بسيط، وبعدين تقدر تقرا، تكتب، تنفذ حسب الصلاحيات اللي السيرفر مديهالك
المشاركة بتتم من خلال ملف إعدادات السيرفر (/etc/exports)، وفيه بيتم تحديد:
المسار المشترك
الأجهزة اللي تقدر تشوفه
الصلاحيات (read/write، squash، وغيرها)
إزاي RPC وNFS بيشتغلوا مع بعض؟
١. العميل بيكلم rpcbind على بورت 111
٢. rpcbind بيرد عليه بالبورت اللي NFS شغالة عليه
٣. العميل يبدأ يتعامل مع mountd و nfsd
٤. بيتم تركيب الفولدر المشترك
٥. العميل يتعامل معاه كأن الفولدر محلي
الموضوع بسيط جدًا… لكن لو الـ config مش مضبوط، بيفتحلك أبواب كبيرة
كـ Red Teamer أو Pentester، ده هيفيدك في إيه؟
▪️ الاستكشاف (Enumeration):
rpcinfo -p [target]: يعرض كل الخدمات والبورتات المسجلة في rpcbind
showmount -e [target]: يعرض الفولدرات المتاحة للمشاركة عبر NFS
▪️ Mount بدون صلاحيات:
لو السيرفر مش عامل تحقق على IP أو عامل Export بشكل عام، ممكن تركب الفولدر عندك بالأمر:
sudo mount -t nfs [target]:/share /mnt/share
▪️ سحب ملفات حساسة:
غالبًا بتلاقي فولدرات فيها:
سكريبتات cron
ملفات bash history
مفاتيح SSH
إعدادات قواعد بيانات
▪️ Privilege Escalation:
لو السيرفر بيستخدم no_root_squash، وراكب الفولدر كـ root:
ارفع SUID binary من جهازك
شغّله من السيرفر
تاخد root بسهولة
▪️ Lateral Movement:
الفولدرات المشتركة تعتبر وسيلة صامتة لنقل أدواتك أو ملفاتك من جهاز لجهاز
مش هتحتاج FTP أو SSH… وأغلب IDS مش بيراقب حركة NFS بشكل دقيق
▪️ UID Spoofing:
لو السيرفر بيمنح الصلاحيات بناءً على UID، تقدر تعمل يوزر بنفس الـ UID عندك، وتاخد نفس صلاحياته على الفولدر
أدوات مفيدة
rpcinfo, showmount, mount
nmap (بـ scripts زي: rpcinfo, nfs-ls, nfs-showmount)
tcpdump أو Wireshark لمراقبة الترافيك بين الأجهزة
سيناريوهات حصلت فعلًا
▪️ فولدر فيه سكريبت بيشتغل كل دقيقة (cron job)، اتعدل وبقي ينفذ أوامر
▪️ Backup قديم فيه secrets مخزنة في ملفات .env
▪️ سيرفر Dev شغال بمفاتيح SSH مكشوفة في فولدر مشترك
▪️ نُسخ shadow/passwd محفوظة بالخطأ في فولدر متاح للكل
▪️ نُفذت أدواتك على أكتر من جهاز من غير ما تنقلها بإيدك، بس من فولدر NFS واحد
ولو إنت Blue Teamer
ماتسيبش أي فولدر مشترك من غير تحديد IP أو Subnet
استخدم ro بدل rw، وفعّل all_squash قدر الإمكان
ماتستخدمش no_root_squash إلا للضرورة القصوى
راقب أي عملية mount أو تعديل من خلال logs زي /var/log/syslog
اقفل بورتات 111 و2049 من الفايروول إلا لو فيه حاجة محتاجاهم
#Sen00oo
حساباتي على منصات التواصل:
💰 للدعم المادي:
sen00oo@instapay
01272834923