Skip to content

ONHEXGROUP

اخبار دنیای امنیت سایبری

  • اخبار
    • آسیب پذیری امنیتی
    • آنالیز بدافزار
    • کنفرانس ،دوره ، وبینار ، لایو ، CTF
    • بازیگران تهدید
    • توسعه اکسپلویت
    • افشای اطلاعات
    • باگ بانتی
    • تیم آبی
    • تیم قرمز
    • امنیت وب
  • دوره های آموزشی
    • دوره رایگان مهندسی معکوس نرم افزار
  • لیست های ویژه
    • موتورهای جستجو برای امنیت سایبری
    • کاتالوگ KEV آژانس CISA
    • آسیب پذیری های وردپرس
      • آسیب پذیری پلاگین ها
      • آسیب پذیری های هسته
      • آسیب پذیری تم ها
    • محصولات خارج از پشتیبانی مایکروسافت
      • محصولات مایکروسافتی که در سال 2022 پشتیبانی نمیشن
      • محصولات مایکروسافتی که در سال 2023 پشتیبانی نمیشن
      • لیست محصولات مایکروسافتی که در سال 2024 پشتیبانی نمیشن
      • لیست محصولات مایکروسافتی که در سال 2025 پشتیبانی نمیشن
    • معرفی فیلم ها و سریالهای مرتبط با هک و امنیت
  • آموزش های ویدیویی
  • انتشارات
    • مجله
    • مقالات
    • پادکست
  • پروژه ها
    • ماشین آسیب پذیر
      • وردپرس آسیب پذیر
  • حمایت مالی ( Donate)
  • تماس با ما
 
  • Home
  • اخبار
  • پیاده سازی تکنیک DLL Search Order Hijacking روی WinSxS
  • آسیب پذیری امنیتی
  • آنالیز بدافزار
  • اخبار
  • بازیگران تهدید
  • توسعه اکسپلویت
  • تیم قرمز
  • مقالات
  • مهندسی معکوس نرم افزار

پیاده سازی تکنیک DLL Search Order Hijacking روی WinSxS

On دی 13, 1402دی 13, 1402
seyyid
Share
زمان مطالعه: 8 دقیقه

محققای Securityjoes یه گزارشی منتشر کردن در خصوص پیاده سازی تکنیک DLL Search Order Hijacking روی باینری های WinSxS ، که میتونه در فرایند تیم قرمز ، خیلی کمک کننده باشه.

 

معرفی تکنیک DLL Search Order Hijacking :

تکنیک DLL Search Order Hijacking یه روش ساده اما موثر هستش که توسط بازیگران تهدید استفاده میشه. این تکنیک از روشی که برنامه های ویندوزی برای لوود DLLها و فایل های اجرایی خارجی استفاده میکنن و مسیر فایل رو بطور دقیق مشخص نمیکنن ، سوء استفاده میکنه.

به گفته ی MITRE ATT&CK ، روش های مختلفی برای پیاده سازی این تکنیک وجود داره، اما همه ی اونا یه نیازمندی مشترک دارن و اون اینه که برنامه ی مورد نظر نباید مسیر کامل محتوایی که میخواد رو مشخص کنه.

برای اینکه بتونیم این تکنیک رو متوجه بشیم، باید یکمی ویندوز اینترنالز بدونیم. وقتی یه برنامه ای اجرا میشه و برای اجرا نیاز به DLL یا فایل اجرایی دیگه ای داره، اونو باید لوود کنه. تو سیستم های ویندوزی این لوود کردن براساس یه سلسه مراتب و ترتیب انجام میشه. هدف از این کار اینکه اولا دسترسی به منبع تضمین بشه و دوما اینکه اگه توسعه دهنده موقع نصب ، منبعی رو اضافه نکرده باشه، امکان دسترسی به اون وجود داشته باشه.

