info[at]nsec.ir
(+۹۸)-۳۱-۳۳۹۱۵۳۳۶

استفاده از آسیب‌پذیری بدافزار Emotet علیه آن

خلاصه: بسیاری از آسیب‌پذیری‌ها، خبر خوبی برای مهاجمان و خبر بدی برای همه ما هستند. با این وجود، بدافزار نیز نرم‌افزاری است که می‌تواند آسیب‌پذیری داشته باشد. همانطور که مهاجمان می توانند از نقص‌های نرم افزارهای قانونی در حملات مخرب خود استفاده کنند؛ مدافعان نیز می‌توانند از روش‌های مهندسی معکوس برای کشف آسیب‌پذیری بدافزارها استفاده کرده و برای شکست بدافزارِ هدف از آسیب‌پذیری آن استفاده کنند.

بدافزار Emotet ، کد بدخواه شناخته‌شده‌ای است که در حملات بات‌نتی نظیر کمپین اسپم شناور و حملات باج افزار استفاده می‌شود. این بدافزار، دارای نقصی است که برای محققان امنیت سایبری امکان فعال کردن سوئیچ kill را فراهم می‌کند تا به این ترتیب از آلودگی بدافزار به مدت شش ماه جلوگیری کنند.

از زمان اولین شناسایی این بدافزار در سال ۲۰۱۴، بدافزار Emotet از گونه اولیه خود به عنوان یک بدافزار بانکی به یک بدافزار همه‌کاره تکامل یافته است که بسته به نوع استقرار در سیستم قربانی قادر است به عنوان بارگذار (downloader)، سارق اطلاعات و بات هرزنامه عمل کند.

اوایل ماه فوریه ، ویژگی جدیدی به Emotet  اضافه شد که بدافزار با سوءاستفاده از دستگاه‎های تسخیرشده، قربانیان تازه‌ای که به شبکه های Wi-Fi مجاور متصل هستند؛  شناسایی و تسخیر می‌کرد. ویژگی جدید، با استفاده از نام فایل سیستم exe یا dll  از فهرست system32 ، نامی برای ذخیره بدافزار در هر سیستم انتخاب می‌کرد. این تغییر به خودی خود سرراست بود: نام فایل را با یک کلید XOR رمز کرده و پس از آن در مقدار رجیستری ویندوز  روی شماره سریال قربانی، ذخیره شد. این ویژگی پاشنه آشیل و نقطه آسیب‌پذیر بدافزار شد و پیش از آنکه نویسندگان بدافزار Emotet ، آسیب پذیری بدافزار خود را وصله کنند؛ سوئیچ kill بین ۶ فوریه تا ۶ آگوست ۲۰۲۰ به مدت ۱۸۲ روز قابل‌بهره‌برداری بود.

نسخه اول kill - switch  توسط Binary Defence حدود ۳۷ ساعت پس از پرده‌برداری Emotet از تغییرات فوق بصورت زنده ساخته و اجرا شد. این نسخه، یک اسکریپت PowerShell را به کار می‌گرفت تا کلید رجیستری هر قربانی را تولید و مقدار آن را تهی(null) کند. به این ترتیب ، هنگامی که بدافزار رجیستری را برای نام فایل جستجو می‌کند؛ exe خالی یا «.exe» را بار کرده و بنابراین بدافزار بر سیستم هدف اجرا نمی‌شود.

EmoCrash علیه Emotet

در نسخه جدید  kill-switch با نام EmoCrash، از آسیب پذیری سرریز بافر در روال نصب بدافزار برای تخریب آن در مراحل نصب، استفاده و از این طریق از آلودگی کاربران جلوگیری می‌شود. در نسخه جدید به جای تنظیم مجدد مقدار رجیستری ، اسکریپت با شناسایی معماری سیستم برای تولید مقدار نصب رجیستری برای شماره سریال حجم کاربر کار  و از آن برای ذخیره بافر ۸۳۲ بایتی استفاده می‌کند.

سرریز بافر تمام آن چیزی بود که برای تخریب Emotet  لازم بود. نکته جالب توجه آن است که این مکانیزم حتّی می‌توانست قبل از آلودگی مستقر شود. در این نسخه دو لاگ تخریب با شناسه رویداد ۱۰۰۰ و ۱۰۰۱ وجود دارند که برای شناسایی نقاط انتهایی با  باینری های Emotet ازکارافتاده  و مرده پس از استقرار killswitch  و راه اندازی مجدد رایانه استفاده می‌شوند.

در این پروژه، Binary Defense  با تیم های واکنش اضطراری رایانه (CERTs)  و تیم Cymru برای توزیع اسکریپت  EmoCrash در سازمان های مستعد، همکاری دارند.