Skip to content

ONHEXGROUP

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

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

دور زدن EDR با درایور Process Explorer + فایلهای نمونه

On اردیبهشت 5, 1402اردیبهشت 6, 1402
seyyid
Share
زمان مطالعه: 8 دقیقه

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

این بدافزار از درایور Process Explorer نسخه 16.32 ، برای غیرفعال کردن محصولات امنیتی قبل از استقرار بکدور و بدافزارهای مرحله بعدی استفاده میکنه.

محققا گفتن که این ابزار از ابتدای سال 2023 ، حداقل در سه حمله باج افزاری مورد استفاده قرار گرفته از جمله : در ژانویه و فوریه برای استقرار باج افزار Medusa Locker و در فوریه برای استقرار باج افزار Lockbit .

استفاده مهاجمین از درایورهای سفارشی چیز جدیدی نیست و بارها گزارش های مختلفی منتشر شده. اما بدافزار AuKill از یه درایور برنامه قانونی و البته آسیب پذیر داره استفاده میکنه.

درایورها با توجه به اینکه در سطح پایین اجرا میشن و به ویژگی های کرنل دسترسی دارن ، امکانات زیادی رو در اختیار مهاجم قرار میدن. ویندوز برای مدیریت درایورهای کرنلی از ویژگی Driver Signature Enforcement استفاده میکنه. این ویژگی تضمین میکنه که یه درایور کرنلی قبل اجرا باید از یه مرجع معتبر امضاء شده باشه. برای همین مهاجمین دنبال یه درایور امضاء شده و قانونی و البته آسیب پذیر هستن. این تکنیک بهش bring your own vulnerable driver یا بصورت مختصر BYOVD میگن.

بدافزار AuKill از درایور برنامه Process Explorer استفاده میکنه که جزء مجموعه ابزارهای Sysinternals هستش و مایکروسافت اونو توسعه داده و امضاء کرده.

درایور Process Explorer برای اولین بار در ژوئن 2021 توسط ابزار متن باز Backstab برای دور زدن EDR استفاده شد و بعدها گزارش هایی در خصوص استفاده مهاجمین از این ابزار منتشر شد. از جمله در نوامبر 2022 ، Sophos گزارشی در خصوص استفاده مهاجمین از ابزار Backstab برای غیر فعال کردن EDR و استقرار باج افزار LockBit منتشر کرده بود. در ژانویه 2023 هم محققین Sentinel One گزارشی منتشر کردن در خصوص یه ابزار بنام MalVirt که از درایور Process Explorer برای دور زدن محصولات امنیتی و استقرار پیلود نهایی استفاده کردن.

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

بدافزار AuKill یه درایور بنام PROCEXP.SYS رو (که از نسخه 16.32 برنامه Process Explorer گرفته شده) ، در مسیر C:\Windows\System32\drivers قرار میده. نکته اینکه درایور قانونی برنامه Process Explorer با نام PROCEXP152.sys در همون مسیر قرار میگیره. بعدش نصب کننده AuKill یه کپی از خودش رو در دایرکتوری System32 یا TEMP کپی میکنه تا بتونه بصورت سرویس اجرا بشه و در حقیقت خودش پرسیست کنه.

 

ausophos

 

برای مثال درایور با دریافت IO control code با مقدار IOCTL_CLOSE_HANDLE از حالت کاربر ، میتونه یه پروسس محافظت شده رو ببنده. برای این فرایند مهاجم نیاز به امتیاز administrator داره.

معمولا وقتی یه مهاجم امتیاز administrator رو داشته باشه، کنترل کامل سیستم رو داره اما یسری از پروسس های حیاتی ویندوز دارای ویژگی های امنیتی بیشتری هستن تا مهاجم نتونه با بدست آوردن امتیاز بالا ، اونارو غیر فعال کنه. برای مثال Protected Antimalware Services که از ویندوز 8.1 معرفی شد. برای دور زدن این ویژگی های امنیتی ، مهاجم میتونه از درایور کرنلی استفاده کنه.