بخواییم خلاصه بگیم، وقتی شما یه برنامه ای رو اجرا میکنید که اون برنامه به یسری DLL و فایل اجرایی نیاز داره و توسعه دهنده بطور مستقیم هم مسیر اونارو مشخص نکرده باشه ، مثلا تو کدها نگفته که myEXE.dll رو از این مسیر بخون : C:\windows\myEXE.dll، ویندوز برای اینکه بتونه این فایل myEXE.dll رو پیدا کنه ، به ترتیب مسیرهای زیر رو جستجو میکنه و هرکجا که myEXE.dll رو دید ، اونو لوود میکنه :

  • دایرکتوری که برنامه در اون اجرا شده.
  • فولدر C:\Windows\System32
  • فولدر C:\Windows\System
  • فولدر C:\Windows
  • دایرکتوری کاری جاری
  • مسیرهایی که در متغیر محیطی system PATH قرار دارن.
  • مسیرهایی که در متغیر محیطی user PATH قرار دارن.

اگه تو این مسیرها پیدا شد که هیچ ، اونو اجرا میکنه ، اما اگه پیدا نشد، خطا میده که مثلا myEXE.dll پیدا نشد.

فرض کنید که من یه برنامه ای نوشتم و برای اجرای برنامه ام، به یه DLL ای بنام myEXE.dll نیاز دارم و بصورت دقیق هم مسیر این DLL رو تو کدهام تعریف نکردم. موقع نصب برنامه ی من، این DLL در فولدر System32 قرار میگیره. حالا مشتری اگه برنامه ی من اجرا کنه، تو سلسه مراتب بالا، تو قدم دوم، به این DLL میرسه و اونو لوود و اجرا میکنه. حالا فرض کنید که یه بازیگر تهدید متوجه میشه که من مسیر رو تعریف نکردم و همچنین چون این DLL تو قدم دوم پیدا میشه، بنابراین میتونه یه DLL مخرب بنام myEXE.dll رو توسعه بده و کنار فایل اجرایی من قرار بده. در این صورت اگه مشتری برنامه ی من رو اجرا کنه، بجای اینکه بره DLL رو از System32 بخونه ، این DLL مخرب رو تو قدم اول پیدا و اجرا میکنه.

این تکنیک به بازیگر تهدید، این امکان رو میده که کدهای مخربشون رو ،در فضای یه پروسس قانونی تزریق و اجرا کنه و در نتیجه باعث فریب تحلیلگران امنیتی و دور زدن محصولات امنیتی بشه. مثلا شما فرض کنید ، ما آنالیز کردیم و متوجه شدیم که Word.exe به یه DLL نیاز داره که فرایند لوود اون آسیب پذیره، در نتیجه اگه یه DLL مخرب رو بجای DLL قانونی بزاریم، موقع اجرای WORD ، کدهای ما هم اجرا میشه و اینجوری این کدها رو در فضای پروسس قانونی WORD اجرا کردیم.

این تکنیک، تکنیک جدیدی نیستش و از گذشته شاهد این بودیم که بازیگران تهدید مختلف ، ازش سوء استفاده کردن. اگه MITRE رو بعنوان یه مرجع در نظر بگیریم، جدول زیر بازیگران تهدیدی که از این تکنیک استفاده کردن رو نشون میده :

 

گروه مدل استفاده
APT41 برای اجرای پیلود های مخربشون مانند Winnti RAT
Aquatic Panda برای لوود DLL ، EXE و فایلهای DAT به مموری
BackdoorDiplomacy برای اجرای DLL از این تکنیک استفاده کردن
Evilnum از یه بدافزاری بنام TerraTV برای لوود یه DLL مخرب در دایرکتوری TeamViewer استفاده کرده بودن که بصورت قانونی از فولدر System لوود میشد.
menuPass از این تکنیک استفاده کردن.
RTM برای لوود DLL مخرب در TeamViewer استفاده کردن.
Threat Group-3390 برای اجرای پیلودهاشون استفاده کردن
Tonto Team از یه اجرایی قانونی و امضاء شده ی مایکروسافت برای اجرای یه DLL مخرب سوء استفاده کردن.
Whitefly برای اجرای لودر Vcrodat سوء استفاده کردن

 

