آسیب‌پذیری CVE-2021-31166 و نحوه رفع آن


در روزهای گذشته مایکروسافت خبر آسیب‌پذیری با شناسه CVE-2021-31166 را برای سیستم‌عامل‌های ویندوزی منتشر کرد. آسیب‌پذیری CVE-2021-31166‌ که دارای امتیاز CVSS 9.8 (آسیب‌پذیری حیاتی) است در ویندوزهای سرور 2016 و ویندوز 10 که وب‌سروری بر آن‌ها در حال اجرا باشد، وجود دارد. CVE-2021-31166 به علت آسیب‌پذیری موجود در پشته پروتکل HTTP و مشکل استفاده از اشاره‌گر پس از آزادکردن آن رخ خواهد داد.
بهره‌جویی  این آسیب‌پذیری از راه دور قابل انجام است و نیاز به هیچ گونه احراز هویت و تعامل کاربر ندارد. مهاجم به کمک این آسیب‌پذیری می‌تواند به‌صورت راه دور کد دلخواه موردنظر خود را اجرا کند.
در این گزارش به زبان ساده خطرات این آسیب‌پذیری، نحوه بررسی آسیب‌پذیربودن سیستم و به‌روزرسانی آن را شرح خواهیم داد.

 آسیب‌پذیر‌ی cve-2021-31166 چه آثار مخربی دارد؟
از آنجا که با بهره‌جویی از این آسیب‌پذیری امکان اجرای کد از راه دور وجود دارد، مهاجم می‌تواند کد دلخواه خود را با سطح دسترسی سیستم بر سیستم قربانی اجرا کند. بنابراین این آسیب‌پذیری حیاتی می‌باشد.
3- آیا سیستم من آسیب‌پذیر است؟
طبق گزارش مایکروسافت این آسیب‌پذیری روی نسخه‌های 2004 و 20h2 از تمامی ویندوزهای سرور و ویندوز 10 که به‌روزرسانی مربوطه را نصب نکرده باشند، وجود دارد.
برای بررسی آسیب‌پذیربودن یک سیستم، می‌توان از اسکریپت پایتونی که در گیت‌هاب  منتشر شده است استفاده کرد. برای اجرای این اسکریپت باید آدرس IP ویندوزی که وب‌سرور برروی آن در حال اجرا است مشخص شده و به‌صورت زیر اسکریپت را با پایتون نسخه 3 اجرا کنیم.
python3 cve-2021-31166.py --target=target_IP_address
در صورتی که ویندوز آسیب‌پذیر نباشد پیامی مشابه شکل 1 مشاهده خواهید کرد.

و اگر سیستم آسیب پذیر باشد Crash می‌کند (شکل 2).
شکل 2- Crash کردن سیستم آسیب‌پذیر
4- نحوه مقابله
برای مقابله با این آسیب‌پذیری باید ویندوز خود را طبق یکی از روش‌های زیر به‌روزرسانی کنید.
4-1- روش اول – به‌روزرسانی خودکار (توصیه می شود)
 سیستم خود را به اینترنت متصل کنید و در منوی استارت ویندوز update را تایپ کنید و روی windows update و در صفحه بازشده Check for updates  (شکل 3) کلیک کنید و مدت طولانی منتظر بمانید تا ویندوز شما آپدیت شود و درنهایت سیستم را Restart کنید.

شکل 3- شروع بروزرسانی ویندوز
4-2- روش دوم - به روزرسانی دستی
اگر به هر دلیلی امکان به‌روزرسانی خودکار برای شما وجود ندارد از این روش استفاده کنید.
ابتدا با نوشتن winver در run یا منو استارت ویندوز نسخه دقیق ویندوز را تعیین کنید. پس از تعیین نسخه دقیق ویندوز به صفحه توضیحات آسیب‌پذیری بروید  و در بخش Security Updates متناسب با نسخه ویندوز خود آپدیت مناسب را انتخاب کنید و با کلیک روی Security Update به صفحه دانلود به‌روزرسانی بروید.
در صفحه دانلود بازهم متناسب با نسخه ویندوز خود روی دکمه Download کلیک کنید (شکل 4).

شکل 4- صفحه دانلود آپدیت
در صفحه بازشده روی لینک آپدیت موردنظر (شکل 5) کلیک کنید تا دانلود فایل آغاز شود.
شکل 5- لینک دانلود آپدیت
پس از دانلود، فایل دریافتی که با نامی مشابه windows10.0-kbxxx-xxxxxxxxxxxxxx.msu است را اجرا کنید و روی Yes کلیک کنید تا نصب آپدیت آغاز شود. در پایان پیام شکل 6 نمایش داده می‌شود و روی Restart Now کلید کنید تا نصب تکمیل شود.
شکل 6- پایان نصب آپدیت
5- بررسی نصب‌بودن به‌روزرسانی
به‌روزرسانی برای CVE-2021-31166 برای تمامی نسخه‌های آسیب‌پذیر ویندوز با نام KB5003173 منتشر شده است. با روش‌های زیر از نصب این به روزرسانی اطمینان حاصل کنید.
5-1- روش اول
فایل نصب آپدیت را دوباره اجرا کنید اگر نصب باشد به شما پیام شکل 7 نمایش داده می‌شود 😊.
 
شکل 7- پیام نصب بودن آپدیت
5-2- روش دوم
برای بررسی نصب‌بودن به‌روزرسانی روی یک سیستم، update history را در منو استارت ویندوز تایپ کنید و در برگه View update history به دنبال نام به‌روزرسانی آن (KB5003173) بگردید (شکل 8). 
 

شکل 8- بررسی نصب آپدیت
5-3- روش سوم
در منوی استارت appwiz.cpl را تایپ کنید و آن را اجرا نمایید در سمت چپ روی View installed updates کلیک کنید در این صفحه دنبال آپدیت بگردید، از قسمت جستجوی بالا هم می‌توانید کمک بگیرید (شکل 9).

شکل 9-بررسی نصب آپدیت روش دوم
5-4- روش چهارم (حرفه‌ای)
در powershell  دستور Get-HotFix –Id با نام به‌روزرسانی KB5003173 را وارد کنید اگر آپدیت نصب شده باشد خروجی باید به شکل 10 باشد وگرنه پیام خطا نمایش داده می‌شود.

شکل 10- بررسی نصب با PowerShell
نسخه الکترونیکی گزارش فوق :
-cve-2021-31166.pdf [1.24 Mb] ( تعداد دانلود: 0)
تا آسیب‌پذیری جدید بدرود! 