مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3

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

امروز Ilya Pomerantsev، متخصص تجزیه و تحلیل بدافزار در CERT Group-IB، در مورد مرحله اول تجزیه و تحلیل بدافزار - باز کردن نیمه خودکار نمونه های AgentTesla با استفاده از مثال سه مورد کوچک از تمرین متخصصان CERT Group-IB صحبت خواهد کرد.

به طور معمول، اولین مرحله در تجزیه و تحلیل بدافزار، حذف حفاظت در قالب بسته‌کننده، رمزگذار، محافظ یا لودر است. در بیشتر موارد، این مشکل با اجرای بدافزار و انجام dump قابل حل است، اما شرایطی وجود دارد که این روش مناسب نیست. به عنوان مثال، اگر بدافزار یک رمزگذار باشد، اگر از مناطق حافظه خود در برابر تخلیه محافظت می کند، اگر کد حاوی مکانیسم های تشخیص ماشین مجازی باشد، یا اگر بدافزار بلافاصله پس از راه اندازی مجدد راه اندازی شود. در چنین مواردی از بسته‌بندی به اصطلاح «نیمه خودکار» استفاده می‌شود، یعنی محقق بر فرآیند کنترل کامل دارد و می‌تواند در هر زمانی مداخله کند. بیایید این روش را با استفاده از سه نمونه از خانواده AgentTesla به عنوان مثال در نظر بگیریم. اگر دسترسی به شبکه آن را غیرفعال کنید، این یک بدافزار نسبتا بی ضرر است.

نمونه شماره 1

فایل منبع یک سند MS Word است که از آسیب پذیری CVE-2017-11882 سوء استفاده می کند.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
در نتیجه، پیلود دانلود و راه اندازی می شود.

تجزیه و تحلیل درخت فرآیند و نشانگرهای رفتاری تزریق به فرآیند را نشان می دهد RegAsm.exe.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
نشانگرهای رفتاری مشخصه AgentTesla وجود دارد.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
نمونه دانلود شده قابل اجراست دات نتفایل محافظت شده توسط محافظ راکتور دات نت.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
بیایید آن را در ابزار کاربردی باز کنیم dnSpy x86 و به نقطه ورود بروید.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
با رفتن به تابع DateTimeOffset، کد اولیه را برای جدید پیدا می کنیم دات نت-مدول. بگذاریم نقطه شکست در خط مورد نظر ما و اجرای فایل.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
در یکی از بافرهای برگشتی می توانید امضای MZ را ببینید (0x4D 0x5A). بیایید آن را ذخیره کنیم.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
یک فایل اجرایی dumped یک کتابخانه پویا است که یک لودر است، یعنی. پیلود را از قسمت منابع استخراج کرده و راه اندازی می کند.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
در عین حال خود منابع لازم در زباله دانی وجود ندارد. آنها در نمونه والد هستند.

سودمندی dnSpy دارای دو عملکرد بسیار مفید است که به ما کمک می کند تا به سرعت یک "Frankenstein" از دو فایل مرتبط ایجاد کنیم.

  1. اولین مورد به شما امکان می دهد یک کتابخانه پویا را در نمونه والد "پیست" کنید.

    مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3

  2. دوم بازنویسی کد تابع در نقطه ورودی برای فراخوانی روش مورد نظر کتابخانه پویا درج شده است.

    مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3

مجموعه "فرانکنشتاین" خود را ذخیره می کنیم نقطه شکست در خطی که یک بافر با منابع رمزگشایی شده را برمی گرداند و یک Dump را با قیاس با مرحله قبل تولید می کند.

روگرفت دوم در نوشته شده است VB.NET یک فایل اجرایی که توسط یک محافظ آشنا برای ما محافظت می شود ConfuserEx.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
پس از حذف محافظ، از قوانین YARA که قبلاً نوشته شده است استفاده می کنیم و مطمئن می شویم که بدافزار باز شده واقعاً AgentTesla است.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3

نمونه شماره 2

