با این مقاله مجموعه ای از انتشارات اختصاص داده شده به تجزیه و تحلیل نرم افزارهای مخرب را تکمیل می کنیم. که در
امروز Ilya Pomerantsev، متخصص تجزیه و تحلیل بدافزار در CERT Group-IB، در مورد مرحله اول تجزیه و تحلیل بدافزار - باز کردن نیمه خودکار نمونه های AgentTesla با استفاده از مثال سه مورد کوچک از تمرین متخصصان CERT Group-IB صحبت خواهد کرد.
به طور معمول، اولین مرحله در تجزیه و تحلیل بدافزار، حذف حفاظت در قالب بستهکننده، رمزگذار، محافظ یا لودر است. در بیشتر موارد، این مشکل با اجرای بدافزار و انجام dump قابل حل است، اما شرایطی وجود دارد که این روش مناسب نیست. به عنوان مثال، اگر بدافزار یک رمزگذار باشد، اگر از مناطق حافظه خود در برابر تخلیه محافظت می کند، اگر کد حاوی مکانیسم های تشخیص ماشین مجازی باشد، یا اگر بدافزار بلافاصله پس از راه اندازی مجدد راه اندازی شود. در چنین مواردی از بستهبندی به اصطلاح «نیمه خودکار» استفاده میشود، یعنی محقق بر فرآیند کنترل کامل دارد و میتواند در هر زمانی مداخله کند. بیایید این روش را با استفاده از سه نمونه از خانواده AgentTesla به عنوان مثال در نظر بگیریم. اگر دسترسی به شبکه آن را غیرفعال کنید، این یک بدافزار نسبتا بی ضرر است.
نمونه شماره 1
فایل منبع یک سند MS Word است که از آسیب پذیری CVE-2017-11882 سوء استفاده می کند.
در نتیجه، پیلود دانلود و راه اندازی می شود.
تجزیه و تحلیل درخت فرآیند و نشانگرهای رفتاری تزریق به فرآیند را نشان می دهد RegAsm.exe.
نشانگرهای رفتاری مشخصه AgentTesla وجود دارد.
نمونه دانلود شده قابل اجراست دات نتفایل محافظت شده توسط محافظ راکتور دات نت.
بیایید آن را در ابزار کاربردی باز کنیم dnSpy x86 و به نقطه ورود بروید.
با رفتن به تابع DateTimeOffset، کد اولیه را برای جدید پیدا می کنیم دات نت-مدول. بگذاریم نقطه شکست در خط مورد نظر ما و اجرای فایل.
در یکی از بافرهای برگشتی می توانید امضای MZ را ببینید (0x4D 0x5A). بیایید آن را ذخیره کنیم.
یک فایل اجرایی dumped یک کتابخانه پویا است که یک لودر است، یعنی. پیلود را از قسمت منابع استخراج کرده و راه اندازی می کند.
در عین حال خود منابع لازم در زباله دانی وجود ندارد. آنها در نمونه والد هستند.
سودمندی dnSpy دارای دو عملکرد بسیار مفید است که به ما کمک می کند تا به سرعت یک "Frankenstein" از دو فایل مرتبط ایجاد کنیم.
- اولین مورد به شما امکان می دهد یک کتابخانه پویا را در نمونه والد "پیست" کنید.
- دوم بازنویسی کد تابع در نقطه ورودی برای فراخوانی روش مورد نظر کتابخانه پویا درج شده است.
مجموعه "فرانکنشتاین" خود را ذخیره می کنیم نقطه شکست در خطی که یک بافر با منابع رمزگشایی شده را برمی گرداند و یک Dump را با قیاس با مرحله قبل تولید می کند.
روگرفت دوم در نوشته شده است VB.NET یک فایل اجرایی که توسط یک محافظ آشنا برای ما محافظت می شود ConfuserEx.
پس از حذف محافظ، از قوانین YARA که قبلاً نوشته شده است استفاده می کنیم و مطمئن می شویم که بدافزار باز شده واقعاً AgentTesla است.
نمونه شماره 2
فایل منبع یک سند MS Excel است. یک ماکرو داخلی باعث اجرای کدهای مخرب می شود.
در نتیجه، اسکریپت PowerShell راه اندازی می شود.
اسکریپت کد C# را رمزگشایی می کند و کنترل را به آن منتقل می کند. همانطور که از گزارش sandbox نیز قابل مشاهده است، خود کد یک بوت لودر است.
محموله یک فایل اجرایی است دات نت-فایل.
باز کردن فایل در dnSpy x86، می بینید که مبهم است. رفع ابهام با استفاده از ابزار de4dot و به تحلیل برگردید.
هنگام بررسی کد، ممکن است تابع زیر را کشف کنید:
خطوط رمزگذاری شده قابل توجه هستند نقطه ورود и فراخوانی. ما گذاشتیم نقطه شکست در خط اول، مقدار بافر را اجرا کرده و ذخیره کنید بایت_0.
روگرفت دوباره یک برنامه کاربردی است دات نت و محافظت می شود ConfuserEx.
ما با استفاده از مبهم سازی را حذف می کنیم de4dot و آپلود کنید dnSpy. از توضیحات فایل متوجه می شویم که با آن روبرو هستیم لودر CyaX-Sharp.
این لودر قابلیت ضد آنالیز گسترده ای دارد.
این عملکرد شامل دور زدن سیستمهای محافظت داخلی ویندوز، غیرفعال کردن Windows Defender، و همچنین مکانیسمهای شناسایی جعبه ایمنی و ماشین مجازی است. امکان بارگیری پیلود از شبکه یا ذخیره آن در قسمت منابع وجود دارد. راهاندازی از طریق تزریق به فرآیند خود، به یک تکراری از فرآیند خود یا در فرآیندها انجام میشود MSBuild.exe, vbc.exe и RegSvcs.exe بسته به پارامتر انتخاب شده توسط مهاجم.
با این حال، برای ما آنها اهمیت کمتری دارند آنتی دامپ-عملکردی که اضافه می کند ConfuserEx. کد منبع آن را می توان در یافت
برای غیرفعال کردن حفاظت، از فرصت استفاده خواهیم کرد dnSpy، که به شما امکان ویرایش را می دهد IL-کد
ذخیره و نصب کنید نقطه شکست به خط فراخوانی تابع رمزگشایی محموله. در سازنده کلاس اصلی قرار دارد.
محموله را راه اندازی و رها می کنیم. با استفاده از قوانین YARA قبلاً نوشته شده، مطمئن می شویم که این AgentTesla است.
نمونه شماره 3
فایل منبع فایل اجرایی است VB Native PE32-فایل.
تجزیه و تحلیل آنتروپی وجود یک قطعه بزرگ از داده های رمزگذاری شده را نشان می دهد.
هنگام تجزیه و تحلیل فرم درخواست در دیکامپایلر VB ممکن است متوجه یک پسزمینه پیکسلی عجیب شوید.
نمودار آنتروپی bmp-image با نمودار آنتروپی فایل اصلی یکسان است و اندازه آن 85 درصد اندازه فایل است.
ظاهر کلی تصویر نشان دهنده استفاده از استگانوگرافی است.
بیایید به ظاهر درخت فرآیند و همچنین وجود نشانگر تزریق توجه کنیم.
این نشان می دهد که باز کردن بسته بندی در حال انجام است. برای لودرهای ویژوال بیسیک (با نام مستعار VBKrypt یا VBInjector) استفاده معمولی کد پوسته برای مقداردهی اولیه بار و همچنین انجام خود تزریق.
تجزیه و تحلیل در دیکامپایلر VB حضور یک رویداد را نشان داد بار در فرم FegatassocAirballoon2.
برویم به IDA pro به آدرس مشخص شده و مطالعه تابع. کد به شدت مبهم است. قطعه مورد علاقه ما در زیر ارائه شده است.
در اینجا فضای آدرس فرآیند برای یک امضا اسکن می شود. این رویکرد بسیار مشکوک است.
ابتدا آدرس شروع اسکن 0x400100. این مقدار ثابت است و هنگام جابجایی پایه تنظیم نمی شود. در شرایط گلخانه ای ایده آل پایان را نشان می دهد PEهدر فایل اجرایی با این حال، پایگاه داده ایستا نیست، مقدار آن می تواند تغییر کند، و جستجوی آدرس واقعی امضای مورد نیاز، اگرچه باعث سرریز متغیر نمی شود، می تواند زمان بسیار زیادی طول بکشد.
ثانیاً معنای امضاء iWGK. من فکر می کنم واضح است که 4 بایت برای تضمین منحصر به فرد بودن بسیار کوچک است. و اگر نکته اول را در نظر بگیرید، احتمال اشتباه بسیار زیاد است.
در واقع قطعه مورد نیاز به انتهای قطعه ای که قبلا پیدا شده است متصل می شود bmp-تصاویر با افست 0xA1D0D.
کارایی Shellcode در دو مرحله انجام شد. اولی بدنه اصلی را رمزگشایی می کند. در این مورد، کلید با نیروی بی رحم تعیین می شود.
رمزگشایی شده را رها کنید Shellcode و به خطوط نگاه کنید
ابتدا، اکنون تابع ایجاد یک فرآیند فرزند را می دانیم: CreateProcessInternalW.
ثانیاً ما از مکانیسم تثبیت در سیستم آگاه شدیم.
بیایید به روند اصلی بازگردیم. بگذاریم نقطه شکست بر CreateProcessInternalW و اجرا را ادامه دهید. بعد ارتباط را می بینیم NtGetContextThread/NtSetContextThread، که آدرس شروع اجرا را به آدرس تغییر می دهد ShellCode.
با دیباگر به فرآیند ایجاد شده متصل می شویم و رویداد را فعال می کنیم به حالت تعلیق در بارگذاری/تخلیه کتابخانه، روند را از سر بگیرید و منتظر بارگذاری باشید دات نت-کتابخانه ها
استفاده بیشتر ProcessHacker تخلیه مناطق حاوی بسته بندی نشده دات نت-کاربرد.
ما تمام فرآیندها را متوقف می کنیم و کپی بدافزاری را که در سیستم جاسازی شده است حذف می کنیم.
فایل ریخته شده توسط یک محافظ محافظت می شود راکتور دات نت، که با استفاده از یک ابزار به راحتی قابل حذف است de4dot.
با استفاده از قوانین YARA که قبلاً نوشته شده است، مطمئن می شویم که این AgentTesla است.
به طور خلاصه
بنابراین، ما به طور مفصل فرآیند باز کردن نمونه نیمه خودکار را با استفاده از سه مورد کوچک به عنوان مثال نشان دادیم، و همچنین بدافزار را بر اساس یک مورد کامل تجزیه و تحلیل کردیم، و متوجه شدیم که نمونه مورد مطالعه AgentTesla است، عملکرد و یک لیست کامل شاخص های سازش
تجزیه و تحلیل شی مخربی که ما انجام دادیم نیاز به زمان و تلاش زیادی دارد و این کار باید توسط یک کارمند خاص در شرکت انجام شود، اما همه شرکت ها آمادگی استخدام تحلیلگر را ندارند.
یکی از خدمات ارائه شده توسط Group-IB Laboratory of Computer Forensics and Malicious Code Analysis پاسخ به حوادث سایبری است. و برای اینکه مشتریان در بحبوحه حمله سایبری وقت خود را برای تأیید اسناد و بحث در مورد آنها تلف نکنند، Group-IB راه اندازی شد. نگهدارنده واکنش حوادث، یک سرویس پاسخ به رویداد پیش از اشتراک که شامل مرحله تجزیه و تحلیل بدافزار نیز می شود. اطلاعات بیشتر در مورد این را می توان یافت
اگر میخواهید یک بار دیگر نحوه باز کردن نمونههای AgentTesla را مطالعه کنید و ببینید که چگونه یک متخصص CERT Group-IB این کار را انجام میدهد، میتوانید ضبط وبینار مربوط به این موضوع را دانلود کنید.
منبع: www.habr.com