جدول المحتويات
اختبار الاختراق (الاختبار الاختراقي) لبروتوكول نقل الملفات (FTP) يتضمن تقييم واستغلال الثغرات الأمنية داخل خادم FTP للحصول على وصول غير مصرح به أو تصعيد الصلاحيات. لإجراء اختبار اختراق فعال لخدمات FTP، ستحتاج إلى فهم عمليات FTP، والإعدادات الخاطئة الشائعة، ونقاط الضعف. فيما يلي دليل شامل يغطي التعداد، والاستغلال، وحيل مختلفة يمكنك استخدامها.
فهم أساسيات FTP
FTP هو بروتوكول يستخدم لنقل الملفات عبر الشبكة. يعمل على منفذين رئيسيين:
- المنفذ 21 (الأوامر): يتعامل مع اتصالات الأوامر/التحكم.
- المنفذ 20 (البيانات): يستخدم لنقل البيانات في الوضع النشط.
قائمة التحقق لاختبار اختراق FTP
تعداد خدمة FTP:
- استخدم Nmap وجلب البانر.
- تحقق من تسجيل الدخول المجهول.
- استكشف مجلدات FTP.
اختبار الثغرات الأمنية الشائعة:
- هجوم القوة الغاشمة على بيانات الاعتماد.
- تحميل ملفات ضارة.
- ابحث عن ثغرات اجتياز المجلدات.
البحث عن ثغرات معروفة:
- تحديد إصدار البرنامج.
- استخدم exploit-db أو Metasploit.
تصعيد الصلاحيات:
- ابحث عن ملفات حساسة.
- استخدم ثغرات محلية.
ما بعد الاستغلال:
- احتفظ ببيانات الاعتماد.
- ابحث عن فرص للتحويل.
أوامر FTP الشائعة
الأمر | الوصف | الاستخدام |
---|---|---|
lcd | تغيير المجلد المحلي. | lcd /مسار/إلى/المجلد |
cd | تغيير مجلد الخادم. | cd /مسار/إلى/المجلد |
ls | سرد ملفات مجلد الخادم. | ls |
get | تنزيل ملف من الخادم. | get اسم_الملف.txt |
mget | تنزيل عدة ملفات. | mget *.txt |
put | تحميل ملف إلى الخادم. | put اسم_الملف.txt |
mput | تحميل عدة ملفات. | mput *.txt |
bin | تعيين وضع النقل الثنائي. | bin |
ascii | تعيين وضع نقل ASCII. | ascii |
quit | الخروج من عميل FTP. | quit |
تنزيل جميع الملفات من FTP
wget -m ftp://anonymous:anonymous@عنوان_IP_الضحية
wget -m --no-passive ftp://anonymous:anonymous@عنوان_IP_الضحية
إذا كان اسم المستخدم/كلمة المرور يحتويان على أحخاص خاصة:
wget -r --user="اسم_المستخدم" --password="كلمة_المرور" ftp://عنوان_IP_الضحية/
تعداد FTP
اكتشاف الخدمة
الخطوة الأولى في اختبار اختراق FTP هي تحديد ما إذا كانت الخدمة تعمل على الجهاز الهدف. يمكنك استخدام أدوات المسح الشبكي مثل Nmap لاكتشاف خدمات FTP.
nmap -p 21 -sV <عنوان-IP-الهدف>
-p 21
يمسح المنفذ 21 حيث يعمل FTP عادةً.-sV
يكتشف إصدار خدمة FTP.
نص Nmap لتعداد FTP
يحتوي Nmap على عدة نصوص مفيدة لتعداد FTP:
nmap --script "ftp*" -p 21 <عنوان-IP-الهدف>
هذا الأمر يشغل جميع النصوص المتعلقة بـ FTP ضد الهدف.
تسجيل الدخول المجهول
غالبًا ما تسمح خوادم FTP بتسجيل الدخول المجهول، مما قد يؤدي إلى وصول غير مصرح به.
اختبر تسجيل الدخول المجهول:
ftp <عنوان-IP-الهدف>
حاول تسجيل الدخول باسم المستخدم anonymous
وكلمة مرور فارغة أو أي سلسلة عشوائية. إذا نجحت، فهذا يعني أن الخادم يسمح بالوصول المجهول، والذي يمكن استخدامه لتصفح أو تحميل أو تنزيل الملفات حسب الصلاحيات.
جلب البانر
يساعد جلب البانر في تحديد إصدار البرنامج الذي يعمل على الخادم. بمجرد التعرف عليه، يمكنك البحث عن ثغرات محددة تتعلق بهذا الإصدار.
telnet <عنوان-IP-الهدف> 21
ابحث عن معلومات الإصدار في البانر. إذا كان البانر مخفيًا، يمكن أيضًا استخدام أدوات مثل Netcat:
nc -v <عنوان-IP-الهدف> 21
ثغرة اجتياز المجلدات
قد تسمح الإعدادات الخاطئة لـ FTP بالتنقل خارج المجلد المخصص. حاول التنقل إلى مجلدات أعلى باستخدام cd ..
. إذا تمكنت من الوصول إلى ملفات النظام مثل /etc/passwd
، فهذا يشير إلى وجود ثغرة اجتياز مجلدات.
الاستغلال
بمجرد جمع المعلومات من التعداد، تكون الخطوة التالية هي الاستغلال. فيما يلي بعض ثغرات FTP الشائعة التي يمكنك استغلالها.
هجوم القوة الغاشمة (الـ Brute Force)
إذا لم يكن الوصول المجهول مسموحًا به، يمكنك محاولة هجوم القوة الغاشمة لتخمين بيانات اعتماد FTP. Hydra أداة شائعة لهذا الغرض:
hydra -l <اسم_المستخدم> -P /مسار/إلى/قائمة_كلمات_المرور.txt ftp://<عنوان-IP-الهدف>
-l
يحدد اسم المستخدم.-P
يحدد ملف قائمة كلمات المرور.
تأكد من تقليل عدد المحاولات لتجنب الكشف من قبل الهدف.
استغلال الصلاحيات الضعيفة
إذا سمح خادم FTP بتحميل الملفات وتنفيذها، يمكنك تحميل نصوص أو ملفات تنفيذية ضارة (مثل PHP أو Python) للوصول إلى النظام.
الخطوات:
- حمّل شل عكسي إلى خادم FTP.
- أضف مستمعًا على جهازك لالتقاط الاتصال.
- نفذ نص الشل من مجلد FTP (إذا كان مسموحًا).
على سبيل المثال، باستخدام Netcat:
nc -lvnp 4444
حمّل نص شل عكسي إلى الخادم ونفذه للحصول على اتصال.
الإعدادات الخاطئة وبيانات الاعتماد الافتراضية
تحقق مما إذا كان خادم FTP يستخدم بيانات اعتماد افتراضية. العديد من خدمات FTP تأتي بأسماء مستخدمين وكلمات مرور افتراضية. راجع قوائم بيانات الاعتماد الافتراضية لبرامج FTP الشهيرة مثل ProFTPD أو vsftpd أو FileZilla.
الإصدارات الضعيفة من البرامج
بمجرد تحديد إصدار برنامج خادم FTP، ابحث عن الثغرات والاستغلالات المعروفة. Exploit-DB مصدر رائع لهذا الغرض. ابحث عن CVE المتعلقة ببرنامج وإصدار خادم FTP.
على سبيل المثال، يحتوي vsftpd 2.3.4 على ثغرة خلفية مشهورة (CVE-2011-2523).
ابحث عن الاستغلالات المتاحة:
searchsploit vsftpd 2.3.4
سيوفر هذا مسارات استغلال محتملة، مثل تحميل ملف خلفي أو الاستفادة من بيانات الاعتماد الافتراضية.
تصعيد الصلاحيات وما بعد الاستغلال
بمجرد الحصول على الوصول، تكون الخطوة التالية هي تصعيد الصلاحيات، حيث تهدف إلى زيادة صلاحياتك على النظام لتصبح مسؤولاً أو root.
تصعيد الصلاحيات عبر إعدادات FTP الخاطئة
إذا تمكنت من الوصول إلى ملفات النظام الحساسة مثل /etc/passwd
عبر FTP، فقد تتمكن من تصعيد صلاحياتك عن طريق تعديل الملفات أو إنشاء مستخدمين جدد أو جمع معلومات قيمة مثل تجزئات كلمات المرور.
استخدام الثغرات المحلية
إذا سمحت خدمة FTP بتحميل الملفات، يمكنك تحميل نصوص تصعيد صلاحيات محلية إلى الخادم. ابحث عن ثغرات kernel التي تطابق إصدار نظام الهدف.
مثال:
- حمّل ثغرة محلية إلى خادم FTP.
- استخدم الثغرة لتصعيد الصلاحيات بمجرد تنفيذها.
التقاط بيانات الاعتماد
إذا كان خادم FTP يسجل نشاط المستخدم، فقد تتمكن من استرداد بيانات الاعتماد بنص عادي من ملفات السجل. ابحث عن سجلات تتعلق بالمصادقة أو بيانات الجلسة.
استخدم grep
للبحث عن سلاسل محددة في ملفات السجل:
grep -i "user" /var/log/auth.log
ابحث عن كلمات المرور المخزنة أو رموز الجلسة التي يمكن استخدامها لمزيد من الوصول.
تجاوز الجدران النارية والمرشحات
بعض خوادم FTP مُهيأة بجدران نارية أو مرشحات تمنع الاستغلال المباشر. فيما يلي بعض التقنيات لتجاوزها:
الوضع النشط مقابل الوضع السلبي
يعمل FTP في وضعين: النشط والسلبي. إذا تم حظر أحد الوضعين بواسطة جدار ناري، يمكنك محاولة تبديل الأوضاع.
- الوضع النشط: يفتح العميل منفذًا ليتصل به الخادم.
- الوضع السلبي: يفتح الخادم منفذًا ليتصل به العميل.
استخدم الأمر passive
في عملاء FTP إذا كان الوضع النشط محظورًا.
نفق حركة FTP
يمكنك نفق حركة FTP عبر SSH أو استخدام خوادم وكيلة لتجاوز الجدران النارية. هذا مفيد عند التعامل مع بيئات آمنة.
مثال لنفق FTP عبر SSH:
ssh -L 2121:<عنوان-IP-الهدف>:21 user@<عنوان-IP-خادم-SSH>
هذا الأمر يحول منفذك المحلي 2121 إلى منفذ 21 على الخادم الهدف، مما يسمح لك بتجاوز قيود الشبكة.
أدوات اختبار اختراق FTP
فيما يلي قائمة بالأدوات الشائعة المستخدمة في اختبار اختراق FTP:
- Nmap: للمسح الضوئي للمنافذ وتعداد الخدمات.
- Hydra: لهجمات القوة الغاشمة على بيانات اعتماد FTP.
- Metasploit: يحتوي على وحدات لاستغلال FTP.
- Netcat: لجلب البانر والأصداف العكسية.
- Searchsploit: للعثور على الاستغلالات المتاحة.
- Wireshark: لالتقاط وتحليل حركة FTP.
- Burp Suite: يمكن استخدامه لاعتراض حركة FTP إذا تم استخدام الوكيل.