WinSxS چیه ؟

فولدر WinSxS (Windows Side by Side) یه مولفه ی حیاتی در نگهداری و بازیابی ویندوز هست و در مسیر C:\Windows\WinSxS قرار داره. وظیفه ی اصلی اون ، نگهداری فایلهای مهم سیستم در کنار هم هستش. وقتی ویندوز در حالت بروزرسانی قرار میگیره، نسخه های قبلی در این فولدر قرار میگیرن و در نتیجه با هر بروزرسانی ویندوز ، حجم این فولدر زیاد میشه.

اگه تو حوزه ی اکسپلویت کرنل ویندوز فعالیت داشته باشید، قطعا با این فولدر آشنا هستید ،چون تو تکنیک Binary Diffing میتونه کاربردی باشه.

اهداف اصلی از ایجاد فولدر WinSxS :

  • مدیریت نسخه: چندین نسخه از DLL و فایل های سیستمی رو ذخیره میکنه تا در صورت نیاز دسترسی بهشون تضمین شده باشه. این قابلیت برای حفظ سازگاری با برنامه های مختلف خیلی مهمه، چون برنامه های مختلف ممکنه به نسخه های خاصی از یه مولفه نیاز داشته باشن.
  • یکپارچگی سیستم : این فولدر با جلوگیری از قرار گرفتن نسخه های خراب یا نادرست، به یکپارچگی سیستم کمک میکنه. این منجر به پایداری و قابلیت اطمینان سیستم میشه.
  • فعالسازی داینامیک : این فولدر امکان فعال/غیرفعال کردن ویژگی های ویندوز رو فراهم میکنه و برای اینکار نیاز به نصب های جداگانه نداره. این باعث میشه تا یه کاربری ، یسری از ویژگی هارو فعال/غیر فعال کنه.

در عمل ، موقع نصب مولفه های ویندوز ، بروزرسانی و برنامه ها ، فایلها بصورت سیستماتیک در فولدر WinSxS قرار میگیرن. این دایرکتوری بعنوان یه مخزن متمرکز برای فایل های سیستم، به ویژه DLL ها عمل میکنه، که بین برنامه ها و مولفه های مختلف به اشتراک گذاشته میشن تا از سازگاری اطمینان حاصل کنن و از مشکلات احتمالی جلوگیری کنن.

در نسخه های سروری ویندوز ، این فولدر رولهای دیگه ای رو هم بازی میکنه تا قابلیت های سرور رو افزایش بده. این فولدر فایلهای حیاتی بازیابی سیستم رو نگهداری میکنه و به فرایند بازیابی کمک میکنه. همچنین بعنوان یه مکانیسم محافظ عمل میکنه و کاربران میتونن در صورت نیاز از بروزرسانی‌ مشکل‌ساز سیستم به حالت پایدار برگردن و به انعطاف‌ پذیری و قابلیت اطمینان سیستم کمک میکنه.

 

 

سوء استفاده از فولدر WinSxS در تکنیک DLL Search Order Hijacking :

در گذشته اکسپلویتهایی توسعه داده شده بود که با استفاده از فولدر WinSxS ، امکان دور زدن UAC رو میداد، اما استفاده از این فولدر در تکنیک DLL Search Order Hijacking برای فرایند تیم قرمز یا حملات واقعی ، برای اولین بار توسط محققای Securityjoes انجام شده.