نکته ای که هستش اینه که ، ابزار AuKill برای اجرا نیاز به امتیاز administrator داره و مهاجم باید از روش های مختلف بتونه این امتیاز بدست بیاره و در اختیار ابزار قرار بده.

 

آنالیز فنی AuKill :

محققا 6 نسخه مختلف از این بدافزار رو در سه ماهه اخیر پیدا کردن و اونارو از نسخه 1 تا 6 مشخص کردن. نکته جالبی که وجود داره اینه که محصولات امنیتی هدف و کامپایلر در نسخه های مختلف در حال تغییر بودن. شکل زیر تایم لاین این نسخه ها رو نشون میده :

 

ausophos versions

 

با توجه به اینکه time stamp یه فایل PE میتونه جعلی باشه، اما با بررسی زمان کامپایل اولیه و زمانی که در حادثه ها رخ داده ، میشه به این نتیجه رسید که این time stampها واقعی هستن.

جدول زیر هم زمان کامپایل ، هش و محصولات امنیتی هدف رو برای نسخه های مختلف نشون میده :

 

Compilation timestamp SHA1 Version Targeted vendors
2022-11-13 09:07:47 f7b0369169dff3f10e974b9a10ec15f7a81dec54 V1 Sophos
2022-11-29 05:58:14 23b531ae8ca72420c5b21b1a68ff85524f36203a V2 Sophos
2022-12-14 10:19:33 7f93f934b570c8168940715b1d9836721021fd41 V3 ElasticSearch, Sophos
2023-02-06 18:09:19 ff11360f6ad22ba2629489ac286b6fdf4190846e V4 Microsoft,
Sophos, Splashtop (Remote Access Tools)
2023-02-10 21:59:47 fdfc977c1e679da8147cbbab037e523aa3fe65ef V5 Microsoft, Sophos, Aladdin HASP Software
2023-02-11 13:43:12 bbfe4487f7fd02a085b83a10884487ad01cf62f7 V6 Microsoft, Sophos, Splashtop (Remote Access Tools)

 

محققا آنالیزشون رو روی دو نسخه 1 و 6 متمرکز کردن به این دلیل که نسخه 1 در اغلب حوادث مشاهده شده و نسخه 6 به نظر یه نسخه تستی هستش که تغییرات جالبی رو ارائه میده. مقایسه این دو نسخه میتونه درک خوبی از بروزرسانی های آینده بدافزار بده.

 

فرایند نصب سرویس :

همونطور که بالا اشاره شد، بدافزار در ابتدا یه سرویسی از خودش ایجاد میکنه و اونو اجرا میکنه. شکل زیر فرایند کلی ایجاد سرویس رو نشون میده :

 

ایجاد سرویس aukill

 

در زمان اجرا ابتدا بدافزار بررسی میکنه که آیا امتیاز administrator داره یا نه. اگه نداشت که کلا متوقف میشه. همچنین برای اجرا نیاز هستش که مهاجم یه کلیدی رو (startkey ) بعنوان پسورد و در قالب آرگومان اول موقع اجرا به برنامه بده، اگه این مورد هم نباشه اجرا متوقف میشه. همونطور که قبلا هم اشاره شد مهاجم باید، امتیاز administrator رو فراهم کنه.

برای همه نسخه های بدافزار این startkey بعنوان آرگومان اول باید داده بشه :

 

aukill startkey

 

بدافزار برای اینکه تایید کنه مقدار startkey معتبر هستش از یه فرمول ریاضی استفاده میکنه. بدین صورت که هر کاراکتر رشته ورودی رو انتخاب میکنه و مقدار دسیمال کد اسکی اونو بدست میاره. مقدار دو برابر میکنه و میره سراغ کاراکتر بعدی و این مقادیر در نهایت با هم جمع میزنه. جمع نهایی باید با مقداری که در برنامه مشخص شده برابر باشه. در نمونه بررسی (نسخه 6) مقدار نهایی باید برابر 57502 یا هگزادسیمال 0xE09E باشه. کد زیر شبه کد این الگوریتم در زبان پایتون نشون میده :

 

