اختفاء در متن سفید: اسناد ورد با بار داده‌‌های جاسازی‌شده

ماکروهای مخرب در اسناد آفیس جدید نیستند و چند نمونه از آن‌ها توسط وب‌گاه ISC Diary مورد تجزیه‌وتحلیل قرار گرفته‌اند. معمولاً ماکروی اسکریپت برای آن استفاده می‌شود تا یک بدافزار دومرحله‌ای را یا با دسترسی به اینترنت و یا با استخراج یک دودویی جاسازی‌شده در خود سند آفیس در سامانه قربانی مستقر نماید. در این مطلب به بررسی دو سند مخرب و مشابه پرداخته خواهد شد که به‌صورت جداگانه مشاهده شده‌اند و یک نمونه بدافزار متفاوت به نام‌های NetWiredRC و iSpy را در بردارند.

چند مورد جالب‌توجه در مورد نمونه‌هایی که مورد بررسی قرار می‌گیرند وجود دارد:

۱. ماکرویی که در سند آفیس جاسازی شده است به اینترنت دسترسی پیدا نمی‌کند. به جای آن خود به استخراج یک دودویی در سند ورد در قالب ASCII hex می‌پردازد و آن را بر روی دیسک می‌نویسد.

۲. هر د و سند آلوده به‌صورت جداگانه مشاهده شده‌اند. با این ‌حال هر دو از یک نوع شگرد برای استخراج دودویی جاسازی شده استفاده می‌کنند و از پیام‌هایی به عنوان طعمه استفاده می‌کنند تا کاربر نهایی را برای فعال کردن ماکروها فریب دهند.

۳. در طی بررسی‌های مربوط به مشکلات صورت گرفته در شبکه در اثر بدافزار NetWiredRC، یک مرکز کنترل و فرماندهی جدید مشاهده شد که در مراجع [۱] و [۲] گزارش نشده است. این کار موجب شده است که ۹ امضای سفارشی Snort در مجموعه قوانین انجمن Snort ارائه و منتشر شود [۳][۴].

۴. نمونه‌ی iSpy الگوهای ترافیک شبکه‌ی جدیدی را نسبت به آنچه که قبلاً مشاهده شده است، تولید می‌کند که در مورد آن در ادامه مطالب بیشتری گفته خواهد شد.

در گذشته، تاریخچه‌ی مختصری در مورد نمونه خانواده‌های بدافزارهای NetWiredRC و iSpy از خانواده‌ی NetWiredRC از سوی محققان بدافزار ارائه و در مورد آن‌ها به‌صورت گسترده‌ای بحث شده است و اخیراً شرکت Talos به ارائه‌ی امضاهای Snort پرداخت تا NetWiredRC را روی شبکه پیدا کند و همچنین برای دستور NetWiredRC نیز یک امضای جدید ارائه کرده است.

iSpy اولین بار توسط نویسنده این مطلب در ژانویه‌ی ۲۰۱۶ با نمونه‌ی b۳۳c۵ba۳۸۸f۸a۳۲۰۰۶۱۳۳cb۸۸۸۸a۹۳۷۰ مشاهده شد. این نمونه مرکز کنترل و فرماندهی خود را همچنان که در تصویر زیر مشاهده می‌شود روی HTTP قرار داده است و امضاهای Snort آن منتشر شده است.

۱_۶۲
هر دو این نمونه‌های مخرب در طی ماه‌های مارس و آوریل ۲۰۱۶ مشاهده شده‌اند (به ترتیب به شکل ۶۵ee۵۳۵f۰efcb۳۰۶۲۶ce۵c۸e۷۷۶۳e۷۸۲ و cd۳a۴۳d۳۵۰۴۹۲۵a۳۹۶۱۸۳b۴۶۷b۰۹۸۰cb) هر دو این نمونه‌ها از HTTP برای ارتباطات مرکز کنترل و فرماندهی خود استفاده می‌کنند. یکی از آخرین نمونه‌های مشاهده شده که یک بار داده‌ی جاسازی شده است و از سند ورد استخراج شده، در ادامه‌ی این مطلب مورد بحث قرار می‌گیرد. این نمونه‌ی اخیر ارتباطات کنترل و فرماندهی خود را همچنان که در تصویر زیر مشاهده می‌شود، روی SMTP برای ارتباط اولیه و استخراج ارتباطات قرار می‌دهد.

۲_۵۶

تجزیه و تحلیل اسناد مخرب ورد

هر دو سند مخرب از یک الگوریتم یکسان برای استخراج دودویی جاسازی شده استفاده می‌کنند. درحالی‌که تمرکز بر روی سند مخرب جاسازی شده برای نمونه‌ی NetWiredRC است، تلاش می‌شود تا تجزیه‌وتحلیلی در کنار هم برای هر دو سند مخرب ارائه شود. در طی ادامه این مطلب و در تصاویر مقایسه‌ای اولین تصویر بیان‌کننده‌ی تجزیه‌وتحلیل NetWiredRC است و درحالی‌که تجزیه‌وتحلیل دوم مربوط به نمونه‌ی iSpy است.

هر دو سند نمونه، دقیقاً پیام‌های طعمه یکسانی دارند که موجب می‌شود تا کاربری که به آن‌ها شک ندارد، نمای محافظت‌شده را غیرفعال کرده و ماکروها را همچنان که در تصویر زیر مشاهده می‌شود فعال کند.

۴_۲۸
جالب است که هرکدام از این اسناد دارای تعداد زیادی صفحه‌ی «خالی» هستند و تنها متنی که قابل مشاهده است در تصویر بالا نشان داده شده است. به بیان دقیق‌تر این سند دارای ۲۳۲ صفحه است، درحالی‌که سند ورد مخرب دوم دارای ۵۲۸ صفحه است.

۵_۱۹
این سند در ابتدا برای حضور ماکروها با استفاده از oledump.py مورد بازرسی قرار گرفت. ما با توجه به تصویر زیر می‌توانیم ببینم که درواقع این سند دارای یک ماکرو است. با استفاده از oledump.py و یا olevba.py می‌توان کد VBScript را استخراج کرد. هر دو ابزار در Remnux قرار دارند. [۷].

۶_۱۱
با بازرسی نزدیک‌تر این VBScript به‌هم‌ریخته و مبهم، هیچ نشانه‌ای وجود ندارد که این اسکریپت به اینترنت متصل می‌شود. با ادامه بررسی بیشتر کد متوجه می‌شویم که همچنان که در تصویر زیر نشان داده شده است یک تابع جالب‌توجه در آن وجود دارد. لطفاً به متغیری که برجسته شده است و نوع داده‌‌ی آن توجه داشته باشید، چراکه نقش عمده را در استخراج دودویی مرحله‌ی دوم که در سند آفیس جاسازی شده است، ایفاء می‌کند.

۷_۱۰
۸_۸
با ادامه بازرسی این اسکریپت، روشن می‌شود که چگونه دودویی مرحله‌ی دوم بر روی دیسک سخت مستقر می‌شود. این اسکریپت از مدل شیء ورد [۸] برای دسترسی به اعضای Paragraph Object Model [۹] استفاده می‌کند. در مورد آن بعداً بیشتر صحبت خواهد شد. به‌منظور اینکه متوجه شویم چرا این اسکریپت به پاراگراف‌ها از خود اسناد دسترسی پیدا می‌کند؛ این سند در حالی باز شده است که ماکروها غیرفعال هستند و از اجرای اسکریپت جلوگیری می‌کنند.

با پیمایش این سند برای بررسی اینکه این ۲۳۲ صفحه‌ چه چیزی را در بردارند تنها صفحات خالی مشاهده شد که حاوی هیچ چیزی نبودند؛ و یا اینکه واقعاً این‌گونه نبود؟ برای بررسی و تأیید این مورد، سند از هنگامی‌که به شکل یک پرونده‌ی OOXML بود از شکل فشرده استخراج شد. استخراج سند همچنین کمک می‌کند تا به ساختار درونی سند دسترسی پیدا کنیم. با استخراج سند ما به مجموعه‌ای از پرونده‌ای XML دسترسی صورت گرفت. یکی از این پرونده‌های خاص به نام document.xml جالب‌توجه بود. این پرونده حاوی محتوای واقعی سند در شکل XML بود.

۹_۶
یک پرونده‌ی OOXML حاوی عناصری است که نشان‌دهنده‌ی جنبه‌های مختلف محتوای سند است. برای مثال اینکه چگونه پاراگراف‌ها در سند ورد به عنوان XML ساختاربندی می‌شوند. به‌طور خلاصه هر پاراگراف با یک بلاک عنصر XML بیان می‌شود. در درون این بلاک ممکن است دیگر عناصر XML وجود داشته باشند که چیزهای دیگری را نظیر ()formatting نشان دهند. برای اطلاع بیشتر در مورد این عناصر به استاندارد EMCA-۳۷۶ از قالب‌های پرونده‌های باز XML مراجعه کنید. [۱۱] و [۱۲].

هنگامی‌که به سند xml خود برگشته و آن را در مرورگر مشاهده کنیم، متوجه می‌شویم که پاراگراف ۲۴ با عناصری که ما در قبل به توضیح آن‌ها پرداختیم علامت‌گذاری شده‌ است. بازرسی و طرح‌ریزی عناصر برای پارگراف‌های واقعی در سند منجر می‌شود تا این واقعیت را دریابیم که آخرین پاراگراف تمام ۲۳۲ صفحه‌ی سند را در برگرفته است. این پاراگراف نه‌تنها حاوی متن است بلکه همچنین متن را گونه‌ای قالب‌بندی کرده که با رنگ سفید نشان داده شود (#FFFFFF) که یک شگرد مخفی سازی از دید ناظر سند است.

۱۰_۵
بنابراین ما دارای یک VBScript هستیم که یک متغیر را به عنوان یک پاراگراف و یک پاراگراف مخفی که در تمام ۲۳۲ صفحه‌ی سند تکرار می‌شود تعریف می‌کند. این نشان می‌دهد که VBScript در حقیقت به Word Object Model دسترسی پیدا می‌کند، شواهدی یافت شده است که این اسکریپت در حقیقت تلاش می‌کند تا به اشیاء پاراگراف‌ها و متونی که در درون سند وجود دارند دسترسی پیدا کند؛ به‌خصوص که این اسکریپت به پاراگراف شماره ۲۴ علاقه دارد.

۱۱_۱۴
در دیدی کلی به این بخش از اسکریپت می‌توان دید که این اسکریپت در طول پاراگراف‌هایی که در سند هستند و متن جاسازی شده در آن‌ها تنیده شده است تا اینکه به پاراگراف شماره‌ی ۲۴ می‌رسد. این اسکریپت از این متن دو حرف un-hexfies (یا یک بایت رشته hex، دو تصویر را برای آن مشاهده کنید) را برمی‌دارد تا به نمایش ده‌دهی/ عددی با استفاده از کاراکتر &H (مقدار متغیر hS)، هگزادسیمال حقیقی [۱۳] و سپس xor هگزا با کلید هگزادسیمال و (&HEE (۰xEE بپردازد تا بایت‌های هگزادسیمال را برای هدف خاصی ایجاد کند.

۱۲_۳۱۳_۲
اکنون دو بایت اول را از تصویر زیر برمی‌داریم تا این منطق را آزمایش کنیم. اولین دو بایت رشته‌های هگزا عبارت‌اند از «A۳ B۴». جدول زیر تبدیل‌های انجام‌شده به وسیله‌ای اسکریپت را نمایش می‌دهد. آیا شما در این جدول چیزی آشنا می‌بینید؟ دو بایت «۴d ۵A» یا «Z» اعدادی جادویی برای اجرای DOS MZ هستند.

۱۴
برای خودکارسازی الگوریتم بالا، اسکریپت پایتون زیر ایجاد شده است.

۱۵_۱

هنگامی‌که هرکدام از بایت‌ها استخراج و تبدیل شد، بایت به بایت بر روی دیسک نوشته می‌شوند تا این‌که هیچ متن دیگری در پاراگراف باقی نماند. پس ‌از آن، این اسکریپت، تابعی را فراخوانی می‌کند که موجب می‌شود نام دودویی ایجاد شده گذر داده شده تا اجرا شود. این تابع از یک تابع ()Shell درونی استفاده می‌کند [۱۴] تا مرحله‌ی دوم دودویی را اجرا کند. این تابع در تصویر زیر گرفته شده است.

۱۶_۰
برای اینکه همه چیز را در کنار هم قرار دهیم؛ تصویر زیر نشان‌دهنده‌ی نسخه‌ی واضح‌سازی شده و با توضیحات از هر دو تابعی است که قبلاً در مورد آن‌ها بحث شد.

۱۷_۰
تصویر زیر نشان‌دهنده‌ی همان ParagraphRrmove() (واضح‌سازی شده با توضیحات) از پرونده دوم مخرب ورد است که نمونه بدافزار iSpy آن را مستقر کرده است. نکته جالب‌توجه در هر دو سند مخرب ورد اشتباه نوشتاری Starincex است.

۱۸_۰

مراجع:

[۱] https://www.circl.lu/pub/tr-۲۳

[۲] http://researchcenter.paloaltonetworks.com/۲۰۱۴/۰۸/new-release-decryptin

[۳] http://blog.snort.org/۲۰۱۶/۰۳/snort-subscriber-rule-set-update-for_۲۹.html

[۴] http://blog.snort.org/۲۰۱۶/۰۵/snort-subscriber-rule-set-update-for_۳۱.html

[۵] https://blog.didierstevens.com/programs/oledump-py

[۶] http://www.decalage.info/vba_tools

[۷] https://remnux.org

[۸] https://msdn.microsoft.com/en-us/library/kw۶۵a۰we.aspx

[۹] https://msdn.microsoft.com/en-us/library/office/ff۸۳۹۴۹۱.aspx

[۱۰] http://officeopenxml.com/WPparagraph.php

[۱۱] http://www.ecma-international.org/publications/standards/Ecma-۳۷۶.htm

[۱۲] https://msdn.microsoft.com/en-us/library/office/gg۶۰۷۱۶۳(v=office.۱۴).aspx

[۱۳] https://msdn.microsoft.com/en-us/library/s۹cz۴۳ek.aspx

[۱۴] https://msdn.microsoft.com/en-us/library/xe۷۳۶fyk(v=vs.۹۰).aspx

منبع: asis

درباره نماد امنیت وب

“نماد امنیت وب” به عنوان یکی از شرکت های پیشتاز در زمینه امنیت نرم افزار و سرویس های تحت وب، با ارائه سرویس های امنیتی برای تمامی کسب و کار ها و دارای نمایندگی شرکت Acunetix (اکوانتیکس) بعنوان محبوب ترین اسکنر امنیتی black box در دنیا، ایمنی وب سایت شما را در مقابل حمله هکر ها تضمین می کند.