حمله Cross-Session Activation: حرکت جانبی از طریق COM ویندوز
خلاصهٔ کاملتر
تکنیکهای سنتی حرکت جانبی (Lateral Movement) دیگه اون کارایی قبل رو ندارن، چون EDRهای مدرن خیلی بهتر از قبل میتونن اونا رو شناسایی کنن. به همین دلیل مهاجمان به سمت روشهایی رفتن که از قابلیتهای مشروع ویندوز مثل COM سوءاستفاده میکنن. Cross-Session Activation (CSA) آخرین تکامل این رویکرده که از طریق DCOM کار میکنه و در کنفرانس Troopers 2025 توسط Fabian Mosch معرفی شد.
ایده اصلی اینه که یه پروسه در یه لاگین سشن بتونه یه COM object رو توی سشن یه کاربر دیگه فعال کنه و کد اجرا کنه. این حمله به AdminIDهایی در رجیستری ویندوز تکیه میکنه که کلید RunAs اونا روی «Interactive User» تنظیم شده. مهاجم با دسترسی ادمین میتونه این CLSID رو هایجک کنه و کد مخرب رو اجرا کنه.
جریان کلی حمله اینطوره: ابتدا CLSID بهگونهای پیکربندی شده که بهعنوان Interactive User اجرا بشه. بعد API مربوط به CoCreateInstance فراخوانی میشه، سپس با SetSessionId سشن هدف مشخص میشه و در نهایت با StandardGetInstanceFromIStorage یه instance جدید ساخته میشه که حمله رو فعال میکنه.
برای شناسایی COM objectهای آسیبپذیر، ابزار PermissionHunter از مجموعه COMThanasia به کار میاد. این ابزار تمام COM objectهای سیستم رو اسکن میکنه و نتایج رو فیلتر میکنه تا CLSIDهایی که RunAs=Interactive User دارن و دسترسی Remote Activation برای Everyone یا Administrator بهشون داده شده رو شناسایی کنه:
PermissionHunter.exe -outfile result -outformat xlsxبعد از شناسایی CLSID مناسب، ابزار ComDiver مسیرهای رجیستری قابل هایجک رو پیدا میکنه. نمونههایی از COM objectهای آسیبپذیر شناساییشده شامل Speech Runtime، Auth UI CredUI، و ShellServiceHost میشن. برای اجرای COM hijack، ابزار ComHijackWrite رجیستری رو روی هاست ریموت تغییر میده:
ComHijackWrite.exe 10.0.0.13 S-1-5-21-... {F87B28F1-DA9A-4F35-8EC0-800EFCF26B83} C:\\temp\\demon.x64.dllشناسایی سشنهای فعال هم بخش مهمی از این تکنیکه. ابزار quser میتونه سشنهای لوکال یا ریموت رو لیست کنه. ابزار SessionEnumeration هم میتونه در محیطهای Active Directory یه رنج کامل از IPها رو اسکن کنه تا هاستهایی با سشن تعاملی فعال پیدا بشن.
دو proof-of-concept مهم هم منتشر شدن. IHxExec از Michael Zhmailo یه PoC مینیمالیستیه که با COM object مربوط به IHxHelpPaneServer کار میکنه:
IHxExec.exe -s 1 -c C:/Windows/system32/calc.exeابزار SessionHop نوشته Andrew Oliveau هم از همین COM object استفاده میکنه اما با ایجاد یه session moniker و فراخوانی متد Execute، فایلهای دلخواه رو زیر سشن کاربر دیگهای اجرا میکنه.
این تکنیک محدودیتهایی هم داره؛ COM object باید روی Interactive User تنظیم شده باشه، هدف باید یه سشن فعال داشته باشه، و مهاجم به دسترسی ادمین روی سیستم نیاز داره. با این حال سطح حمله COM objects در ویندوز اونقدر بزرگه که دفاع در برابرش نیاز به استراتژی تشخیص اختصاصی داره.
نکات کلیدی:
- Cross-Session Activation از COM/DCOM ویندوز برای اجرای کد در سشن کاربر دیگه سوءاستفاده میکنه
- مهاجم باید دسترسی ادمین داشته باشه و AppID هدف باید RunAs=Interactive User داشته باشه
- ابزار PermissionHunter برای شناسایی CLSIDهای آسیبپذیر، ComDiver برای یافتن مسیرهای هایجکپذیر، و ComHijackWrite برای اجرای حمله استفاده میشه
- سرویس RemoteRegistry باید فعال باشه که بهصورت پیشفرض در ویندوزهای مدرن غیرفعاله
- ابزارهای SessionHop و IHxExec بهعنوان PoC برای این تکنیک منتشر شدن
- سازمانها باید استراتژی تشخیص اختصاصی برای مانیتورینگ COM object hijacking طراحی کنن




