شکار باگ روی IIS؛ اون صفحهٔ آبی ته خط نیست
خلاصهٔ کاملتر
نویسنده این پست با نقلقول از یه دوستش شروع میکنه: «اگه یه صفحهٔ آبی IIS دیدی، همونجا وا نایست؛ حتماً یه چیزی هست.» به گفتهٔ نویسنده اون صفحهٔ پیشفرض ته خط نیست، چون پشتش یکی از پرتکرارترین وبسرورهای بدکانفیگِ اینترنت نشسته. کل پست یه راهنمای عملی از نگاه یه باگبانتیکاره برای نزدیک شدن به تارگتهای IIS.
اول بحث پیدا کردن این سرورهاست. نویسنده میگه با موتورهای جستوجوی دستگاه مثل Shodan و Censys و همینطور dork زدن تو گوگل میشه سرورهای IIS یه سازمان رو پیدا کرد؛ بعضی پوشهها و صفحههای .aspx هم نشونهٔ قطعیِ IIS هستن. برای تشخیص، هدرهای پاسخ خیلی گویان و برای مقیاس بالا ابزارهایی مثل httpx و nuclei رو پیشنهاد میده. یه ترفند کمتوجهشده هم اینه که با یه درخواست قدیمی HTTP/1.0 به سرورهای جلوی Exchange و OWA، گاهی IP و نام میزبان داخلی تو هدر پاسخ لو میره.
به گفتهٔ نویسنده یکی از دستکمگرفتهشدهترین تکنیکها «شمارش نام کوتاه» (tilde / 8.3 enumeration) ـه؛ یه رفتار قدیمی که از قرارداد نامگذاری ۸.۳ داس تو IIS مونده و اجازه میده حتی با directory listing خاموش، بخشی از اسم فایلها و پوشهها فاش شه. ابزاری مثل shortscan این کارو میکنه و بعد برای حدس ادامهٔ اسم، نویسنده روشهایی از پرسوجو تو دیتاست عمومی گیتهاب و BigQuery گرفته تا LLM و در نهایت brute-force رو مرور میکنه.
خط قرمز اصلی فایل web.config ـه. نویسنده میگه اگه بتونی این فایل رو بخونی، عملاً کل تارگت رو بردی، چون اغلب machine keyها توش هست — همون کلیدهایی که ViewState رو امضا و رمز میکنن. با اون کلیدها میشه یه ViewState دستکاریشده ساخت و از طریق آسیبپذیری deserialization به اجرای کد از راه دور (RCE) رسید (ابزار ysoserial.net برای همینه). یه ترفند دیگه هم سوءاستفاده از قابلیت قدیمی cookieless session برای بیرون کشیدن DLLهای پوشهٔ bin و بعد decompile کردنشون با dnSpy ـه، که رمز و کلید API هاردکدشده رو لو میده.
چند تکنیک دور زدن دیگه هم نام برده میشه: «سردرگمی مسیر» پشت reverse proxy که بهخاطر اختلاف نرمالسازی مسیر، کنترل دسترسی رو دور میزنه؛ دور زدن احراز هویت با سوءاستفاده از استریمهای متادیتای فایلسیستم NTFS روی نسخههای قدیمی IIS؛ ترفندهای آپلود فایل، چون IIS خیلی پسوندها رو بهصورت text/html سرو میکنه و نقطههای انتهایی اسم فایل رو حذف میکنه؛ و دور زدن WAF با HTTP Parameter Pollution، چون IIS مقدار پارامترهای تکراری رو با کاما به هم میچسبونه.
جمعبندی نویسنده اینه که attack surface سرورهای IIS خیلی گسترده ولی مدام کمآزمودهست؛ همه دنبال باگ آخرین فریمورک جاوااسکریپتن و این باکسهای ویندوزی همونجا نشستن و کانفیگ و IP داخلیشونو لو میدن. برای دفاع هم خاموش کردن shortname enumeration، بستن اندپوینتهای دیباگ مثل trace.axd و elmah.axd، و محافظت جدی از web.config و machine keyها مهمه.
نکات کلیدی:
- به گفتهٔ نویسنده صفحهٔ پیشفرض IIS اغلب نشونهٔ یه سرور بدکانفیگ و کمآزمودهست، نه ته خط.
- تکنیک شمارش نام کوتاه ۸.۳ میتونه اسم فایلها رو حتی با directory listing خاموش فاش کنه.
- خوندن web.config و بهدستآوردن machine keyها میتونه از طریق deserialization ViewState به RCE برسه.
- برای دفاع: خاموش کردن shortname enumeration، بستن trace.axd/elmah.axd و محافظت از فایلهای کانفیگ و کلیدها.