هدف کلی این تحقیق اینه که ، تکنیک DLL Search Order Hijacking رو برای باینری های موجود در WinSxS پیاده سازی کنیم. این تکنیک یسری مزیت داره از جمله :

  • عدم نیاز به امتیاز بالا : با هدف قرار دادن فایلهای موجود در فولدر WinSxS ، ما نیازی به داشتن امتیاز بالا نداریم. مثلا ما اگه بخواییم به فولدر Windows دسترسی داشته باشیم، نیازمند امتیاز بالا هستیم.
  • عدم نیاز به باینری های دیگه : با استفاده از این فولدر ، دیگه نیازی به باینری های دیگه بخصوص اونایی که قابلیت شناسایی بالایی در زنجیره حمله دارن رو نداریم. چون این فولدر از قبل دارای فایلهای مورد نیاز آسیب پذیر هستش، دیگه نیازی نیست که اونارو هم به سیستم انتقال بدیم.
  • افزایش مخفی کاری : اجرای کد مخرب در فضای برنامه هایی که در فولدر WinSxS قرار دارن، مخفی کاری رو افزایش و خطر شناسایی رو کاهش میده. تحلیلگران بدافزار و همچنین محصولات امنیتی ، بدلیل قابل اعتماد بودن این فایلها، ممکنه اونارو بررسی یا تحلیل نکنن.

هدف اولیه تحقیق ، شناسایی آسیب پذیری های احتمالی در باینری های WinSxS بوده. برای اینکار ، محققا از دو ابزار Process Monitor و یه ابزار شخصی توسعه داده شده برای این تحقیق ، استفاده کردن.

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

 

تکنیک DLL-Search-Order-Hijacking روی WinSxS

 

PoC برای این تحقیق :

محققا برای شناسایی باینری آسیب پذیر در WinSxS ، در برنامه ی Process Monitor یسری فیلتر تنظیم کردن تا نتایج حاوی مقادیر PATH NOT FOUND ، CreateFile و NAME NOT FOUND باشه. همچنین محققا تمرکزشون ،روی مسیر NOT_A_SYSTEM_FOLDER_MS بوده که یه فولدر در دستکاپ هستش و حاوی فایلهایی که در این تحقیق استفاده میشه، هستش.

 

تنظیم فیلتر در Process Monitor برای شناسایی باینریهای WinSxS

 

تو این فولدر یه DLL سفارشی هم هستش که قراره با استفاده از تکنیک DLL Search Order Hijacking در مموری تزریق بشه. همچنین یه برنامه ای هم توسعه دادن که باینری های موجود در فولدر WinSxS رو اجرا میکنه و اونارو مونیتور میکنه. هدف این فایل شناسایی باینری های آسیب پذیر در فولدر WinSxS هستش.

 

DLL سفارشی

 

بعد از اجرای باینری سفارشیشون، باینری هایی مانند ngentask.exe و aspnet_wp.exe رو شناسایی کردن که دنبال DLLهای مورد نیازشون در فولدر NOT_A_SYSTEM_FOLDER_MS بودن. خب با این اوصاف ، اگه اسم DLL سفارشی رو به DLL مورد نیاز این باینری ها تغییر بدن، میتونن این DLL سفارشی رو اجرا کنن. محققا برای ادامه تحقیق روی ngentask.exe تمرکز کردن.

 

dllهای مورد نیاز ngentask.exe

 

همونطور که مشاهده میکنید، دو DLL با نامهای webengine4.dll و mscorsvc.dll مورد نیاز هستش و در فولدر NOT_A_SYSTEM_FOLDER_MS هم مورد جستجو قرار گرفته.

ما میتونیم آسیب پذیری رو با باز کردن یه CMD در فولدرمون ، NOT_A_SYSTEM_FOLDER_MS ، که بعنوان فولدر جاری محسوب میشه، فعال کنیم ، بدون اینکه باینری رو از داخل فولدر WinSxS ، به بیرون کپی/انتقال بدیم. با این کار باینری مورد نظر برای اجرای DLL به سمت فولدر ما هدایت میشه. این قدرت سوء استفاده رو بالا میبره چون فقط نیاز به یه CMD و یه DLL مخرب هستش. اصلا نیاز نیست یه برنامه ی آسیب پذیر رو وارد سیستم قربانی کنید.

 