Python
1
2
3
4
5
6
pwd = "startkey"
    # val end result = 0xE09E
val = 0x0
for ch in pwd:
    val += ord(ch)
    val *= 2

 

بعد از بررسی امتیاز ادمین و رشته، بدافزار بررسی میکنه که آیا امتیاز SYSTEM داره یا نه. اگه داشته باشه که مستقیم میره و سرویس ایجاد میکنه. اما اگه نداشته باشه ، از جعل توکن های TrustedInstaller.exe استفاده میکنه.

برا این کار ابتدا سرویس Trusted Installer رو راه اندازی میکنه، بعد توکن TrustedInstaller.exe رو با استفاده از DuplicateTokenW بدست میاره و این توکن رو به CreateProcessWithTokenW میده تا بتونه بعد ریستارت پروسس ، خودش با امتیاز SYSTEM بالا بیاره.

اگه همه اینا با موفقیت انجام بشه ، خودش در مسیر C:\Windows\system32 کپی و بعنوان یه سرویس نصب و اجرا میکنه.

 

غیرفعال کردن محصولات امنیتی :

برای غیر فعال کردن پروسس های محصولات امنیتی ، بدافزار بطور کلی مسیر زیر رو طی میکنه :

 

غیرفعال کردن محصولات امنیتی

 

بعد اینکه بدافزار خودش از طریق سرویس ، پرسیست کردش، درایور procexp.sys که در بخش resource بدافزار هستش رو به دیسک کپی میکنه. هر دو نسخه 1 و 6 ، درایور procexp.sys رو به C:\Windows\System32\drivers کپی کردن. شکل زیر این فرایند رو در نسخه 1 بدافزار نشون میده :

 

کپی درایور به دایرکتوری درایور

 

در نسخه 6 اگه بدافزار نتونه فرایند بالا رو انجام بده به یه درایور دیگه بنام WindowsKernelExplorer.sys اصطلاحا fallback میکنه. یعنی از این درایور استفاده میکنه. البته این درایور مثله procexp.sys در بخش resources نیستش و توسعه دهنده این انتظار رو داره که این درایور از قبل در دایرکتوری drivers هستش :

 

درایور WindowsKernelExplorer.sys

 

کلاینت EDR از مولفه های مختلفی تشکیل شده، مثلا از پروسس ها و سرویس ها و در نتیجه اگه یکی از این مولفه ها غیرفعال بشه، از طریق مولفه های دیگه دوباره راه اندازی میشه. بدافزار برای اینکه بتونه جلوی استارت مجدد این مولفه ها رو بگیره، چندین Thread ایجاد میکنه. هر Thread مولفه خاصی رو هدف قرار میده و بررسی میکنه که آیا دوباره اجرا شده یا نه. اگه اجرا شده بود، بدافزار دوباره اونارو غیر فعال میکنه. شکل زیر مقدار دهی اولیه این Threadهارو نشون میده . البته این موضوع بسته به محصول امنیتی و سرویس هدف میتونه از نمونه ای به نمونه دیگه متفاوت باشه.

 

