در اردیبهشت 1401، شرکت مایکروسافت (Microsoft Corp) درخصوص ضعف امنیتی به شناسه CVE-2022-30190 با درجه اهمیت «حیاتی» (Critical) در Microsoft Diagnostic Tool – به اختصار MSDT – هشداری صادر کرد.
در این گزارش که با همکاری شرکت مهندسی شبکه گستر و مرکز مدیریت راهبردی افتای ریاست جمهوری تهیه گردیده ضعف امنیتی مذکور مورد بررسی قرار گرفته است.
آسیبپذیری مذکور که توسط محققان Follina نامیده شده، از نوع «اجرای کد از راه دور» (Arbitrary Code Execution) است که تمامی نسخ Windows از آن تاثیر میپذیرند.
مهاجمان جهت سوءاستفاده از آن، یک پیوند خارجی مخرب به یک OLE Object در یک سند Microsoft Office ایجاد میکنند، سپس قربانیان را فریب میدهند تا روی سند کلیک کنند یا حتی اگر سند در حالت محافظت شده (Protected View) نیز باز شود و ماکروها نیز غیرفعال باشند، از این ضعف امنیتی بهرهجویی خواهند کرد.
شرکت فورتینت (.Fortinet, Inc) در خلال تحقیقات خود، سندی را شناسایی نموده که با بهرهجویی از آسیبپذیری Follina از طریق تکنیک موسوم به بدون فایل (Fileless Attack) اقدام به نصب بدافزار Rozena میکند.
Rozena بدافزاری است که «دسترسی غیرمجاز» (Backdoor) را از طریق تزریق از راه دور و اتصال به Shell به سیستم قربانی فراهم میکند. این شرکت گزارشی منتشر کرده که چکیده آن در ادامه شرح داده شده است.
بهرهجویی از Follina
سند مخرب اصلی (با هش زیر) که مهاجمان از آن در حملات خود استفاده کردند، همانند شکلی که در ادامه نمایش داده شده، حاوی یک پیوند مخرب خارجی است.
SHA256: 432bae48edf446539cae5e20623c39507ad65e21cb757fb514aba635d3ae67d6
پس از کلیک روی سند مخرب مذکور، همانطور که در شکل زیر نشان داده شده، ارتباط با پیوست خارجی Discord CDN به نشانی زیر برقرار شده و یک فایل HTML دانلود میشود.
hxxps://cdn[.]discordapp.com/attachments/986484515985825795/986821210044264468/index[.]htm
پس از دانلود فایل HTML مذکور (با هش زیر)، فایل msdt.exe را از طریق PowerShell فراخوانی میکند. Payload بصورت کامل در شکل زیر نشان داده شده است.
SHA256: 3558840ffbc81839a5923ed2b675c1970cdd7c9e0036a91a0a728af14f80eff3
به منظور پنهان نمودن فرمان واقعی و اجتناب از تشخیص رشته (String) ساده، در هنگام الحاق رشتههای جداگانه در زمان اجرا، مبهمسازی (Obfuscation) صورت گرفته است. محققان با رمزگشایی یک رشته Base64، فرمان کامل را که در شکل زیر نشان داده شده، استخراج کردند.
کد PowerShell، فایلی از نوع Batch به نام cd.bat را دانلود میکند و بدون اینکه خود را پنهان کند، درخواست دیگری را برای دانلود بدافزار Rozena فراخوانی میکند و آن را تحت نام Word.exe در پوشه Windows Tasks ذخیره میکند.
این دو فایل نیز از پیوست Discord CDN با همان channelID به عنوان لینک خارجی در سند اصلی دانلود میشوند.
همانطور که در شکل زیر نشان داده شده است، فایل cd.bat، انجام چهار کار زیر را بر عهده دارد:
- به منظور گمراه کردن قربانی، سند دیگری با نام 1c9c88f811662007.docx و درهمساز زیر دانلود میشود.
SHA256: e3af143ba12209fafdc3089a740d23faf59f6f1508c00d8f56f8cc9d0c8ebf89
- پروسههای “msdt.exe” و “WINWORD.exe” را به منظور از بین بردن ردپای بهرهجویی از Follina خاتمه میدهد.
- با افزودن کلیدهایی در رجیستری، بدافزار Rozena را با نام”Word.exe” ماندگار میکند.
- فایل bat را حذف میکند.
مهاجم قبل از بکارگیری بدافزار Rozena، سعی میکند قربانی را گمراه کند. فایل اصلی به جز پیوند خارجی در oleObject هیچ محتوای دیگری ندارد. برای اینکه این امر برای قربانی غیرعادی و عجیب به نظر نرسد، Batch file مذکور، یک سند Word دیگر به نام 1c9c88f811662007.docx را که حاوی تعداد زیادی عکس است، دانلود میکند (همانند شکل زیر). برای اینکه سند واقعیتر به نظر برسد، در دایرکتوری C:\\users\$env:USERNAME\Downloads با نام کوتاهتر (i18562.docx) ذخیره میشود.
بدافزار Rozena
مهاجم از ویژگی پیشفرض Window که پسوند فایل را نشان نمیدهد، سوءاستفاده میکند. بنابراین، مهاجم قربانی را همانطور که در شکل زیر نشان داده شده، فریب میدهد. سند سبز جهت پرت کردن حواس قربانی قرار داده شده و مخرب نمیباشد ولی سند قرمز رنگ حاوی بدافزار Rozena است. با اینکه یک فایل اجرایی است از نماد Microsoft Word استفاده میکند.
PE Header فایل مخرب مذکور در شکل زیر نشان داده شده است.
پس از اجرا، به منظور بکارگیری و اجرای فرمان PowerShell، یک پروسه ایجاد میکند. زنجیره حمله در شکل زیر نمایش داده شده است.
فرمان کامل PowerShell که با Base64 کدگذاری شده، در شکل زیر نشان داده شده است.
همانطور که در شکل زیر نشان داده شده، فرمان رمزگشایی تنها وظیفه تزریق Shellcode را دارد. ابتدا متغیری به نام “i$gcr” را برای کل پروسه تزریق، تعریف میکند و از DLLImport برای kernel32.dll و از msvcrt.dll برای فراخوانی توابع API خاصی همچون VirtualAlloc ،CreateThread و Memset به منظور تزریق کد استفاده میکند.
فرمان مذکور همچنین تعدادی بایت هگزادسیمال دارد که مکان تزریق بلوک کد را مشخص میکند. سپس این بایتها را در حافظه اختصاص داده شده کپی نموده و آنها را به PowerShell.exe در حال اجرا تزریق میکند.
در نهایت، یک حلقه برای شروع فرایند Sleep راهاندازی میکند. در تصویر پایین، بخشی که با رنگ قرمز مشخص شده، کد تزریق فوق را از “i$gcr” با Base64 رمزگذاری و سپس یک پروسه PowerShell جدید با پارامتر ec- را فراخوانی میکند.
سناریوی کامل حمله از لحظه تحویل یک سند مخرب و بهرهجویی از ضعف امنیتی Follina و انتقال Rozena از پیوست Discord CDN در شکل نشان داده شده است.
نشانههای آلودگی
برخی از علائم آلودگی (Indicators-of-Compromise – به اختصار IoC) به شرح زیر میباشد:
SHA256: 69377adfdfa50928fade860e37b84c10623ef1b11164ccc6c4b013a468601d88
SHA256: 27f3bb9ab8fc66c1ca36fa5d62ee4758f1f8ff75666264c529b0f2abbade9133
SHA256: 432bae48edf446539cae5e20623c39507ad65e21cb757fb514aba635d3ae67d6
SHA256: 5d8537bd7e711f430dc0c28a7777c9176269c8d3ff345b9560c8b9d4daaca002
SHA256: 3558840ffbc81839a5923ed2b675c1970cdd7c9e0036a91a0a728af14f80eff3
آسیبپذیری Follina
Follina یک آسیبپذیری با درجه اهمیت حیاتی است که به مهاجم اجازه میدهد بدافزار را از طریق برنامههای مجموعه نرمافزاری Office منتقل کند. مایکروسافت در بروزرسانی ماه ژوئن خود اصلاحیه آن را منتشر کرد. با توجه به بهرهجویی گسترده مهاجمان از این ضعف امنیتی در سراسر جهان، چنانچه تاکنون نسبت به نصب بروزرسانیها اقدام نکردهاید، توصیه میشود که در اسرع وقت با مراجعه به نشانیهای زیر اعمال وصله مربوطه را در دستور کار قرار دهید.
https://msrc.microsoft.com/update-guide/vulnerability
https://newsroom.shabakeh.net/24462/microsoft-security-update-june-2022.html
جزئیات بیشتر درخصوص گزارش شرکت فورتینت در نشانی زیر قابل مطالعه میباشد: