آسیب پذیری‌ها

آسیب‌پذیری بحرانی اجرای کد از راه دور (RCE) در DNS Server های ویندوزی
۲۶ تیر ۱۳۹۹
تعداد بازدید: 0

آسیب‌پذیری بحرانی اجرای کد از راه دور (RCE) در DNS Server های ویندوزی


ژوئیه ۲۰۲۰

محققین شرکت Chek Point به تازگی از یک آسیب‌پذیری بحرانی که خاصیت «کرم‌گونه» دارد و در استاندارد CVSS امتیاز ۱۰ از ۱۰ را به خود اختصاص داده است، پرده برداشتند. این آسیب‌پذیری، ویندوز سرورهای ۲۰۰۳ تا ۲۰۱۹ را تحت تأثیر قرار داده است. آسیب‌پذیری مذکور که ۱۷ سال قدمت دارد، با شناسه مرجع CVE-2020-1350 به ثبت رسیده است و توسط محققین Check Point اصطلاحاً “SigRed” نامگذاری شده است. آسیب‌پذیری SigRed به یک مهاجم راه دور احراز هویت نشده این اجازه را می‌دهد که دسترسی خود را تا سطح Domain Administrator در سیستم‌های هدف ارتقاء داده و کنترل کامل زیرساخت شبکه را در اختیار گیرد.

روش حمله به این صورت است که مهاجم با ارسال جستار‌های مخرب DNS به یک DNS Server ویندوزی از آسیب‌پذیری SigRed سوءاستفاده نموده و با اجرای کد دلخواه خود از راه دور قادر دستکاری ترافیک شبکه، از دسترس خارج کردن سرویس‌ها، استخراج اطلاعات حساب‌های کاربری و … خواهد بود.

Sagi Tzadik محقق امنیتی Check Point در یک گزارش تفصیلی به این موضوع اشاره نمود که آسیب‌پذیری SigRed خاصیت کرم‌گونه دارد. بدین معنی که در صورت موفقیت‌آمیز بودن این حمله، بدون دخالت کاربر به سایر سیستم‌های آسیب‌پذیر نیز سرایت خواهد نمود. وی افزود: یک اکسپلویت واحد می‌تواند یک واکنش زنجیره‌ای را آغاز کند که این موضوع بدون دخالت کاربر منجر به انتشار حمله از دستگاه آسیب‌پذیر به سایر دستگاه‌ها خواهد شد. بنابراین دستگاهی که مورد حمله قرار گرفته فوق‌العاده منتشر‌کننده خواهد بود و در عرض چند دقیقه منجر به انتشار سریع حمله در تمام سطح شبکه خواهد شد.

بلافاصله پس از گزارش این آسیب‌پذیری، مایکروسافت وصله امنیتی آن را در به‌روزرسانی هفتگی خود در سه‌شنبه هفته جاری که شامل ترمیم ۱۲۲ آسیب‌پذیری (۱۸ مورد بحرانی و ۱۰۵ مورد مهم) دیگر نیز بود ارائه نمود. بنا بر اعلام مایکروسافت، تاکنون هیچ مدرکی مبنی بر سوءاستفاده مهاجمین از این آسیب‌پذیری وجود نداشته و به تمام کاربران توصیه می‌گردد که بلافاصله وصله‌های امنیتی را نصب نمایند. به نقل از مایکروسافت، سرور DNS از اجزای اصلی شبکه است. هرچند در حال حاضر مشخص نیست که از این آسیب‌پذیری در حملات فعال استفاده شود اما برای رفع هرچه سریع‌تر این آسیب‌پذیری، ضروری است که به‌روزرسانی‌های ویندوز اعمال گردند.

ایجاد پاسخ‌های مخرب DNS

محققان Check Point با بیان اینکه آسیب‌پذیری مذکور به یک مهاجم احراز هویت نشده این اجازه را می‌دهد که یک Domain ویندوزی را به خطر بیندازد، اعلام نمودند که به طور ویژه بر روی DNS ویندوز متمرکز شده‌اند و با نگاهی دقیق‌تر به بررسی نحوه ترجمه جستارهای وارده توسط سرور DNS و یا پاسخ سرور هنگام ارسال جستارها می‌پردازند. هنگامی که یک سرور DNS نتواند آدرس‌های آی‌پی را برای یک نام دامنه خاص ترجمه کند، سرور شروع به ارسال کوئری به سایر سرورهای DNS می‌کند.

برای سوءاستفاده از این ساختار، SigRed رکوردهای NS مربوط به یک دامنه (مثلا “deadbeef.fun”) را به گونه‌ای پیکربندی می‌کند که به یک سرور مخرب اشاره کند (برای مثال “ns1.41414141.club”). سپس سرور DNS هدف را برای آن دامنه خاص جستجو می‌کند تا پاسخ‌های ترجمه شدی بعدی از NS را برای سایر جستارهای مرتبط با دامنه و زیردامنه‌های متعلق به آن، در اختیار داشته باشد.