اجرای موفقیت آمیز DLL-Search-Order-Hijacking-WinSxS

 

همونطور که در شکل بالا مشاهده میکنید، محققا با تغییر نام Dllشون به mscorsvc.dll و اجرای ngentask.exe از فولدر NOT_A_SYSTEM_FOLDER_MS ، تونستن DLL مخرب رو اجرا کنن.

از طریق ابزار Process Explorer ، محققا تایید کردن که DLLشون رو با موفقیت در پروسس ngentask.exe واقع در WinSxS تزریق کردن.

 

تایید اجرا در Process Explorer

 

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

 

باینری آسیب پذیر منبع لوود شده
Conhost.exe ClipUp.exe
Conhost.exe ipconfig.exe
Conhost.exe route.exe
Conhost.exe mcbuilder.exe
Forfiles.exe cmd.exe
Iediagcmd.exe ipconfig.exe
Stordiag.exe SystemInfo.exe
Aspnet_wp.exe webengine.dll
Aspnet_wp.exe webengine4.dll
Aspnet_regiis.exe webengine4.dll
Aspnet_state.exe webengine4.dll
Csc.exe VCRUNTIME140_1_CLR0400.dll
Cvtres.exe VCRUNTIME140_1_CLR0400.dll
Ilasm.exe fusion.dll
Ilasm.exe VCRUNTIME140_1_CLR0400.dll
Ngentask.exe mscorsvc.dll
Ngen.exe VCRUNTIME140_1_CLR0400.dll
NisSrv.exe mpclient.dll

 

محققا یه ویدیو هم بعنوان PoC منتشر کردن :

 

 

روش های تشخیص :

محققا برای تشخیص این تکنیک چند تا راه حل پیشنهاد دادن :

  • بررسی والد پروسس :
    • رابطه ی بین فرزند و والد در پروسس ها رو بررسی کنید و دنبال موارد زیر باشید :
      • پروسس هایی غیرنرمال که باینری ها رو از فولدر WinSxS اجرا میکنن.
      • باینری هایی که در داخل فولدر WinSxS هستن، باعث ایجاد پروسس های فرزند مشکوک بشن.
  • آنالیز رفتار :
    • فعالیت های باینری های موجود در فولدر WinSxS رو با تمرکز بر عملیات فایل و ارتباطات شبکه مونیتور کنید. میتونید دنبال فعالیت های زیر باشید:
      • باینری های WinSxS ای که به سرور ریموت وصل میشن
      • باینری های WinSxS ماژولهارو از فولدرهای غیرمعمول لوود میکنن.

 

منبع

 

 

اشتراک در شبکه های اجتماعی :

Facebook
Twitter
Pinterest
LinkedIn
In آسیب پذیری امنیتی آنالیز بدافزار اخبار بازیگران تهدید توسعه اکسپلویت تیم قرمز مقالات مهندسی معکوس نرم افزارIn Binary Diffing , DLL Search Order Hijacking , ویندوز اینترنالز

راهبری نوشته

احتمال هک اسنپ فود توسط بدافزار StealC infostealer
نسخه وردپرس آسیب پذیر برای دسامبر 2023 منتشر شد

