لوگوی ارتباط افزار افق
بستن

تکنیک جدید تزریق بدافزار به نام Mockingjay

تکنیک جدید process injection

فهرست مطالب

تزریق بدافزار یا Process Injection به چه معناست ؟

تکنیکی که به کمک آن اجرای کدهای غیر مجاز در فضای آدرس پردازه‌های مجاز، امکان پذیر می‌شود. این تکنیک به مجرمین سایبری اجازه آلوده کردن هر سیستمی به انوع بدافزار با کمترین میزان شناسایی را می‌دهد. با این روش بدافزار درون برنامه‌ها و پردازه‌های مجاز که معمولا پردازه‌های سیستم عامل‌ها می‌باشند، تزریق شده و از سطح دسترسی آن پردازه‌ها برای انجام عملیات خرابکارانه بهره می‌برند. به طور کلی شناسایی بدافزار از طریق مانیتور کردن لیست پردازه‌های در حال اجرا میسر است به همین دلیل بدافزارهایی که به روش Process Injection به درون پردازه‌های سالم راه می‌یابند شناسایی دشوارتری دارند و به راحتی می‌توانند در بین تمامی کامپیوترهای شبکه تکثیر شوند.

البته سیستم های پیشرفته امنیت سایبری همچون EDR (Endpoint Detection & Response) توانایی شناسایی چنین بدافزارهای ناشناخته‌ای را خواهند داشت. این سیستم‌ها با مانیتور کردن عملیات اختصاص حافظه، بارگذاری فایل و اجرای برنامه‌ها امکان شناسایی و تشخیص عملیات Process Injection را خواهند داشت. توسعه دهندگان بدافزارها معمولا از پردازه‌های معمولی ویندوز همچونcmd.exe ، msbuild.exe و explorer.exe استفاده می‌کنند و کدهای مخرب خود را در آن ها تزریق می‌کند لذا تشخیص چنین بدافزارهایی، دیگر به دشواری قبل نخواهد بود.

روش های Process Injection

DLL Injection: در این روش هکر از یک DLL  برای نفوذ در یک پردازه استفاده می کند و آن پردازه را مجبور می‌کند که طور دیگری رفتار نماید که کاربر انتظار آن را ندارد.

PE Injection: هکر با استفاده از یک فایل PE اقدام به آلوده کردن یک پردازه در حال اجرا بروی سیستم می‌کند. این روش نسبت به دیگر روش بسیار ساده‌تر می‌باشد و هکر می‌تواند کدهای PE را به راحتی با زبان C++ کدنویسی کند.

Process Hollowing:این روش به جای بهره گیری از پردازه های در حال اجرا، پردازه‌های جدید تولید می‌کند اما آن را با کدهای مخرب آلوده می‌کند. هکر پروسه‌های جدیدی به نام svchost.exe یا notepad ایجاد می‌کند که کاربران با دیدن چنین پروسه‌های به هیچ عنوان به آنها شک نخواهند برد در حالی که آنها در حال اجرای عملیات خرابکارانه هستند.

روش جدید Mockingjay

این روش جدید که Mockingjay نام گذاری شده است به هکرها اجازه می‌دهد بدون شناسایی شدن توسط سیستم EDR به صورت کاملا مخفیانه کدهای مخرب را در سیستم قربانی اجرا نمایند. محققان امنیت سایبری Security Joes این روش را کشف کرده‌اند؛ آنها از فایل‌های DLL مجازی که دارای قسمت RWX می‌باشند استفاده می‌کند تا سنسورهای EDR قادر به تشخیص تزریق کد به دورن پردازه‌ها نشوند.

در روش‌های کلاسیک process injecting هکر مجبور به استفاده از api ها و توابع سیستمی می‌باشد که شامل ایجاد پردازه/رشته جدید، نوشتن برروی حافظه رم و دیگر عملیات سیستمی با دسترسی بالا می‌باشد. به همین دلیل سیستم‌های مانیتورینگ حساسیت بالایی روی چنین عملیات‌هایی دارند و به راحتی می‌توانند چنین حوادث و دخالت‌های مشکوکی را شناسایی و نسبت به مقابله با آن اقدام نمایند. روش Mockingjay از توابع و api های معمول سیستمی جهت اجرای این حمله بهره نمی‌برد و به همین دلیل فرصت شناسایی شدن توسط سیستم‌های امنیت سایبری را از بین می‌برد.

ابداع روش Mockingjay

