
- بواسطة x32x01 ||
ثغرة بسيطة في IIS كشفت ملفات ويندوز - شرح بلغة بسيطة ومباشرة 
فيه ثغرة بسيطة ظهرت بسبب إعداد غلط في سيرفر IIS، وكانت نتيجتها إن أي حد يقدر يطلب ملف نظام من السيرفر عن طريق URL زي المثال ده:https://anywebsite.com/c:/Windows/Win.ini
اللينك ده بيورّي مشكلة: السيرفر سامح بإن المسار الخارجي (drive path) يتكلّم مع الـweb root ويعرض ملفات نظام حسّاسة - وده خطر كبير لو السيرفر مش متحكّم في الفلاتر أو صلاحيات الملفات.
إيه المشكلة ؟
- السيرفر مهيّأ بطريقة بتسمح بقراءة ملفات موجودة على النظام (مش لازم تحت مجلد الموقع).
- لما حد يقدر يجيب ملفات زي C:\Windows\Win.ini يبقى فعليًا بيطلع معلومات عن النظام، وده ممكن يقود لهجمات أكبر بعدين.
- السبب عادة: misconfiguration في IIS (virtual directories، URL canonicalization، أو سماح بطرق ربط مسارات خارجة عن الـwebroot).
ليه دي خطيرة؟
- كشف ملفات النظام أو ملفات الكونفيج ممكن يطلع كلمات سر أو مفاتيح أو معلومات بنية الشبكة.
- استغلال بسيط ممكن يقود لتسريب بيانات أو تصعيد صلاحيات أو حتى تنفيذ أوامر لو في ثغرات تانية مرتبطة.
- الخلاصة: حتى خطأ صغير في إعدادات السيرفر ممكن يفتح باب كبير للمهاجمين.
خطوات اختبار سريعة على بيئة تجريبية:
- جهّز سيرفر IIS محلي أو VM علشان تجرب.
- حاول تزود المسار في الـURL زي المثال:
https://testsite.local/c:/Windows/Win.ini
- لو ظهر محتوى الملف أو ردّ مختلف عن 404، يبقى فيه مشكلة.
- جرّب كمان مسارات تانية (مثل ملفات config، أو مجلدات خارج الـwebroot).
إزاي تصلّح الخلل؟ - خطوات عملية سريعة
إعدادات سريعة في IIS
- اقفل Directory Browsing لو مفعل.
- اتأكد إن الـvirtual directories ما بتسمحش بربط مسارات من غير تحقّق.
- استخدم Request Filtering علشان تمنع نماذج URL اللي فيها نقاط أو أحرف مش متوقعة أو نمط c:/*.
- تأكد إن صلاحيات الملفات على النظام (NTFS permissions) مضبوطة: حساب الـAppPool لازم يكون ليه أقل صلاحيات ممكنة.
حماية عبر web.config
ضمّن قواعد تمنع الوصول لملفات النظام أو المسارات اللي مش ضمن الـwebroot. مثال (بشكل مبسّط): XML:
<system.webServer>
<security>
<requestFiltering>
<!-- منع أي URL يحتوي على نمط drive letter -->
<denyUrlSequences>
<add sequence="c:/" />
<add sequence="C:/" />
</denyUrlSequences>
</requestFiltering>
</security>
</system.webServer>
إضافات ونصايح
- حدّث IIS وWindows لآخر الباتشات.
- راجع الـlogs دوريًا علشان تكتشف محاولات استدعاء ملفات غريبة.
- استخدم WAF (Web Application Firewall) يقدر يفلتر أنماط الاستغلال دي.
- اختبر أمان بيئتك بانتظام (pentest) وخليك متابع لنتائج السكَننج.
خلاصة سريعة - Checklist علشان تحمي سيرفر IIS
- أقف Directory Browsing
- فعّل Request Filtering ومنع c:/ وأنماط مش طبيعية
- اضبط صلاحيات AppPool وملفات النظام (Least Privilege)
- حدّث السيرفر والـOS بالباتشات الأمنية
- ركب WAF ومراقبة للـlogs
- اعمل اختبارات أمنية دورية وPenTest
التعديل الأخير: