Trojan.MSOffice.APT34

شرح کلی

نوع : APT
درجه تخریب: بالا
میزان شیوع: متوسط

اسامی بدافزار

Trojan.MSOffice.APT34 (Padvish)
Vba/TrojanDropper.Agent.AUA (ESET-NOD32)
Heur:Trojan.MSOffice.SAgent.Gen (Kaspersky)

APT چیست؟

APT مخفف کلمه Advanced Persistent Threat و به معنای تهدید مداوم پیشرفته می‌باشد. همان‌طور که از نام آن انتظار می‌رود، این تهدید از تکنیک‌های هک مداوم، مخفیانه و پیشرفته برای دستیابی به یک سیستم استفاده می‌کند و برای مدت زمان طولانی با پیامدهایی مخرب در سیستم کاربران باقی می‌ماند. برخلاف حملات سایبری متداول و سطح پایین که عمدتا توسط هکرهای کلاه سیاه و با هدف نفوذ سریع به سیستم و نیل به اهداف مالی در سریع‌ترین زمان ممکن صورت می‌گیرند، حملات APT به هدف‌هایی با ارزش اطلاعاتی بالا مانند سازمان‌های دولتی و شرکت‌های بزرگ صورت می‌گیرد و هدف نهایی نفوذگران، سرقت اطلاعات در طی یک دوره طولانی مدت است. از دیگر مشکلات آلودگی به بدافزارهای APT، احتمال باقی گذاشتن backdoor یا درب پشتی توسط مهاجمان برای بازگشت در زمان دلخواه است.

بدافزار APT34 چیست؟

APT34، یک گروه APT پیشرفته مرتبط با کشور ایران است که در سال ۲۰۱۷ توسط محققان FireEye شناسایی شد، اما طبق تحقیقات کارشناسان امنیتی حداقل از سال ۲۰۱۴ فعال بوده است. این گروه با حمله به کشورهای واقع در خاورمیانه، زیرساخت‌های مالی، دولتی، انرژی، شیمیایی و شرکت‌های مخابراتی را مورد هدف قرار داده است. در ادامه یکی از نمونه‌های این خانواده به همراه دو فایل مرتبط با آن بررسی شده است.

در نمونه مورد بررسی، فایل آغازکننده حمله، در واقع یک فایل xls می‌باشد که کد مخرب آن در ماکروهای نهفته در آن قرار دارد. در هنگام باز شدن این سند، در صورتی که گزینه enable macro انتخاب شود، ماکروی داخلی آن اجرا خواهد شد. پس از آن یک فایل zip توسط این ماکرو استخراج شده و آن را به عنوان یک تسک بعد از ۵ دقیقه اجرا می‌کند. در واقع این فایل استخراج شده، هدف اصلی بدافزار  را انجام می‌دهد.

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

توضیحات فنی

علائم آلودگی

  • وجود یک فایل اجرایی با نام Client Update.exe در مسیر C:\Users\<USERNAME>\vals
  • ساخته شدن یک Scheduled Task با نام CheckUpdate که به فایل Client Update.exe اشاره می‌کند و اولین اجرای آن ۵ دقیقه بعد از باز شدن فایل xls و اجرای بعدی بعد از هر بار Logon می‌باشد.
  • ارتباط یک پردازه با دامنه‌ای به نام manygoodnews[.]com
  • در برخی گونه‎‌های بدافزار، وجود فایلی به نام fsociety.dat با فرمت SQLite در مسیر %appdata% که حاوی اطلاعات کاربر و گذرواژه‌های مرورگر کروم می‌باشد.

شرح عملکرد

فایل اصلی یک فایل xls است که در داخل خود ماکرو مخرب دارد. تصویر زیر وجود ماکرو در سند آفیس را نشان می‌دهد.

فایل اصلی یک سند آفیس xls که در داخل خود ماکرو مخرب دارد

پس از فعال کردن ماکرو یک فرم واقعی نمایش داده می‌شود تا قربانی به محتوای فایل مشکوک نشود:

سند آفیس xls که در داخل خود ماکرو مخرب دارد، بعد از فعال کردن ماکرو نمایش فرم واقعی تا قربانی شک نکند

این بدافزار در ابتدا به استخراج محتوای رمز شده یک فایل zip از درون خود می‌پردازد. سپس محتوای آن را رمزگشایی نموده و یک رشته با نام Client update.exe می‌سازد که بعدا قرار است این رشته به عنوان نام فایل اجرایی بدافزار در نظر گرفته شود.

بدافزار به منظور دور زدن سیستم‌های تشخیص از روش‌های مبهم‌سازی استفاده می‌کند. به این صورت که رشته‌های استفاده شده در کد بدافزار به چند بخش تقسیم شده‌اند و در نهایت به هم متصل می‌شوند.

نکته جالب این است که بدافزار برای ساختن رشته “exe.” از کلمه “firefox” استفاده می‌کند. به این صورت که با استفاده از تابع ()Mid دو حرف x,e را از داخل رشته firefox استخراج می‌کند.

بدافزار با استفاده از تابع ()Mid دو حرف x,e را از داخل رشته firefox استخراج می‌کند.

سپس با استفاده از متد MouseAvailable به تشخیص اجرای بدافزار  داخل سندباکس یا emulator می‌پردازد، البته این روش امروزه در سندباکس‌های پیشرفته موثر نیست، زیرا در این سندباکس‌ها حتی حرکت موس و کلیک کردن نیز شبیه‌سازی می‌شود.

پس از آن بدافزار فایل zip استخراج شده از داخل خود  را که رمزگشایی شده در مسیر %temp% با نام testfile.zip ذخیره کرده و سپس محتوای آن را که یک فایل اجرایی exe است، در مسیر C:\Users\<USERNAME>\vals با نام Client Update.exe ذخیره می‌سازد.

 فایل zip استخراج شده از داخل خود را که رمزگشایی شده با نام testfile.zip ذخیره کرده و سپس ذخیره محتوای آن که یک فایل اجرایی exe است

و در آخر یک scheduled task با نام CheckUpdate می‌سازد که پس از ۵ دقیقه و همچنین در هر بار Login نمودن کاربر اجرا می‌شود.

آخر یک scheduled task با نام CheckUpdate می‌سازد که بعد از ۵ دقیقه و همچنین در هر بار لاگین کردن کاربر اجرا می‌شود.

تصویر زیر اجرای فایل بدافزار توسط scheduled task  را نمایش می‌دهد.

 تصویر اجرای فایل بدافزار توسطscheduled task را نشان می‌دهد.

 تصویر اجرای فایل بدافزار توسطscheduled task را نشان می‌دهد.

شرح عملکرد فایل ClientUpdate.exe

این فایل با یک سرور C&C ثابت با نام manygoodnews[.]com ارتباط برقرار می‌کند.

این فایل با یک c&c ثابت با نام manygoodnews[.]com ارتباط برقرار می‌کند.

نحوه کار به این صورت است که خود سایت manygoodnews[.]com به صورت یک سایت واقعی طراحی شده و دستورهایی که باید اجرا شوند داخل تگ <”div class=”myH> قرار دارند .

 خود سایت manygoodnews[.]com به صورت یک سایت واقعی طراحی شده و دستوراتی

به عنوان مثال :

div class “myH”>456 ping 1.1.1.1>
<div/>

در دستور بالا 456،ID دستور اجرایی است که برای دریافت پاسخ دستور استفاده می‌شود. برای مثال پس از اینکه بدافزار این دستور را اجرا کرد، خروجی آن را با متغیری به صورت POST برای سرور C&C خود ارسال می‌کند و برای ردیابی اینکه پاسخ دریافت شده خروجی کدام دستور می‌باشد از این ID داخل متغیری با نام ser در URL استفاده می‌شود.
جهت اجرای دستورهای مورد نظر C&C، دستور دریافت شده به کامند cmd /U /c اضافه می‌شود و با استفاده از PIPE خروجی اجرای دستور دریافت می‌شود :

جهت اجرای دستورات مورد نظر c&c ، دستور دریافت شده اضافه می‌شود و با استفاده از PIPE خروجی اجرای دستور دریافت می‌شود

 جهت اجرای دستورات مورد نظر c&c ، دستور دریافت شده اضافه می‌شود و با استفاده از PIPE خروجی اجرای دستور دریافت می‌شود

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

{“texts” : “encrypted result”}

خروجی دستوراتی که فرستاده می‌شوند در ابتدا رمز می‌شود و به صورت JSON فرستاده می‌شوند .

در بررسی‌های صورت گرفته، مشخص شد این فایل از بدافزار اقدام به دانلود نمونه‌های مخرب نیز می‌کند. در ادامه به شرح یکی از این نمونه‌ها با نام ch.exe می‌پردازیم.

شرح عملکرد فایل ch.exe

این برنامه در واقع یکی از برنامه‌های استخراج گذرواژه‌های ذخیره شده در مرورگر Google Chrome می‌باشد که با زبان Go نوشته شده و در github موجود است. با کمی بررسی مشخص می‌شود که فقط اندکی از محتوای آن مانند نام فایل ذخیره‌سازی اطلاعات تغییر کرده است.

لینک github ابزار استفاده شده:

/https://github.com/SaturnsVoid/Chrome-Password-Recovery

بنابراین هدف این برنامه سرقت گذرواژه‌های ذخیره شده در مرورگر Google Chrome می‌باشد. پس از استخراج و رمزگشایی گذرواژه‌های داخل Google Chrome آن را در فایلی به نام fsociety.dat در مسیر %Appdata% با فرمت SQLite ذخیره می‌سازد.

بدافزار این فایل را بعدا برای سرور مخرب خود ارسال می‌کند. رشته fsociety در بدافزارهای دیگر خانواده APT34 نیز استفاده شده و به سریال Mr. Robot اشاره دارد.

سیستمی که این برنامه را کامپایل کرده است کاربری با نام C:\Users\freedman2 دارد که داخل stringهای برنامه موجود است. قسمتی از تابع اصلی برنامه یعنی main_main که با استفاده از query گذرواژه‌های Google Chrome  را از فایل‌های SQLite آن استخراج می‌کند، در تصویر زیر آمده است:

 شرح عملکرد فایل ch.exe

روش مقابله و پاک‌سازی سیستم

✅ آنتی‌ویروس پادویش این بدافزار را شناسایی و از سیستم حذف می‌کند.

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

✅ دقت داشته باشید که از اجرای فایل های مشکوک که منبع آنها مشخص یا مطمئن نیستند خودداری کنید.