هدف اول محققان یافتن فایل  DLL ای بود که به صورت پیش فرض دارای قسمت RWX می‌باشد، تا بتوانند با ویرایش محتوای آن کدهای مخرب را درون آن بارگذاری نمایند. برای اینکار آنها فایل DLL ای به نام msys-2.0.dll را درون Visual Sutdio 2022 یافتند که به صورت پیش فرض دارای RWX می‌باشد. جهت نفوذ در RWX می‌توان از حافظه امن به ارث برده شده آن استفاده کرد و به صورت مؤثر احتمال هرگونه شناسایی توسط ضد ویروس‌ها را از بین برد. در ادامه این تیم توانست دو روش تزریق توسعه بدهند، یکی برای تزریق بروی سیستم جاری و دیگری بروی سیستم ریموت.

در حالت اول، برنامه‌ای به نام nightmare.exe فایل DLL آسیب پذیر را درون حافظه بارگزاری می‌کنند اینکار توسط توابع ویندوز انجام می‌گیرد، بارگذاری این فایل دسترسی به قسمت RWX را بدون درخواست تخصیص حافظه(memory allocation) به ارمغان می‌آورد.

تزریق بدافزار با استفاده از روش Mockingjay

سپس از یک ماژول سیستمی به نام NTDLL.DLL که فاقد آسیب پذیری مذکور است جهت استخراج مقادیر عددیی توابع سیستمی استفاده می‌شود. این تکنیک که به Hell’s Gate EDR unhooking مشهور است سنسورهای تشخیص سیستم EDR را دور میزند و قادر به اجرای توابع سیستمی با دسترسی بالا است.

روش دوم، شامل استفاده از RWX فایل msys-2.0.dll برای تزریق یک پیلود به درون یک پردازه ریموت می‌باشد که این پردازه ریموت معمولا ssh.exe می‌باشد. یک نرم افزار مخرب پروسه ssh.exe را به عنوان پروسه فرزند اجرا می‌کند، و با برقراری یک اتصال به سیستم هدف کدهای مخرب را به درون RWX فایل DLL آسیب پذیر تزریق می‌کند.

کدهای تزریق شده بروی سیستم هدف فایل dll مخربی را بارگذاری می‌کند که منجر به برقراری یک اتصال reverse shell از کامپیوتر مقصد می‌گردد. آزمایشات نشان میدهد که این روش تزریق کد به کامپیوتر ریموت، بدون نیاز به ساخت thread  جدید از پروسه هدف، درخواست تخصیص حافظه و یا اعمال دسترسی های با موفقیت سیستم EDR را دور میزند.

mokingjay process injection method 2

هر دو این روش‌ها از توابع ویندوزی شامل LoadLibraryW ، CreateProcessW و GetModuleInformation برای بارگذاری فایل dll و یافتن قسمت RWX استفاده می‌کنند. در حالی که اکثر سیستم های EDR معمولا فراخوانی توابع ویندوزی همچون WriteProcessMemory ، NtWriteVirtualMemroy ، CreateRemoteThread و NtCreateThreadEx مانیتور می‌کنند. توابع یاد شده معمولا در روش‌های معمول تزریق کد استفاده می‌شوند که با این حساب به نظر می‌رسد روش Mockingjay می‌تواند بدون شناسایی شدن توسط سیستم‌های EDR عملیات خود را انجام دهد.

0 دیدگاه

دیدگاهتان را بنویسید

Avatar placeholder

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

DLL Injection: در این روش هکر از یک DLL  برای نفوذ در یک پردازه استفاده می کند و آن پردازه را مجبور می‌کند که طور دیگری رفتار نماید که کاربر انتظار آن را ندارد.

PE Injection: هکر با استفاده از یک فایل PE اقدام به آلوده کردن یک پردازه در حال اجرا بروی سیستم می‌کند. این روش نسبت به دیگر روش بسیار ساده‌تر می‌باشد و هکر می‌تواند کدهای PE را به راحتی با زبان C++ کدنویسی کند.

Process Hollowing:این روش به جای بهره گیری از پردازه های در حال اجرا، پردازه‌های جدید تولید می‌کند اما آن را با کدهای مخرب آلوده می‌کند. هکر پروسه‌های جدیدی به نام svchost.exe یا notepad ایجاد می‌کند که کاربران با دیدن چنین پروسه‌های به هیچ عنوان به آنها شک نخواهند برد در حالی که آنها در حال اجرای عملیات خرابکارانه هستند.