فایل منبع یک سند MS Excel است. یک ماکرو داخلی باعث اجرای کدهای مخرب می شود.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
در نتیجه، اسکریپت PowerShell راه اندازی می شود.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
اسکریپت کد C# را رمزگشایی می کند و کنترل را به آن منتقل می کند. همانطور که از گزارش sandbox نیز قابل مشاهده است، خود کد یک بوت لودر است.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
محموله یک فایل اجرایی است دات نت-فایل.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
باز کردن فایل در dnSpy x86، می بینید که مبهم است. رفع ابهام با استفاده از ابزار de4dot و به تحلیل برگردید.

هنگام بررسی کد، ممکن است تابع زیر را کشف کنید:

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
خطوط رمزگذاری شده قابل توجه هستند نقطه ورود и فراخوانی. ما گذاشتیم نقطه شکست در خط اول، مقدار بافر را اجرا کرده و ذخیره کنید بایت_0.

روگرفت دوباره یک برنامه کاربردی است دات نت و محافظت می شود ConfuserEx.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
ما با استفاده از مبهم سازی را حذف می کنیم de4dot و آپلود کنید dnSpy. از توضیحات فایل متوجه می شویم که با آن روبرو هستیم لودر CyaX-Sharp.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
این لودر قابلیت ضد آنالیز گسترده ای دارد.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
این عملکرد شامل دور زدن سیستم‌های محافظت داخلی ویندوز، غیرفعال کردن Windows Defender، و همچنین مکانیسم‌های شناسایی جعبه ایمنی و ماشین مجازی است. امکان بارگیری پیلود از شبکه یا ذخیره آن در قسمت منابع وجود دارد. راه‌اندازی از طریق تزریق به فرآیند خود، به یک تکراری از فرآیند خود یا در فرآیندها انجام می‌شود MSBuild.exe, vbc.exe и RegSvcs.exe بسته به پارامتر انتخاب شده توسط مهاجم.

با این حال، برای ما آنها اهمیت کمتری دارند آنتی دامپ-عملکردی که اضافه می کند ConfuserEx. کد منبع آن را می توان در یافت GitHub.

برای غیرفعال کردن حفاظت، از فرصت استفاده خواهیم کرد dnSpy، که به شما امکان ویرایش را می دهد IL-کد

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
ذخیره و نصب کنید نقطه شکست به خط فراخوانی تابع رمزگشایی محموله. در سازنده کلاس اصلی قرار دارد.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
محموله را راه اندازی و رها می کنیم. با استفاده از قوانین YARA قبلاً نوشته شده، مطمئن می شویم که این AgentTesla است.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3

نمونه شماره 3

فایل منبع فایل اجرایی است VB Native PE32-فایل.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
تجزیه و تحلیل آنتروپی وجود یک قطعه بزرگ از داده های رمزگذاری شده را نشان می دهد.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
هنگام تجزیه و تحلیل فرم درخواست در دیکامپایلر VB ممکن است متوجه یک پس‌زمینه پیکسلی عجیب شوید.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
نمودار آنتروپی bmp-image با نمودار آنتروپی فایل اصلی یکسان است و اندازه آن 85 درصد اندازه فایل است.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
ظاهر کلی تصویر نشان دهنده استفاده از استگانوگرافی است.

بیایید به ظاهر درخت فرآیند و همچنین وجود نشانگر تزریق توجه کنیم.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
این نشان می دهد که باز کردن بسته بندی در حال انجام است. برای لودرهای ویژوال بیسیک (با نام مستعار VBKrypt یا VBInjector) استفاده معمولی کد پوسته برای مقداردهی اولیه بار و همچنین انجام خود تزریق.

تجزیه و تحلیل در دیکامپایلر VB حضور یک رویداد را نشان داد بار در فرم FegatassocAirballoon2.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
برویم به IDA pro به آدرس مشخص شده و مطالعه تابع. کد به شدت مبهم است. قطعه مورد علاقه ما در زیر ارائه شده است.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
در اینجا فضای آدرس فرآیند برای یک امضا اسکن می شود. این رویکرد بسیار مشکوک است.