با استفاده از این تمهیدات، مهاجم می‌تواند اقدام به ایجاد یک باگ از نوع سرریز عدد صحیح (Integer Overflow) نموده که پاسخ‌های دریافتی را برای ارسال جستارها (“dns.exe!SigWireRead”) ترجمه نموده تا پاسخ DNS را که حاوی رکورد SIG با حجم بزرگتر از ۶۴ کیلوبایت می‌باشد ارسال نماید و یک آسیب‌پذیری سرریز بافر با حجم تقریباً ۶۴ کیلوبایت را در یک بافر کوچکتر قرار دهد. آسیب‌پذیری مذکور در واقع تابع مسئول اختصاص حافظه به رکورد منبع (“RR_AllocateEx”) را برای تولید حاصلی بزرگتر از ۶۵٫۵۳۵ بایت هدف قرار داده است تا منجر به ایجاد باگ سرریز عدد صحیح و تخصیص حافظه به مقدار بسیار کمتر از حد انتظار گردد.

اما طبق تحقیقات صورت گرفته، در شرایطی که یک پیغام DNS به اندازه ۵۱۲ بایت در قالب پروتکل UDP (یا ۴۰۹۶ بایت در صورت پشتیبانی سرور) و ۶۵٫۵۳۵ بایت در قالب پروتکل TCP باشد، یک پاسخ SIG با امضای طولانی به تنهایی برای ایجاد آسیب‌پذیری کافی نخواهد بود. برای دستیابی به این هدف، حمله به طرز هوشمندانه‌ای از فشرده‌سازی نام DNS در پاسخ‌های آن استفاده می‌کند تا با استفاده از روش فوق، یک سرریز بافر ایجاد نموده و اندازه تخصیص را به میزان قابل توجهی افزایش دهد.

سوءاستفاده از آسیب‌پذیری از راه دور

آسیب‌پذیری SigRed را می‌توان از راه دور و تحت شرایطی خاص از طریق مرورگر ایجاد کرد. (برای مثال اینترنت اکسپلورر و مروگر Edge که مبتنی بر کرومیوم نباشد.) این شرایط به مهاجم اجازه سوءاستفاده از برخی ویژگی‌های سرورDNS  از جمله پشتیبانی از تکرار Connectionها و قابلیت Query Pipelining را می‌دهد تا یک کوئری DNS را به نحو غیرمعمول درون یک درخواست HTTP که در حال ارسال به سمت سرور DNS در بازدید از یک وب‌سایت تحت کنترل مهاجم می‌باشد، جاسازی کند. علاوه بر این‌ها، امکان سوءاستفاده از این آسیب‌پذیری و نشت آدرس‌های حافظه از طریق تخریب متادیتای رکورد منبع DNS و حتی اجرای کد دلخواه توسط مهاجم در مکان دلخواه نیز وجود دارد که این موضوع منجر به اختلال در فرآیند اجرای عملیات و همچنین اجرای دستورالعمل‌های ناخواسته خواهد شد.

در کمال تعجب، کلاینت‌های DNS (“dnsapi.dll”) مستعد این آسیب‌پذیری نیستند. این موضوع محققان را به این گمان سوق داده است که مایکروسافت از دو نوع کد پایه کاملاً متفاوت برای سرورها و کلاینت‌های DNS استفاده می‌کند و آسیب‌پذیری مورد اشاره بین آن‌ها همگام‌سازی نمی‌گردد.

با توجه به شدت آسیب‌پذیری و احتمال بالای سوءاستفاده از آن توسط مهاجمین، به کاربران توصیه می‌گردد تا سرورهای DNS خود را به‌روزرسانی نمایند. به عنوان یک راهکار موقت، با استفاده از دستورات زیر می‌توان حداکثر طول یک پیغام DNS بر روی پروتکل TCP را برابر با مقدار “۰xFF00” تنظیم نمود تا احتمال سرریز بافر کاهش یابد.

reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters” /v “TcpReceivePacketSize” /t REG_DWORD /d 0xFF00 /f

net stop DNS && net start DNS

به نقل از Omri Herscovici محقق امنیتی Check Point، بروز آسیب‌پذیری در سرور DNS مسأله بسیار مهمی است. بیشتر اوقات، مهاجمین تنها یک گام با دسترسی به کل سازمان فاصله دارند. تاکنون تعداد انگشت‌شماری از این قبیل آسیب‌پذیری‌ها منتشر شده‌اند. تمام سازمان‌های کوچک و بزرگ که از زیرساخت‌های مایکروسافت استفاده می‌کنند در صورت عدم نصب وصله‌های امنیتی در معرض خطر بسیار بزرگی هستند.

آرمان داده پویان ارائه‌دهنده تست نفوذ شبکه

با ما تماس بگیرید


تازه ترین ها