فرار از دفاع
Defense Evasionتوضیحات
مهاجم سعی میکند در طول نفوذ از شناسایی جلوگیری کند. تکنیکهای فرار از دفاع شامل حذف نصب یا غیرفعال کردن نرمافزارهای امنیتی، مبهمسازی و رمزگذاری دادهها و اسکریپتها، و سوءاستفاده از فرآیندهای مورد اعتماد برای پنهان کردن و ظاهر قانونی دادن به بدافزار میشود.
تکنیکها (47)
مهاجمان مستقیماً به volumeهای دیسک دسترسی پیدا میکنند تا از مکانیزمهای دسترسی فایل سیستمعامل عبور کنند. با دسترسی مستقیم به volume، مهاجمان میتوانند فایلهایی که توسط سیستمعامل قفل شدهاند را بخوانند، از آنتیویروس فرار کنند و آثار فعالیت خود را پنهان کنند.
مهاجمان فایلها، اسکریپتها و payloadها را مبهمسازی میکنند تا شناسایی را دشوارتر کنند. این تکنیک شامل رمزگذاری، encoding، packing، steganography و سایر روشهای پنهانسازی محتوای مخرب میشود.
مهاجمان دادههای تصادفی به فایلهای اجرایی اضافه میکنند تا hash آنها را تغییر دهند و از شناسایی مبتنی بر hash فرار کنند. این تکنیک میتواند اندازه فایل را تغییر دهد تا از آستانههای اسکن برخی ابزارهای امنیتی عبور کند.
مهاجمان از packerها برای فشردهسازی و رمزگذاری فایلهای اجرایی استفاده میکنند تا از شناسایی توسط آنتیویروس فرار کنند. Packerهای معروف مانند UPX، MPRESS و packerهای سفارشی برای این منظور استفاده میشوند.
مهاجمان کد منبع یا bytecode را به سیستم هدف تحویل میدهند و آن را روی سیستم هدف compile میکنند. این تکنیک از شناسایی مبتنی بر امضا فرار میکند زیرا فایل اجرایی نهایی روی سیستم هدف ایجاد میشود.
مهاجمان از HTML Smuggling برای دور زدن فیلترهای شبکه و تحویل payloadهای مخرب از طریق مرورگر استفاده میکنند. با استفاده از JavaScript و HTML5 Blob API، payload مخرب در مرورگر کاربر مونتاژ میشود.
مهاجمان دستورات shell را مبهمسازی میکنند تا از شناسایی توسط ابزارهای امنیتی فرار کنند. این شامل استفاده از کاراکترهای خاص، encoding، جایگزینی متغیر و سایر روشهای مبهمسازی در PowerShell، cmd و bash میشود.
مهاجمان نام، مکان یا ظاهر فایلها و فرآیندهای مخرب را تغییر میدهند تا قانونی به نظر برسند. این تکنیک شامل استفاده از نامهای مشابه فایلهای سیستمی، قرار دادن فایلها در مسیرهای قانونی و جعل امضای دیجیتال میشود.
مهاجمان امضاهای کد نامعتبر یا جعلی را به فایلهای اجرایی اضافه میکنند تا قانونی به نظر برسند. برخی ابزارهای امنیتی تنها وجود امضا را بررسی میکنند نه اعتبار آن را.
مهاجمان ابزارهای سیستمی را کپی و تغییر نام میدهند تا از شناسایی مبتنی بر نام فرار کنند. مثلاً cmd.exe را به svchost.exe تغییر نام میدهند تا در لیست فرآیندها مشکوک به نظر نرسد.
مهاجمان فایلهای مخرب را با نامها یا در مکانهایی که مشابه فایلهای قانونی هستند قرار میدهند. مثلاً فایل مخرب را در C:\Windows\System32\ با نام مشابه یک فایل سیستمی قرار میدهند.
مهاجمان از پسوندهای فایل دوگانه مانند invoice.pdf.exe استفاده میکنند تا کاربران را فریب دهند. ویندوز به صورت پیشفرض پسوند فایل را پنهان میکند، بنابراین کاربر فقط invoice.pdf را میبیند.
مهاجمان کد مخرب را به فرآیندهای در حال اجرا تزریق میکنند تا از فضای آدرس آنها برای پنهانسازی و ارتقاء سطح دسترسی استفاده کنند. تزریق به فرآیندهای با سطح دسترسی بالا میتواند به مهاجمان اجازه دهد به منابع سیستمی که معمولاً غیرقابل دسترس هستند دسترسی داشته باشند.
مهاجمان DLLهای مخرب را به فرآیندهای در حال اجرا تزریق میکنند. با استفاده از APIهایی مانند CreateRemoteThread و LoadLibrary، مهاجمان میتوانند DLL مخرب را در فضای آدرس یک فرآیند قانونی بارگذاری کنند. این تکنیک برای پنهانسازی و ارتقاء سطح دسترسی استفاده میشود.
مهاجمان کد PE (Portable Executable) مخرب را مستقیماً به حافظه فرآیندهای در حال اجرا تزریق میکنند. برخلاف DLL injection، این روش نیازی به فایل روی دیسک ندارد و میتواند کاملاً در حافظه اجرا شود. این تکنیک برای اجرای fileless malware استفاده میشود.
مهاجمان threadهای موجود در فرآیندهای قانونی را suspend میکنند، کد مخرب را به حافظه آنها مینویسند و سپس اجرا را از سر میگیرند. این تکنیک به مهاجمان اجازه میدهد کد مخرب را در زمینه فرآیندهای قانونی اجرا کنند.
مهاجمان از Asynchronous Procedure Call (APC) برای تزریق کد به threadهای فرآیندهای دیگر استفاده میکنند. APC یک مکانیزم ویندوز برای اجرای کد در زمینه یک thread خاص است. مهاجمان میتوانند APC مخرب را به threadهای در حالت alertable state صف کنند.
مهاجمان یک فرآیند قانونی را در حالت suspended ایجاد میکنند، کد اصلی آن را از حافظه خالی میکنند و با کد مخرب جایگزین میکنند. این تکنیک که به عنوان RunPE نیز شناخته میشود، به مهاجمان اجازه میدهد کد مخرب را در قالب یک فرآیند قانونی اجرا کنند.
مهاجمان از Windows Transactional NTFS (TxF) برای ایجاد فرآیندهایی از فایلهای مخرب که هرگز روی دیسک نوشته نمیشوند استفاده میکنند. این تکنیک بسیاری از ابزارهای امنیتی را دور میزند زیرا فایل مخرب در سیستم فایل قابل مشاهده نیست.
مهاجمان از پنجرههای ListView در برنامههای ویندوز برای تزریق کد استفاده میکنند. با ارسال پیامهای خاص به پنجرههای ListView، مهاجمان میتوانند callback functionهای مخرب را در زمینه فرآیند هدف اجرا کنند.
مهاجمان آثار و شاخصهای فعالیت خود را حذف یا تغییر میدهند تا از شناسایی جلوگیری کنند. این تکنیک شامل پاک کردن لاگها، حذف فایلها، تغییر timestampها و حذف مکانیزمهای پایداری میشود.
مهاجمان لاگهای رویداد ویندوز را پاک میکنند تا آثار فعالیت خود را حذف کنند. با استفاده از wevtutil، PowerShell یا APIهای ویندوز، مهاجمان میتوانند لاگهای Security، System و Application را پاک کنند.
مهاجمان تاریخچه دستورات shell را پاک میکنند تا آثار فعالیت خود را حذف کنند. در لینوکس، فایل .bash_history و در PowerShell، تاریخچه PSReadLine هدف هستند.
مهاجمان فایلهای مخرب را پس از اجرا حذف میکنند تا آثار خود را پنهان کنند. این شامل حذف payloadها، ابزارها و سایر فایلهای مرتبط با حمله میشود.
مهاجمان timestampهای فایلها را تغییر میدهند تا تحلیل forensics را دشوارتر کنند. با تغییر زمان ایجاد، تغییر و دسترسی فایل، مهاجمان میتوانند timeline حمله را مخدوش کنند.
مهاجمان مکانیزمهای پایداری را پس از اتمام عملیات حذف میکنند تا آثار خود را پنهان کنند. این شامل حذف scheduled taskها، سرویسها، کلیدهای رجیستری Run و سایر مکانیزمهای پایداری میشود.
مهاجمان از اعتبارنامههای معتبر برای دسترسی به سیستمها استفاده میکنند. این اعتبارنامهها ممکن است از طریق فیشینگ، credential stuffing، brute force، خرید از dark web یا سایر روشها به دست آمده باشند. استفاده از حسابهای معتبر شناسایی را بسیار دشوار میکند زیرا فعالیت مهاجم شبیه فعالیت قانونی به نظر میرسد.
مهاجمان از حسابهای پیشفرض سیستمعامل، دستگاههای شبکه، نرمافزارها یا سرویسهای ابری استفاده میکنند. این حسابها اغلب با رمزعبورهای پیشفرض شناختهشده پیکربندی میشوند. مثالها شامل حساب Administrator ویندوز، حساب root لینوکس، حسابهای پیشفرض روترها و سوئیچها، و حسابهای پیشفرض سرویسهای ابری است.
مهاجمان از اعتبارنامههای حسابهای دامنه Active Directory برای دسترسی به سیستمها و منابع شبکه استفاده میکنند. حسابهای دامنه اغلب دسترسی گستردهای به منابع شبکه دارند و استفاده از آنها شناسایی را دشوار میکند. مهاجمان ممکن است از Pass-the-Hash، Pass-the-Ticket یا سایر تکنیکها برای استفاده از اعتبارنامههای دامنه بدون دانستن رمزعبور استفاده کنند.
مهاجمان از اعتبارنامههای حسابهای محلی روی سیستمهای هدف استفاده میکنند. این حسابها مستقیماً روی سیستم تعریف شدهاند و به دامنه متصل نیستند. مهاجمان ممکن است از حسابهای محلی پیشفرض، حسابهای ایجاد شده توسط نرمافزارها یا حسابهای ایجاد شده توسط خود مهاجم استفاده کنند.
مهاجمان از اعتبارنامههای حسابهای ابری برای دسترسی به سرویسهای ابری و منابع مرتبط استفاده میکنند. این حسابها ممکن است cloud-only یا hybrid-federated با Active Directory باشند. مهاجمان ممکن است از brute force، فیشینگ، credential stuffing یا سرقت token برای به دست آوردن دسترسی استفاده کنند.
مهاجمان رجیستری ویندوز را برای پنهان کردن پیکربندی، اجرای کد مخرب و ایجاد پایداری تغییر میدهند. رجیستری ویندوز یک پایگاه داده سلسلهمراتبی است که تنظیمات سیستم و برنامهها را ذخیره میکند. مهاجمان میتوانند از رجیستری برای ذخیره payload، تنظیم autorun و پنهان کردن فعالیتها استفاده کنند.
مهاجمان توکنهای دسترسی ویندوز را دستکاری میکنند تا با زمینه امنیتی کاربر یا سیستم دیگری عمل کنند. ویندوز از توکنهای دسترسی برای تعیین مالکیت فرآیند استفاده میکند. با سرقت یا جعل توکن، مهاجمان میتوانند سطح دسترسی خود را از مدیر به SYSTEM ارتقاء دهند.
مهاجمان توکنهای دسترسی کاربران دیگر را سرقت میکنند تا با سطح دسترسی آنها عمل کنند. با استفاده از APIهایی مانند ImpersonateLoggedOnUser و DuplicateTokenEx، مهاجمان میتوانند توکن کاربران با سطح دسترسی بالاتر را جعل کنند.
مهاجمان از API CreateProcessWithTokenW برای ایجاد فرآیندهای جدید با توکن کاربران دیگر استفاده میکنند. این تکنیک به مهاجمان اجازه میدهد فرآیندهایی با سطح دسترسی بالاتر ایجاد کنند بدون اینکه نیاز به اعتبارنامه کاربر داشته باشند.
مهاجمان از API LogonUser برای ایجاد توکن جدید با اعتبارنامههای شناخته شده استفاده میکنند و سپس با آن توکن جعل هویت میکنند. این تکنیک به مهاجمانی که اعتبارنامه کاربر هدف را دارند اجازه میدهد با سطح دسترسی آن کاربر عمل کنند.
مهاجمان شناسه فرآیند والد (PPID) فرآیندهای جدید را جعل میکنند تا از ابزارهای نظارت فرآیند فرار کنند یا سطح دسترسی را ارتقاء دهند. با استفاده از CreateProcess API و STARTUPINFOEX، مهاجمان میتوانند فرآیندی را به عنوان فرزند یک فرآیند با سطح دسترسی بالا ایجاد کنند.
مهاجمان SID-History attribute حسابهای Active Directory را دستکاری میکنند تا سطح دسترسی را ارتقاء دهند. SID-History برای migration حسابها بین دامنهها طراحی شده اما میتواند برای اضافه کردن SIDهای با سطح دسترسی بالا به حسابهای عادی استفاده شود.
مهاجمان فایلها یا اطلاعات رمزگذاری شده یا encode شده را برای اجرا decode میکنند. این تکنیک اغلب با T1027 ترکیب میشود. ابزارهایی مانند certutil، PowerShell و سایر ابزارهای سیستمی برای decode کردن payloadهای مخرب استفاده میشوند.
مهاجمان افزونههای مرورگر مخرب را نصب میکنند تا دسترسی مداوم داشته باشند و اطلاعات را جمعآوری کنند. افزونههای مرورگر دسترسی گستردهای به محتوای وب، اعتبارنامهها و ترافیک شبکه دارند. مهاجمان میتوانند افزونههای مخرب را از طریق فروشگاههای رسمی یا نصب مستقیم توزیع کنند.
مهاجمان از Windows Background Intelligent Transfer Service (BITS) برای دانلود، اجرا و پایداری سوءاستفاده میکنند. BITS یک سرویس ویندوز برای انتقال فایل در پسزمینه است که اغلب توسط Windows Update استفاده میشود. مهاجمان میتوانند کارهای BITS مخرب ایجاد کنند که payload را دانلود و اجرا کنند.
مهاجمان از ابزارهایی استفاده میکنند که میتوانند دستورات را به صورت غیرمستقیم اجرا کنند تا از نظارت بر shellها فرار کنند. ابزارهایی مانند forfiles، pcalua.exe، bash.exe و سایر ابزارهای ویندوز میتوانند برای اجرای دستورات بدون استفاده مستقیم از cmd.exe یا PowerShell استفاده شوند.
مهاجمان از تکنیکهای سیگنالدهی ترافیک مانند port knocking برای پنهان کردن پورتهای باز و دسترسی به backdoor استفاده میکنند. این تکنیک به مهاجمان اجازه میدهد سرویسهای مخرب را از دید ابزارهای اسکن شبکه پنهان کنند و تنها با ارسال دنباله خاصی از بستهها به آنها دسترسی داشته باشند.
مهاجمان یک Domain Controller جعلی ایجاد میکنند تا replicationهای مخرب را به DCهای قانونی ارسال کنند. با استفاده از DCShadow، مهاجمان میتوانند اشیاء Active Directory را بدون ثبت در لاگهای معمول تغییر دهند.
مهاجمان از آسیبپذیریهای نرمافزارهای امنیتی برای غیرفعال کردن یا دور زدن آنها استفاده میکنند. این شامل بهرهبرداری از باگهای آنتیویروس، EDR، فایروال و سایر ابزارهای امنیتی میشود. موفقیت در این تکنیک میتواند منجر به کور شدن کامل ابزارهای امنیتی شود.
مهاجمان از اسکریپتهای امضاشده سیستمی برای اجرای payloadهای مخرب استفاده میکنند. اسکریپتهایی مانند PubPrn.vbs و SyncAppvPublishingServer.vbs میتوانند برای دانلود و اجرای کد مخرب از راه دور استفاده شوند.
مهاجمان از باینریهای امضاشده و مورد اعتماد سیستم برای اجرای payloadهای مخرب استفاده میکنند. این تکنیک که به عنوان Living off the Land نیز شناخته میشود، از ابزارهایی مانند rundll32، regsvr32، mshta، certutil و سایر ابزارهای سیستمی برای دور زدن Application Whitelisting استفاده میکند.
مهاجمان از Microsoft Connection Manager Profile Installer (CMSTP.exe) برای اجرای DLLهای مخرب یا دور زدن UAC استفاده میکنند. CMSTP یک باینری امضاشده ویندوز است که میتواند برای اجرای payloadهای مخرب استفاده شود.
مهاجمان از mshta.exe برای اجرای فایلهای HTA (HTML Application) مخرب استفاده میکنند. HTA فایلها میتوانند شامل VBScript یا JScript باشند که با سطح دسترسی کامل اجرا میشوند. mshta.exe یک باینری امضاشده ویندوز است.
مهاجمان از regsvr32.exe برای اجرای DLLهای مخرب و دور زدن Application Whitelisting استفاده میکنند. regsvr32 میتواند COM scriptletها را از URLهای خارجی دانلود و اجرا کند که به این تکنیک Squiblydoo نیز گفته میشود.
مهاجمان از rundll32.exe برای اجرای DLLهای مخرب استفاده میکنند. rundll32 یک باینری قانونی ویندوز است که میتواند برای اجرای توابع صادر شده از DLLها استفاده شود. این تکنیک برای دور زدن Application Whitelisting رایج است.
مهاجمان از XSL (Extensible Stylesheet Language) برای اجرای کد مخرب از طریق msxsl.exe یا wmic.exe استفاده میکنند. فایلهای XSL میتوانند شامل اسکریپتهای JScript یا VBScript باشند که در هنگام پردازش XSL اجرا میشوند.
مهاجمان از قابلیت template در فایلهای Office برای بارگذاری محتوای مخرب از URLهای خارجی استفاده میکنند. با تنظیم URL یک template مخرب در فایل Office، کد مخرب در هنگام باز شدن فایل دانلود و اجرا میشود.
مهاجمان مجوزهای فایلها و دایرکتوریها را تغییر میدهند تا دسترسی به فایلهای حساس را مسدود کنند یا به فایلهای محافظت شده دسترسی پیدا کنند. این تکنیک میتواند برای جلوگیری از حذف بدافزار یا دسترسی به فایلهای قفل شده استفاده شود.
مهاجمان payloadهای خود را با شرایطی پیکربندی میکنند که تنها در محیطهای هدف خاص اجرا شوند. این تکنیک از اجرای تصادفی در محیطهای تحلیل جلوگیری میکند و شناسایی را دشوارتر میکند. شرایط میتوانند شامل نام کامپیوتر، نام کاربر، زبان سیستم یا سایر مشخصات محیطی باشند.
مهاجمان تنظیمات سیاست دامنه یا tenant ابری را تغییر میدهند تا سطح دسترسی را ارتقاء دهند یا از دفاعها فرار کنند. با داشتن مجوزهای کافی، مهاجمان میتوانند Group Policy Objectها را تغییر دهند، trustهای دامنه را اضافه کنند یا تنظیمات federation را دستکاری کنند.
مهاجمان Group Policy Objectها (GPO) را تغییر میدهند تا وظایف زمانبندی شده مخرب، اسکریپتها یا تنظیمات را در سراسر دامنه توزیع کنند. با دسترسی به GPO، مهاجمان میتوانند کد مخرب را روی تمام سیستمهای عضو دامنه اجرا کنند.
مهاجمان trustهای دامنه جدید اضافه میکنند یا trustهای موجود را تغییر میدهند تا سطح دسترسی را ارتقاء دهند. این شامل دستکاری تنظیمات federation، جعل SAML token با اضافه کردن certificateهای مهاجم یا تبدیل دامنهها به federated domain میشود.
مهاجمان محیطهای مجازیسازی و تحلیل را شناسایی میکنند تا از اجرا در sandbox جلوگیری کنند. بدافزار ممکن است آثار VM، ابزارهای نظارت امنیتی یا فعالیت کاربر را بررسی کند. در صورت شناسایی محیط تحلیل، بدافزار ممکن است خود را غیرفعال کند.
مهاجمان آثار مجازیسازی مانند registry keyهای VM، فایلهای VM، فرآیندهای VM و سختافزار VM را بررسی میکنند. در صورت شناسایی محیط مجازی، بدافزار ممکن است خود را غیرفعال کند یا رفتار خود را تغییر دهد.
مهاجمان از تأخیرهای زمانی برای فرار از sandboxهای با محدودیت زمانی استفاده میکنند. این شامل sleepهای طولانی، حلقههای زمانی، API hammering و تشخیص شتابدهی زمان در sandbox میشود.
مهاجمان تصاویر کانتینر یا ماشین مجازی موجود در registry داخلی را با کد مخرب آلوده میکنند تا پایداری ایجاد کنند. با آلوده کردن تصاویر پایه، مهاجمان میتوانند اطمینان حاصل کنند که هر کانتینر یا VM جدید که از این تصویر ایجاد میشود، کد مخرب را اجرا میکند.
مهاجمان از مکانیزمهای بوت قبل از سیستمعامل برای ایجاد پایداری سوءاستفاده میکنند. با نصب بدافزار در firmware یا bootloader، مهاجمان میتوانند قبل از بارگذاری سیستمعامل کد اجرا کنند و از اکثر ابزارهای امنیتی مبتنی بر OS فرار کنند. این سطح از پایداری بسیار دشوار برای شناسایی و حذف است.
مهاجمان firmware سیستم مانند BIOS و UEFI را تغییر میدهند تا پایداری در سطح پایینتر از سیستمعامل ایجاد کنند. بدافزار firmware میتواند حتی پس از نصب مجدد سیستمعامل باقی بماند. گروههایی مانند Equation Group از این تکنیک استفاده کردهاند.
مهاجمان firmware کامپوننتهای سختافزاری مانند هارد دیسک، کارت شبکه و سایر دستگاههای جانبی را تغییر میدهند. firmware کامپوننت میتواند برای ذخیره payloadهای مخرب در مناطقی که توسط سیستمعامل قابل دسترسی نیستند استفاده شود.
مهاجمان Master Boot Record (MBR) یا Volume Boot Record (VBR) را با کد مخرب جایگزین میکنند. Bootkitها قبل از بارگذاری سیستمعامل اجرا میشوند و میتوانند سیستمعامل را تغییر دهند، rootkit نصب کنند و از اکثر ابزارهای امنیتی فرار کنند.
مهاجمان ROM Monitor (ROMMON) دستگاههای شبکه Cisco را با firmware غیرمجاز جایگزین میکنند. ROMMON یک محیط بوت پایه برای دستگاههای Cisco است. با تغییر ROMMON، مهاجمان میتوانند پایداری عمیقی در دستگاههای شبکه ایجاد کنند.
مهاجمان پیکربندی دستگاههای شبکه را تغییر میدهند تا سیستمعامل از یک سرور TFTP مخرب بارگذاری شود. این تکنیک به مهاجمان اجازه میدهد سیستمعامل دستگاه را با نسخه آلوده جایگزین کنند.
مهاجمان فرآیندهای سطح سیستم را ایجاد یا تغییر میدهند تا کد مخرب را به طور مکرر اجرا کنند. سرویسهای ویندوز، daemonهای لینوکس و Launch Agent/Daemonهای macOS میتوانند برای اجرای payloadهای مخرب با سطح دسترسی بالا پیکربندی شوند.
مهاجمان فایلهای plist مربوط به Launch Agent در macOS را ایجاد یا تغییر میدهند تا کد مخرب را با سطح دسترسی کاربر اجرا کنند. Launch Agentها در ~/Library/LaunchAgents/ و /Library/LaunchAgents/ قرار دارند و در هنگام ورود کاربر اجرا میشوند.
مهاجمان فایلهای سرویس systemd را در لینوکس ایجاد یا تغییر میدهند تا payloadهای مخرب را در هنگام بوت سیستم اجرا کنند. فایلهای سرویس systemd در /etc/systemd/system/ و /lib/systemd/system/ قرار دارند.
مهاجمان سرویسهای ویندوز را ایجاد یا تغییر میدهند تا کد مخرب را با سطح دسترسی SYSTEM اجرا کنند. سرویسهای ویندوز میتوانند برای اجرا، پایداری و ارتقاء سطح دسترسی استفاده شوند. ابزارهایی مانند sc.exe، PsExec و Metasploit برای این منظور استفاده میشوند.
مهاجمان فایلهای plist مربوط به Launch Daemon در macOS را ایجاد یا تغییر میدهند تا payloadهای مخرب را با سطح دسترسی root اجرا کنند. Launch Daemonها در /Library/LaunchDaemons/ قرار دارند و قبل از ورود کاربر اجرا میشوند.
مهاجمان مکانیزمهای اجرای مبتنی بر رویداد را برای ایجاد پایداری پیکربندی میکنند. این تکنیک شامل تغییر تنظیماتی است که باعث میشود کد مخرب در پاسخ به رویدادهای خاص سیستم اجرا شود. رویدادهایی مانند ورود کاربر، تغییر فایل یا رویدادهای WMI میتوانند اجرای کد مخرب را آغاز کنند.
مهاجمان از اشتراک رویداد WMI برای اجرای کد مخرب در پاسخ به رویدادهای سیستم استفاده میکنند. WMI Event Subscription شامل سه کامپوننت است: EventFilter، EventConsumer و FilterToConsumerBinding. این تکنیک میتواند برای اجرای کد بدون فایل (fileless) استفاده شود.
مهاجمان برنامههای دسترسیپذیری ویندوز مانند Sticky Keys، Utilman و Narrator را با cmd.exe یا سایر ابزارها جایگزین میکنند تا بدون احراز هویت به سیستم دسترسی داشته باشند. این تکنیک با فشار دادن کلیدهای میانبر در صفحه ورود فعال میشود.
مهاجمان از Application Compatibility Shim Database ویندوز برای اجرای کد مخرب استفاده میکنند. Shimها برای سازگاری برنامههای قدیمی با ویندوز جدید طراحی شدهاند اما میتوانند برای inject کردن DLL، دور زدن UAC و اجرای کد مخرب استفاده شوند.
مهاجمان رجیستری COM را تغییر میدهند تا DLLهای مخرب را به جای کامپوننتهای قانونی بارگذاری کنند. با تغییر مسیر DLL در رجیستری HKCU، مهاجمان میتوانند بدون نیاز به سطح دسترسی مدیر، کد مخرب را در فرآیندهای قانونی inject کنند.
مهاجمان برنامهها یا دستوراتی را پیکربندی میکنند که به طور خودکار در هنگام بوت سیستم یا ورود کاربر اجرا میشوند. این تکنیک برای ایجاد پایداری استفاده میشود تا کد مخرب پس از راهاندازی مجدد سیستم نیز اجرا شود. روشهای متعددی در ویندوز، لینوکس و macOS برای این منظور وجود دارد.
مهاجمان کلیدهای Run رجیستری یا پوشه Startup ویندوز را تغییر میدهند تا برنامههای مخرب در هنگام ورود کاربر اجرا شوند. کلیدهای رجیستری HKCU\Software\Microsoft\Windows\CurrentVersion\Run و HKLM\Software\Microsoft\Windows\CurrentVersion\Run اهداف رایج هستند.
مهاجمان رجیستری Winlogon را تغییر میدهند تا DLLهای مخرب را در هنگام ورود کاربر بارگذاری کنند. Winlogon فرآیند ویندوز مسئول مدیریت ورود و خروج کاربر است. مهاجمان میتوانند مقادیر Userinit یا Shell را در رجیستری Winlogon تغییر دهند.
مهاجمان ماژولهای هسته مخرب (rootkit) را در سیستمهای لینوکس و macOS بارگذاری میکنند تا پایداری ایجاد کنند و فعالیتهای خود را پنهان کنند. ماژولهای هسته با سطح دسترسی بالاترین اجرا میشوند و میتوانند سیستمعامل را تغییر دهند.
مهاجمان فایلهای میانبر (.lnk) را تغییر میدهند تا کد مخرب را در هنگام اجرای میانبر اجرا کنند. میانبرهای موجود در Desktop، Startup و سایر مکانها میتوانند برای اجرای payload مخرب در کنار برنامه اصلی تغییر داده شوند.
مهاجمان Login Items در macOS را اضافه یا تغییر میدهند تا برنامههای مخرب در هنگام ورود کاربر اجرا شوند. Login Items در System Preferences > Users & Groups قابل مشاهده هستند. مهاجمان میتوانند از AppleScript یا SMLoginItemSetEnabled API برای اضافه کردن Login Items استفاده کنند.
مهاجمان از مکانیزمهای طراحی شده برای کنترل سطوح دسترسی بالاتر سوءاستفاده میکنند. این مکانیزمها مانند UAC در ویندوز، sudo در لینوکس و macOS برای جلوگیری از اجرای غیرمجاز کد با سطح دسترسی بالا طراحی شدهاند. مهاجمان میتوانند این مکانیزمها را دور بزنند تا بدون اطلاع کاربر به سطح دسترسی بالاتر برسند.
مهاجمان از بیتهای setuid و setgid در سیستمهای لینوکس و macOS برای ارتقاء سطح دسترسی سوءاستفاده میکنند. فایلهای اجرایی با بیت setuid با سطح دسترسی مالک فایل اجرا میشوند. مهاجمان میتوانند این بیتها را روی فایلهای مخرب تنظیم کنند یا از فایلهای موجود با این بیتها سوءاستفاده کنند.
مهاجمان User Account Control (UAC) ویندوز را دور میزنند تا بدون نمایش پنجره تأیید به سطح دسترسی بالاتر برسند. روشهای متعددی برای دور زدن UAC وجود دارد از جمله سوءاستفاده از برنامههای auto-elevated، تغییر رجیستری و استفاده از COM objectهای elevated.
مهاجمان از sudo در سیستمهای لینوکس و macOS برای اجرای دستورات با سطح دسترسی root سوءاستفاده میکنند. sudo اعتبارنامهها را برای مدت کوتاهی cache میکند و مهاجمان میتوانند از این cache برای اجرای دستورات بدون نیاز به رمز عبور استفاده کنند.
مهاجمان از مکانیزمهایی که از کاربر درخواست تأیید برای اجرای elevated میکنند سوءاستفاده میکنند. در macOS، AuthorizationExecuteWithPrivileges API میتواند برای درخواست اجرای elevated از کاربر استفاده شود. مهاجمان میتوانند این API را در برنامههای مخرب استفاده کنند.
مهاجمان از مکانیزمهای دسترسی موقت elevated در محیطهای ابری سوءاستفاده میکنند. این شامل سوءاستفاده از just-in-time access، role assumption و سایر مکانیزمهای دسترسی موقت در AWS، Azure و GCP میشود. مهاجمان میتوانند این دسترسیها را برای اجرای عملیات مخرب استفاده کنند.
مهاجمان Transparency, Consent, and Control (TCC) در macOS را دستکاری میکنند تا به منابع حساس مانند دوربین، میکروفون و فایلهای کاربر دسترسی پیدا کنند. TCC یک چارچوب حریم خصوصی macOS است که دسترسی برنامهها به منابع حساس را کنترل میکند.
مهاجمان از مواد احراز هویت جایگزین مانند hash رمز عبور، Kerberos ticket، application access token و web session cookie برای حرکت جانبی و دور زدن کنترلهای دسترسی استفاده میکنند.
مهاجمان از hash رمز عبور NTLM برای احراز هویت بدون دانستن رمز عبور واقعی استفاده میکنند. با استفاده از ابزارهایی مانند Mimikatz و Impacket، مهاجمان میتوانند hashهای سرقت شده را برای دسترسی به سیستمهای دیگر استفاده کنند.
مهاجمان از Kerberos ticketهای سرقت شده برای احراز هویت استفاده میکنند. با استفاده از Golden Ticket یا Silver Ticket، مهاجمان میتوانند ticketهای Kerberos جعلی ایجاد کنند که به آنها دسترسی گستردهای میدهد.
مهاجمان مکانیزمهای امنیتی که به کاربران هشدار میدهند یا از اجرای برنامههای غیرمعتمد جلوگیری میکنند را تضعیف میکنند. این شامل تغییر مجوزهای فایل یا رجیستری، ایجاد یا سرقت certificate امضای کد و دستکاری trust store میشود.
مهاجمان certificateهای امضای کد را سرقت یا جعل میکنند تا بدافزار را به عنوان نرمافزار قانونی امضا کنند. با داشتن یک certificate معتبر، بدافزار میتواند از بسیاری از بررسیهای امنیتی عبور کند.
مهاجمان certificateهای root مخرب را در trust store سیستم نصب میکنند تا ترافیک TLS را رهگیری کنند یا نرمافزارهای امضاشده با این certificate را معتبر جلوه دهند.
مهاجمان باینریهای نرمافزار میزبان را تغییر میدهند تا پایداری ایجاد کنند. این تکنیک شامل تغییر فایلهای اجرایی قانونی برای اجرای کد مخرب در کنار عملکرد اصلی برنامه میشود. مهاجمان میتوانند از این روش برای پنهان کردن حضور خود در سیستم استفاده کنند.
مهاجمان مکانیزمهای احراز هویت را تغییر میدهند تا به اعتبارنامهها دسترسی داشته باشند یا احراز هویت را دور بزنند. این تکنیک میتواند برای ایجاد backdoor در فرآیند احراز هویت، capture کردن اعتبارنامهها یا دور زدن MFA استفاده شود.
مهاجمان DLLهای مخرب را در Domain Controllerها نصب میکنند تا فرآیند احراز هویت را دستکاری کنند. با تغییر Authentication Package، مهاجمان میتوانند اعتبارنامهها را capture کنند یا با هر رمز عبوری احراز هویت کنند. این تکنیک به سطح دسترسی Domain Admin نیاز دارد.
مهاجمان DLLهای فیلتر رمز عبور مخرب را در ویندوز ثبت میکنند تا رمزهای عبور را در هنگام تغییر capture کنند. Password Filter DLLها برای اعمال سیاستهای رمز عبور طراحی شدهاند اما میتوانند برای سرقت اعتبارنامه استفاده شوند.
مهاجمان ماژولهای PAM در سیستمهای لینوکس و macOS را تغییر میدهند تا اعتبارنامهها را capture کنند یا احراز هویت را دور بزنند. PAM یک چارچوب احراز هویت است که در اکثر توزیعهای لینوکس استفاده میشود.
مهاجمان MFA را دور میزنند یا غیرفعال میکنند تا بدون نیاز به عامل دوم احراز هویت کنند. این شامل تغییر تنظیمات MFA، سوءاستفاده از bypassهای MFA یا حذف MFA از حسابهای کاربری میشود.
مهاجمان از محیطهای هویت ترکیبی (on-premises + cloud) برای دور زدن احراز هویت سوءاستفاده میکنند. با دسترسی به زیرساخت federation مانند ADFS، مهاجمان میتوانند tokenهای مخرب ایجاد کنند که به سرویسهای ابری دسترسی میدهند.
مهاجمان قابلیتهای دفاعی را غیرفعال یا تضعیف میکنند تا از شناسایی جلوگیری کنند. این تکنیک شامل غیرفعال کردن آنتیویروس، EDR، فایروال، logging و سایر ابزارهای امنیتی میشود. مهاجمان اغلب این کار را قبل از اجرای مرحله اصلی حمله انجام میدهند.
مهاجمان ابزارهای امنیتی مانند آنتیویروس، EDR و سایر نرمافزارهای امنیتی را غیرفعال یا تغییر میدهند. این شامل توقف سرویسهای امنیتی، تغییر تنظیمات آنها یا حذف فایلهای آنها میشود.
مهاجمان Windows Event Logging را غیرفعال میکنند تا از ثبت فعالیتهای مخرب جلوگیری کنند. این شامل توقف سرویس Windows Event Log، تغییر تنظیمات audit و غیرفعال کردن کانالهای logging خاص میشود.
مهاجمان فایروال سیستم را غیرفعال یا قوانین آن را تغییر میدهند تا ارتباطات مخرب را امکانپذیر کنند. با غیرفعال کردن فایروال، مهاجمان میتوانند ترافیک C2 را بدون محدودیت برقرار کنند.
مهاجمان logging در محیطهای ابری را غیرفعال یا تغییر میدهند تا فعالیتهای مخرب ثبت نشوند. این شامل غیرفعال کردن CloudTrail در AWS، Azure Monitor و سایر سرویسهای logging ابری میشود.
مهاجمان آثار فعالیت خود را پنهان میکنند تا از شناسایی جلوگیری کنند. این تکنیک شامل پنهان کردن فایلها، فرآیندها، کاربران و سایر آثار از ابزارهای امنیتی و کاربران میشود.
مهاجمان فایلها و دایرکتوریها را با استفاده از ویژگیهای سیستمعامل پنهان میکنند. در ویندوز از attrib +h و در لینوکس/macOS از پیشوند نقطه استفاده میشود.
مهاجمان پنجرههای برنامههای مخرب را پنهان میکنند تا از دید کاربر مخفی بمانند. در PowerShell از پارامتر -WindowStyle Hidden و در VBScript از CreateObject('WScript.Shell').Run با پارامتر 0 استفاده میشود.
مهاجمان از Alternate Data Stream (ADS) در NTFS برای پنهان کردن دادههای مخرب استفاده میکنند. ADS به فایلها اجازه میدهد دادههای اضافی را در streamهای جداگانه ذخیره کنند که در explorer قابل مشاهده نیستند.
مهاجمان قوانین ایمیل را تنظیم میکنند تا ایمیلهای خاص را به صورت خودکار حذف یا به پوشههای پنهان منتقل کنند. این میتواند برای پنهان کردن هشدارهای امنیتی یا ارتباطات C2 از طریق ایمیل استفاده شود.
مهاجمان نحوه اجرای برنامهها توسط سیستمعامل را دستکاری میکنند تا payloadهای مخرب را اجرا کنند. این تکنیک شامل DLL hijacking، side-loading، path interception و سایر روشهای دستکاری جریان اجرا میشود. مهاجمان میتوانند از این روش برای پایداری، ارتقاء سطح دسترسی و فرار از شناسایی استفاده کنند.
مهاجمان از ترتیب جستجوی DLL ویندوز سوءاستفاده میکنند تا DLLهای مخرب را به جای DLLهای قانونی بارگذاری کنند. ویندوز DLLها را در ترتیب خاصی جستجو میکند و مهاجمان میتوانند DLL مخرب را در مسیری قرار دهند که قبل از مسیر اصلی جستجو میشود.
مهاجمان از برنامههای قانونی که DLLها را از مسیرهای نسبی بارگذاری میکنند سوءاستفاده میکنند. با قرار دادن DLL مخرب در کنار برنامه قانونی، مهاجمان میتوانند کد مخرب را در زمینه یک فرآیند قانونی اجرا کنند.
مهاجمان متغیرهای محیطی مانند LD_PRELOAD در لینوکس یا DYLD_INSERT_LIBRARIES در macOS را تغییر میدهند تا کتابخانههای مخرب را قبل از کتابخانههای قانونی بارگذاری کنند. این تکنیک به مهاجمان اجازه میدهد توابع سیستمی را hook کنند.
مهاجمان از مسیرهای سرویس ویندوز که بدون نقلقول هستند و شامل فاصله میشوند سوءاستفاده میکنند. ویندوز هر بخش از مسیر را به عنوان یک فایل اجرایی احتمالی امتحان میکند. مهاجمان میتوانند فایل اجرایی مخرب را در مسیر مناسب قرار دهند.
مهاجمان از مجوزهای ضعیف رجیستری سرویسهای ویندوز سوءاستفاده میکنند تا مسیر باینری سرویس را با یک فایل اجرایی مخرب جایگزین کنند. با تغییر ImagePath در رجیستری سرویس، مهاجمان میتوانند کد مخرب را با سطح دسترسی SYSTEM اجرا کنند.
مهاجمان سرویسهای محاسباتی ابری را تغییر میدهند تا از دفاعها فرار کنند و شواهد را حذف کنند. این تکنیک شامل ایجاد snapshot، ایجاد یا حذف instanceهای ابری و revert کردن به snapshotهای قبلی میشود.
مهاجمان snapshotهایی از volumeهای ابری ایجاد میکنند تا دادههای حساس را استخراج کنند. با ایجاد snapshot از volumeهای حاوی دادههای حساس، مهاجمان میتوانند آنها را در حسابهای خود mount کنند.
مهاجمان instanceهای ابری را پس از استفاده حذف میکنند تا آثار فعالیت خود را پنهان کنند. حذف instance میتواند لاگها و شواهد فعالیت مخرب را از بین ببرد.
مهاجمان ترافیک شبکه را از طریق دستگاههای مرزی مانند روترها و فایروالها هدایت میکنند تا از کنترلهای شبکه عبور کنند. با دسترسی به دستگاههای مرزی، مهاجمان میتوانند ترافیک را به شبکههای داخلی هدایت کنند.
مهاجمان مکانیزمهای رمزنگاری را تضعیف میکنند تا ترافیک رمزگذاری شده را رهگیری کنند. این تکنیک شامل تغییر کلیدهای رمزنگاری، تضعیف الگوریتمهای رمزنگاری یا نصب certificateهای مخرب میشود.
مهاجمان سیستمعامل دستگاههای شبکه جاسازی شده را تغییر میدهند تا دفاعها را تضعیف کنند و قابلیتهای جدیدی اضافه کنند. این تکنیک روترها، سوئیچها و سایر دستگاههای شبکه را هدف قرار میدهد. مهاجمان میتوانند firmware را patch کنند یا به نسخه آسیبپذیرتر downgrade کنند.
مهاجمان سیستمعامل دستگاههای شبکه را patch میکنند تا قابلیتهای مخرب اضافه کنند یا دفاعها را غیرفعال کنند. این patchها میتوانند برای ایجاد backdoor، غیرفعال کردن logging یا اضافه کردن قابلیتهای جدید استفاده شوند.
مهاجمان سیستمعامل دستگاههای شبکه را به نسخههای قدیمیتر و آسیبپذیرتر downgrade میکنند. نسخههای قدیمیتر ممکن است آسیبپذیریهای شناخته شدهای داشته باشند که مهاجمان میتوانند از آنها بهرهبرداری کنند.
مهاجمان کانتینرهایی را برای اجرای کد مخرب در محیطهای هدف مستقر میکنند. این تکنیک میتواند برای دور زدن کنترلهای امنیتی میزبان، اجرای ابزارهای مخرب و ایجاد پایداری در محیطهای کانتینری استفاده شود. مهاجمان ممکن است از تصاویر کانتینر مخرب یا پیکربندیهای ناامن استفاده کنند.
مهاجمان از محیطهای کانتینری یا ماشین مجازی فرار میکنند تا به سیستم میزبان دسترسی پیدا کنند. با دسترسی به میزبان، مهاجمان میتوانند به تمام کانتینرها و VMهای در حال اجرا دسترسی داشته باشند. این تکنیک اغلب از آسیبپذیریهای container runtime یا پیکربندیهای ناامن استفاده میکند.
مهاجمان imageهای کانتینر مخرب را مستقیماً روی سیستمهای هدف میسازند تا از اسکن imageهای registry فرار کنند. با ساخت image روی میزبان، مهاجمان میتوانند از ابزارهای امنیتی که imageهای registry را اسکن میکنند دور بزنند.
مهاجمان کد مخرب را مستقیماً در حافظه بارگذاری میکنند بدون اینکه فایلی روی دیسک بنویسند. این تکنیک از APIهایی مانند Reflective DLL Injection و سایر روشهای بارگذاری در حافظه استفاده میکند تا از ابزارهای امنیتی مبتنی بر فایل فرار کند.
مهاجمان از روشهایی برای شناسایی و فرار از debuggerهای استفاده شده توسط تحلیلگران امنیتی استفاده میکنند. این شامل بررسی IsDebuggerPresent، NtQueryInformationProcess، بررسی PEB و سایر تکنیکهای anti-debugging میشود.
مهاجمان فایلهای property list (plist) در macOS را تغییر میدهند تا فعالیت مخرب را فعال کنند و از دفاعها فرار کنند. فایلهای plist برای ذخیره تنظیمات برنامهها و سرویسهای macOS استفاده میشوند. مهاجمان میتوانند key-value pairها را تغییر دهند تا اجرای برنامه را پنهان کنند یا پایداری ایجاد کنند.