ابتدا آدرس شروع اسکن 0x400100. این مقدار ثابت است و هنگام جابجایی پایه تنظیم نمی شود. در شرایط گلخانه ای ایده آل پایان را نشان می دهد PEهدر فایل اجرایی با این حال، پایگاه داده ایستا نیست، مقدار آن می تواند تغییر کند، و جستجوی آدرس واقعی امضای مورد نیاز، اگرچه باعث سرریز متغیر نمی شود، می تواند زمان بسیار زیادی طول بکشد.

ثانیاً معنای امضاء iWGK. من فکر می کنم واضح است که 4 بایت برای تضمین منحصر به فرد بودن بسیار کوچک است. و اگر نکته اول را در نظر بگیرید، احتمال اشتباه بسیار زیاد است.

در واقع قطعه مورد نیاز به انتهای قطعه ای که قبلا پیدا شده است متصل می شود bmp-تصاویر با افست 0xA1D0D.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
کارایی Shellcode در دو مرحله انجام شد. اولی بدنه اصلی را رمزگشایی می کند. در این مورد، کلید با نیروی بی رحم تعیین می شود.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
رمزگشایی شده را رها کنید Shellcode و به خطوط نگاه کنید

ابتدا، اکنون تابع ایجاد یک فرآیند فرزند را می دانیم: CreateProcessInternalW.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
ثانیاً ما از مکانیسم تثبیت در سیستم آگاه شدیم.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
بیایید به روند اصلی بازگردیم. بگذاریم نقطه شکست بر CreateProcessInternalW و اجرا را ادامه دهید. بعد ارتباط را می بینیم NtGetContextThread/NtSetContextThread، که آدرس شروع اجرا را به آدرس تغییر می دهد ShellCode.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
با دیباگر به فرآیند ایجاد شده متصل می شویم و رویداد را فعال می کنیم به حالت تعلیق در بارگذاری/تخلیه کتابخانه، روند را از سر بگیرید و منتظر بارگذاری باشید دات نت-کتابخانه ها

استفاده بیشتر ProcessHacker تخلیه مناطق حاوی بسته بندی نشده دات نت-کاربرد.

ما تمام فرآیندها را متوقف می کنیم و کپی بدافزاری را که در سیستم جاسازی شده است حذف می کنیم.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
فایل ریخته شده توسط یک محافظ محافظت می شود راکتور دات نت، که با استفاده از یک ابزار به راحتی قابل حذف است de4dot.

مشارکت ناموفق بود: بیایید AgentTesla را در معرض آب تمیز قرار دهیم. قسمت 3
با استفاده از قوانین YARA که قبلاً نوشته شده است، مطمئن می شویم که این AgentTesla است.

به طور خلاصه

بنابراین، ما به طور مفصل فرآیند باز کردن نمونه نیمه خودکار را با استفاده از سه مورد کوچک به عنوان مثال نشان دادیم، و همچنین بدافزار را بر اساس یک مورد کامل تجزیه و تحلیل کردیم، و متوجه شدیم که نمونه مورد مطالعه AgentTesla است، عملکرد و یک لیست کامل شاخص های سازش

تجزیه و تحلیل شی مخربی که ما انجام دادیم نیاز به زمان و تلاش زیادی دارد و این کار باید توسط یک کارمند خاص در شرکت انجام شود، اما همه شرکت ها آمادگی استخدام تحلیلگر را ندارند.

یکی از خدمات ارائه شده توسط Group-IB Laboratory of Computer Forensics and Malicious Code Analysis پاسخ به حوادث سایبری است. و برای اینکه مشتریان در بحبوحه حمله سایبری وقت خود را برای تأیید اسناد و بحث در مورد آنها تلف نکنند، Group-IB راه اندازی شد. نگهدارنده واکنش حوادث، یک سرویس پاسخ به رویداد پیش از اشتراک که شامل مرحله تجزیه و تحلیل بدافزار نیز می شود. اطلاعات بیشتر در مورد این را می توان یافت اینجا.

اگر می‌خواهید یک بار دیگر نحوه باز کردن نمونه‌های AgentTesla را مطالعه کنید و ببینید که چگونه یک متخصص CERT Group-IB این کار را انجام می‌دهد، می‌توانید ضبط وبینار مربوط به این موضوع را دانلود کنید. اینجا.

منبع: www.habr.com

اضافه کردن نظر