2 thoughts on “پیاده سازی تکنیک DLL Search Order Hijacking روی WinSxS”

  1. صدرا گفت:
    اردیبهشت 3, 1403 در 9:45 ق.ظ

    سلام و تشکر بابت پست خوبتون
    2 تا سوال داشتم:

    1. تکنیک DLL Search Order Hijacking همون DLL Side Loading هست یا تفاوت دارد؟ اگر تفاوت دارد ممنون میشم میشک توضیح بدید؛

    2. این ابزار یا مشابه ابزار این تیم برای شناسایی باینری های آسیب‌پذیر به صورت عمومی در دسترس می باشد؟

    پاسخ
    1. seyyid گفت:
      اردیبهشت 3, 1403 در 12:23 ب.ظ

      1- با هم فرق دارن، البته نه زیاد.
      تکنیک DLL Search Order Hijacking ، هدفش اینه که از جستجوی DLL ویندوز سوء استفاده کنه تا بتونه یک DLL مخرب رو لوود کنه.
      تکنیک DLL Side Loading هدفش اینه که یک DLL مخرب رو لوود کنه. حالا برای این کار میتونه از مهندسی اجتماعی استفاده کنه تا کاربر فریب بده ، یا از lolbinها استفاده کنه یا از همین تکنیک DLL Search Order Hijacking .

      2- ابزار غالبی که برای شناسایی برنامه های آسیب پذیر به DLL Search Order Hijacking استفاده میشه همین Process Monitor هستش که تو بسته sysinternals . روشش هم در این مقاله توضیح دادن.
      ابزاری که بیاد بصورت کلی بررسی کنه من ندیدم (البته شاید با سرچ باشه) ولی همین ابزار Process Monitor چون امکان استفاده با پاورشل رو هم میده، به نظر میشه بخشی از کار رو خودکار کرد و در حجم بالایی دنبال برنامه آسیب پذیر گشت.

      پاسخ

دیدگاهتان را بنویسید لغو پاسخ

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

دسته‌ها

  • Osint
  • آسیب پذیری امنیتی
  • آموزش های ویدیویی
  • آنالیز بدافزار
  • اخبار
  • افشای اطلاعات
  • امنیت وب
  • انتشارات
  • اینترنت اشیاء
  • بازیگران تهدید
  • باگ بانتی
  • پادکست
  • پروژه ها
  • توسعه اکسپلویت
  • تیم آبی
  • تیم قرمز
  • دوره های آموزشی
  • فازینگ
  • کنفرانس ،دوره ، وبینار ، لایو ، CTF
  • لیست های ویژه
  • ماشین آسیب پذیر
  • مجله
  • مقالات
  • مهندسی معکوس نرم افزار

پست های مرتبط

  • اخبار
  • بازیگران تهدید
seyyid
On فروردین 26, 1402فروردین 28, 1402

باج افزار LockBit و کمپانی های Darktrace یا DarkTracer

  • آسیب پذیری امنیتی
  • اخبار
  • امنیت وب
  • انتشارات
  • باگ بانتی
  • پروژه ها
  • توسعه اکسپلویت
  • ماشین آسیب پذیر
  • مقالات
seyyid
On خرداد 21, 1403

نسخه وردپرس آسیب پذیر برای مه 2024 منتشر شد

  • آسیب پذیری امنیتی
  • اخبار
  • مقالات
seyyid
On اسفند 13, 1402

بررسی هفتگی آسیب پذیری های منتشر شده در ZDI – (11 – 5 اسفند)

  • اخبار
  • کنفرانس ،دوره ، وبینار ، لایو ، CTF
seyyid
On بهمن 25, 1401فروردین 28, 1402

iscwsisc2023 + کارگاه مقدماتی محاسبات امن

درباره ما

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

تگ ها

0day APT command injection Deserialization of Untrusted Data Directory Traversal FBI Fortinet Heap buffer overflow integer overflow kali LockBit Memory Corruption nuclei Off By One Security out-of-bounds write Out of bounds read Patch Tuesday PWN2OWN Stack Buffer overflow type confusion use after free vulnerable wordpress XSS ZDI vulnerability آموزش اکسپلویت نویسی ارز دیجیتال اندروید اپل اکسپلویت باج افزار تلگرام زیرودی سیسکو فارنزیک فورتی نت فیشینگ لاک بیت مایکروسافت هوش مصنوعی وردپرس وردپرس آسیب پذیر ویندوز پلاگین کروم گوگل

شبکه های اجتماعی

    • Instagram
    • Telegram
    • Twitter
    • GitHub
    • YouTube
    • LinkedIn
      کپی مطالب با ذکر منبع بلامانع است | 1401-1404