threads aukill

 

  1. خاتمه از طریق Procexp : این thread در شکل بالا با عنوان TerminateViaProcexp مشخص شده. در این روش بدافزار لیستی از پروسس هارو بعنوان ورودی میگیره و اگه موردی باشه که در حال اجرا باشه ، با ارسال IO control code با مقدار IOCTL_CLOSE_HANDLE به درایور ، handle پروسس مورد نظر مینده که این کار موجب خاتمه پروسس میشه. در نسخه 6 این کار از طریق دو Thread انجام میشه. یکی برای هدف قرار دادن پروسس های مرتبط با محصولات امنیتی مایکروسافت و یکی هم برای پروسس های سایر محصولات شرکتهای امنیتی. لیست پروسس های هدف اغلب نام محصولات امینی هستش اما مواردی از ابزارهای دسترسی از راه دور هم وجود داره.
  2. خاتمه به زور: در این مورد بدافزار لیستی از پروسس ها رو میگیره و در یه Thread مجزا اجرا رو ادامه میده. اگه موردی باشه که در لیست پروسس های در حال اجرا باشه از طریق TerminateProcess و به زور اونو میبنده. این روش در نسخه 6 حذف شده اما در نسخه های قبلی مثله 2 بوده، برای همین در شکل بالا نمیبینیدش.
  3. غیرفعال کردن سرویس ها: thread که در این روش اجرا میشه، با عنوان DisableServices  مشخص شده. لیستی از سرویسها رو میگیره و بررسی میکنه، اگه موردی باشه از طریق ChangeServiceConfigW و قرار دادن مقدار SERVICE_DISABLED برای dwStartType ، اونو غیرفعال میکنه.
  4.  آنلوود کردن (unload) درایور: مورد آخر ، UnloadDriver رو فراخوانی میکنه. در این روش لیستی از درایورهارو میگیره و اگه موردی باشه، اونو از طریق NtUnloadDriver آنلوود و کلید رجیستریش رو هم از مسیر زیر حذف میکنه :

 

1
System\CurrentControlSet\Services\[DRIVER_NAME]

 

این مورد فقط در نسخه 6 مشاهده شده.

 

تشخیص و پیشگیری :

Sophos این بدافزارو بعنوان ATK/BackStab-D شناسایی میکنه و یسری IoC هم براش منتشر کرده که میتونید از صفحه گیتهابشون مشاهده کنید.

برای پیشگیری از این نوع بدافزارها ، رعایت نکات زیر میتونه کمک کننده باشه :

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

 

دانلود فایلهای نمونه :

برای دانلود فایلهای نمونه برای این گزارش، میتونید از این لینک استفاده کنید.

 

منبع

 

 

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

Facebook
Twitter
Pinterest
LinkedIn
In آنالیز بدافزار اخبار بازیگران تهدیدIn AuKill , BYOVD , IO control code , LockBit , Medusa Locker , NtUnloadDriver , Process Explorer , PROCEXP.SYS , Sophos , Sysinternals , TerminateProcess , TrustedInstaller.exe , WindowsKernelExplorer.sys , دور زدن EDR

راهبری نوشته

برنامه Psiphon با طعم Daam Android Botnet + فایل نمونه
کنفرانس امنیت تهاجمی Typhooncon

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

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

دسته‌ها

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

پست های مرتبط

  • آسیب پذیری امنیتی
  • اخبار
  • افشای اطلاعات
  • بازیگران تهدید
seyyid
On فروردین 9, 1402فروردین 28, 1402

تایید نقض داده توسط کمپانی خالق ChatGPT

  • آسیب پذیری امنیتی
  • اخبار
  • امنیت وب
  • باگ بانتی
  • توسعه اکسپلویت
  • مقالات
seyyid
On دی 2, 1401دی 19, 1401

جنگو و یک آسیب پذیری با شدت بالا

  • اخبار
  • افشای اطلاعات
  • بازیگران تهدید
seyyid
On اسفند 2, 1401فروردین 28, 1402

جزئیات حمله به Coinbase

  • آسیب پذیری امنیتی
  • آموزش های ویدیویی
  • آنالیز بدافزار
  • اخبار
  • انتشارات
  • توسعه اکسپلویت
  • مقالات
  • مهندسی معکوس نرم افزار
seyyid
On مهر 26, 1403بهمن 30, 1403

آموزش نصب و استفاده از پلاگین ret-sync در IDA pro و Windbg

درباره ما

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

تگ ها

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