چند ماه قبل، کمی پیش از شروع حملهی روسیه به اوکراین، محققان شرکت ESET یک Wiper جدید را کشف کردند که نشاندهندهی شروع حملات گستردهی روسیه به سازمانهای اوکراین با اهداف تخریبی بود. در این حملات از کرمی استفاده شده بود که وظیفهی آن توزیع و نصب بدافزار HermeticWiper در سراسر شبکهی سازمانهای قربانی بود. مطالبی که در ادامه مطالعه میکنید، در واقع ترجمهی متن تحلیل انجام شده توسط شرکت Eset از حملهی سایبری ذکر شده است که با توجه به متن روان و نکات مفیدی که در آن وجود داشت، آکادمی راوین تصمیم به ترجمه و انتشار آن برای علاقهمندان و کارشناسان داخلی گرفت.
بدافزارهای (IsaacWiper و HermeticWizard) : حملهی سایبری مخرب روسیه به زیرساختهای اوکراین
پس از شروع درگیریهای اخیر بین روسیه و اوکراین، محققان ESET چندین خانواده بدافزار کشف کردند که در حال حمله به سازمانهای اوکراینی بودند:
- روز ۲۳ فوریه ۲۰۲۲، حمله مخربی با استفاده از HermeticWiper چندین سازمان اوکراینی را هدف قرار داد.
- این حمله چندین ساعت پیش از شروع اشغال اوکراین توسط نیروهای روسیه آغاز شد.
- در سازمانهای مختلف از روشهای مختلفی برای گرفتن دسترسی اولیه به شبکهی قربانی استفاده شده بود. ما تایید میکنیم که در یک مورد Wiper توسط GPO منتشر شده و همچنین وجود کرمی را کشف کردیم که از آن برای گسترش Wiper در شبکهی قربانی دیگری استفاده شده بود.
- مشخصات بدافزارها حاکی از آن هستند که حمله از چند ماه قبل برنامهریزی شده بوده است.
- روز ۲۴ فوریه ۲۰۲۲، حملهی مخرب دیگری علیه یک شبکه دولتی اوکراین با استفاده از یک Wiper آغاز شد که ما ان را IsaacWiper نامیدهایم.
- محققان ESET هنوز نتوانستهاند دریابند چه گروه هکری شناختهای شدهای مسئول این حملات بوده است.
حملات مخرب در اوکراین
همانطور که محققان ESET پیشتر در این توییت و پست وبلاگ WLS اعلام کردند، ما یک حملهی مخرب علیه رایانهها در اوکراین را کشف کردیم که حوالی ساعت ۱۴:۵۲ روز ۲۳ فوریه سال ۲۰۲۲ به وقت ساعت جهانی (UTC) آغاز شد. این حمله کمی پس از حملات DDoS علیه وبسایتهای مهم اوکراین و چند ساعت قبل از حملهی نظامی روسیه صورت گرفت.
این حملات مخرب از حداقل سه مولفهی اصلی زیر تشکیل میشدند:
- HermeticWiper: که از طریق خراب کردن دادهها سیستم را غیرقابل استفاده میکند.
- HermeticWizard: که از طریق WMI و SMB، بد افزار HermeticWiper را در شبکهی محلی پخش میکند.
- HermeticRansom: باج افزاری که به زبان Go نوشته شده است.
نکته: HermeticWiper در صدها سیستم و در حداقل پنج سازمان اوکراینی مشاهده شد. ما روز ۲۴ فوریه ۲۰۲۲ Wiper جدیدی را در شبکهی دولتی اوکراین کشف کردیم. نام آن را IsaacWiper گذاشتیم و اکنون در حال بررسی ارتباط احتمالی آن با HermeticWiper هستیم. لازم به ذکر است که این در سازمانی مشاهده شد که مورد حملهی HermeticWiper قرار نگرفته بود.
مسئولیت حمله
ما تا کنون نتوانستهایم ارتباط قابل استنادی بین حملات و گروه مخرب شناخته شدهای پیدا کنیم. کد HermeticWiper، HermeticWizard و HermeticRansom هیچ شباهت قابل ملاحظهای با دیگر نمونههای موجود در مجموعه بدافزارهای ESET ندارند. گروه مسئول طراحی IsaacWiper را نیز شناسایی نکردهایم.
زمانبندی
HermeticWiper و HermeticWizard توسط گواهینامهی امضای کد (شکل ۱) متعلق به Hermetica Digital Ltd امضا شدهاند که روز ۱۳ آوریل ۲۰۲۱ صادر شده است. ما از شرکت صادرکننده (DigiCert) درخواست کردیم که این گواهینامه را ابطال کنند، و آنها روز ۲۴ فوریه ۲۴ این کار را انجام دادند.
شکل ۱. گواهینامه امضای کد صادر شده برای Hermetica Digital Ltd
طبق گزارش رویترز، بنظر میرسد این گواهینامه از Hermetica Digital سرقت نشده است. احتمال میرود که حمله کنندگان برای دریافت این گواهینامه از DigiCert تظاهر کردهاند به شرکت Cypriot تعلق دارند.
محققان ESET با اطمینان زیاد اعلام میکنند که امنیت سازمانهای مورد حمله قرار گرفته پیش از استقرار Wiperهای مربوطه، به خطر افتاده بوده است. این نتیجهگیری بر اساس چند نکته صورت گرفته که عبارتند از:
- برچسبهای زمان مرتبط با تاریخ کامپایل (فایل PE) HermeticWiper، که قدیمیترین آن روز ۲۸ دسامبر سال ۲۰۲۱ است.
- تاریخ صدور گواهینامه امضای کد در ۱۳ آوریل ۲۰۲۱
- یکی از موارد استقرار HermeticWiper از طریق GPO حاکی از آن است که حمله کنندگان از قبل به اکتیودایرکتوری (Active Directory) قربانی دسترسی داشتند.
شکل ۲ گاهشمار این وقایع را نشان میدهد.
شکل ۲. گاهشمار وقایع حملهی سایبری
دسترسی اولیهی HermeticWiper
در حال حاضر اطلاعاتی درباره بردار دسترسی اولیه در دست نیست، ولی ما مولفههای Lateral Movement در سازمانهای قربانی را تحت بررسی قرار دادهایم. در یک مورد، همانطور که در مسیر ذیل در سیستم میتوان مشاهده کرد، Wiper از طریق پالیسی دامین پیشفرض (default domain policy – GPO) مستقر شده است.
C:Windowssystem32GroupPolicyDataStore sysvol<redacted>Policies{31B2F340-016D-11D2-945F-00C04FB984F9}Machinecc.exe
این مساله نشان میدهد که حمله کنندگان بر سرور اکتیو دایرکتوری کنترل داشتهاند.
در موارد دیگر احتمال میرود که از Impacket برای استقرار HermeticWiper استفاده شده باشد. پست وبلاگ شرکت Symantec ادعا میکند که Wiper با استفاده از خط فرمان زیر وارد سازمانها شده است:
cmd.exe /Q /c move CSIDL_SYSTEM_DRIVEtempsys.tmp1 CSIDL_WINDOWSpolicydefinitionspostgresql.exe 1> 127.0.0.1ADMIN$__1636727589.6007507 2>&1
بخش آخر مشابه رفتار wmiexec.py در ابزار Impacket است که در این صفحهی Github میتوانید آن را مشاهده کنید.
در نهایت اینکه، برای توزیع بدافزار HermeticWiper در شبکههای قربانی از طریق SMB و WMI از کرم شخصیسازی شدهای استفاده شده است که آن را HermeticWizard نامیدهایم.
IsaacWiper
در حال حاضر بردار دسترسی اولیه، شناخته شده نیست. احتمال دارد که حمله کنندگان از ابزارهایی مانند impacket استفاده کرده باشند. ما متوجه شدیم که در چند سیستم، RemCom که ابزار دسترسی ریموت است همزمان با IsaacWiper مستقر شده است.
تحلیلهای فنی تکنیکی
HermeticWiper
HermeticWiper یک فایل قابل اجرای ویندوزی است که چهار درایور در آن جاسازی شده است. این درایورها متعلق به نرمافزار EaseUS Partition Master هستند که توسط CHENGDU YIWO Tech Development Co امضا شده است و عملیاتهای سطح پایین روی دیسک انجام میدهند. فایلهای ذیل در آنها مشاهده شده است:
- 0E84AFF18D42FC691CB1104018F44403C325AD21: x64 driver
- 379FF9236F0F72963920232F4A0782911A6BD7F7: x86 driver
- 87BD9404A68035F8D70804A5159A37D1EB0A3568: x64 XP driver
- B33DD3EE12F9E6C150C964EA21147BF6B7F7AFA9: x86 XP driver
بسته به نسخهی سیستم عامل یکی از این چهار درایور انتخاب شده و در مسیر
C:WindowsSystem32drivers<4 random letters>.sys
قرار داده شده و پس از آن شروع به ایجاد سرویس میکند.
سپس HermeticWiper سرویس Volume Shadow Copy را غیر فعال کرده و در نهایت خودش را با نوشتن بیتهای تصادفی جدید روی فایل خود، از روی دیسک پاک میکند که به احتمال زیاد این فرایند برای پیشگیری از تحلیل بدافزار توسط تحلیلگران، انجام شده است. جالب است بدانید که اکثر عملیاتهای فایل در سطح پایین و با استفاده از فراخوانی تابع DeviceIoControl انجام میشود.
در ادامه فضاهای زیر با استفاده بیتهای تصادفی تولید شده توسط تابع CryptGenRandom رونویسی میشوند.
- The master boot record (MBR)
- The master file table (MFT)
- $Bitmap and $LogFile on all drives
- The files containing the registry keys (NTUSER*)
- C:WindowsSystem32winevtLogs
پوشهها و فایلهای موجود در پوشههای Windows, Program Files، Program Files(x86)، PerfLogs، Boot، System Volume Information و AppData به صورت بازگشتی با استفاده از عملیات FSCTL_MOVE_FILE پاک میشوند. این شیوه غیر معمول بوده و بسیار شبیه به تکنیکی است که از آن در Windows Wipe project on GitHub استفاده شده است (به تابع wipe_extent_by_defrag رجوع شود). همچنین لینکهای نمادین و فایلهای بزرگ در My Documents وDesktop هم با رونویسی بیتهای تصادفی پاک میشوند. در نهایت سیستم ریستارت میشود. اما بالا نمی آید زیرا MBR و MFT و اکثر فایلها پاک شده اند. ما معتقدیم امکان ریکاور کردن سیستمهای مورد حمله قرار گرفته وجود ندارد.
HermeticWizard
ما هنگام جستجو برای یافتن دیگر نمونههای امضا شده توسط گواهینامه امضای کد Hermetica Digital Ltd، خانوادهی جدیدی از بدافزارها را یافتیم که آن را HermeticWizard نامیدهایم.
HermeticWizard در واقع کرمی است که ساعت ۱۴:۵۲:۴۹ در روز ۲۳ فوریه ۲۰۲۲ به وقت ساعت هماهنگ جهانی در سیستم در اوکراین مستقر شد. این کرم یک فایل DLL است که با استفاده از ++C نوشته شده و توابع DllInstall ، DllRegisterServer و DllUnregisterServer را Export میکند. نام DLL خروجی آن Wizard.dll است. این فایل دارای سه منبع است که فایلهای PE رمزنگاری شده هستند:
- نمونهای از HermeticWiper
(912342F1C840A42F6B74132F8A7C4FFE7D40FB77)
- dll، مسئول گسترش به دیگر کامپیوترهای محلی از طریق WMI
(6B5958BFABFE7C731193ADB96880B225C8505B73)
- dll، مسئول گسترش به دیگر کامپیوترهای محلی از طریق SMB
(AC5B6F16FC5115F0E2327A589246BA00B41439C2)
منابع با استفاده از یک لوپ معکوس XOR رمزنگاری شدهاند. هر بلاک متشکل از چهار بایت توسط XOR به بلاک قبلی متصل شده است. بلاک اول هم با کد اختصاصی 0x4A29B1A3 به صورت XOR رمزنگاری شده است.
HermeticWizard با استفاده از خط فرمان
regsvr32.exe /s /i
فعالیت خود را شروع می کند.
HermeticWizard نخست سعی میکند دیگر دستگاههای موجود در شبکه محلی را پیدا کند. این بدافزار با استفاده از تابعهای زیر در ویندوز، IP آدرس محلی شناخته شده را جمع آوری میکند:
- DNSGetCacheDataTable
- GetIpNetTable
- WNetOpenEnumW(RESOURCE_GLOBALNET, RESOURCETYPE_ANY)
- NetServerEnum
- GetTcpTable
- GetAdaptersAddresses
سپس سعی میکند به این IP آدرسها متصل شود (فقط در صورتی که IP آدرسهای محلی باشند) تا ببیند آیا هنوز قابل دسترسی هستند یا نه. در صورتیکه برای استارت HermeticWizard از دستور -s استفاده شده باشد، یعنی:
regsvr32.exe /s /i:-s <path>
کل بازهی آدرس /24 را اسکن میکند. بنابراین اگر 192.168.1.5 برای مثال در حافظهی DNS پیدا شود، به طور تدریجی از 192.168.1.1 تا 192.168.1.254 را اسکن میکند. در هر IP آدرس سعی میکند اتصال TCP با پورتهای ذیل برقرار کند:
- 20: ftp
- 21: ftp
- 22: ssh
- 80: http
- 135: rpc
- 137: netbios
- 139: smb
- 443: https
- 445: smb
این پورتها به صورت تصادفی اسکن میشوند، بنابراین نمیتوان ترافیک HermeticWizard را از این روش ردگیری کرد.
هنگامی که HermeticWizard به سیستم قابل دسترسی میرسد، منتشر کنندهی WMI را روی دیسک قرار داده و پروسهی جدیدی را با استفاده از خط فرمان
rundll32 <6 random letters>.ocx #1 -s – i .
آغاز میکند.
همین کار را نیز با منتشر کنندهی SMB انجام میدهد که در
<6 random letters>.ocx
با حروف تصادفی متفاوتی منتشر میشود.
در نهایت HermeticWiper را در محل
<6 random letters>.ocx
قرار داده و اجرا میکند.
انتشار دهندهی WMI
انتشار دهندهی WMI که توسعه دهندگانش، نام آن را exec_32.dll گذاشتهاند، دو آرگومان زیر را میپذیرد:
- -i: آدرس IP هدف
- -s: فایل برای کپی و اجرای روی دستگاه مورد هدف
این انتشاردهنده در مرحلهی اول با استفاده از WNetAddConnection2W با آدرس به اشتراک گذاشته شدهی ADMIN$ در سامانهی هدف ارتباط برقرار میکند. سپس فایلی که در آرگومان -s مشخص شده است با استفاده از دستور CopyFileW کپی میشود. نام تصادفی با استفاده از CoCreateGUID (برای مثال cB9F06408D8D2.dll) و فرمت رشتهای c%02X%02X%02X%02X%02X%02X برای فایل ریموت تولید میشود.
در مرحلهی دوم سعی میکند فایل کپی شده یعنی HermeticWizard را روی دستگاه ریموت با استفاده از DCOM اجرا کند. CoCreateInstance را با آرگومان CLSID_WbemLocator فراخوانی میکند. سپس با استفاده از WMI Win32_Process و خط فرمان
C:windowssystem32cmd.exe /c start C:windowssystem32regsvr32.exe /s /i C:windows<filename>.dll
پروسه جدیدی در دستگاه ریموت ایجاد میکند.
توجه داشته باشید که از آرگومان -s برای HermeticWizard استفاده نمیشود، یعنی از این دستگاه هک شده برای اسکن کردن شبکه ریموت استفاده نمیشود. اگر روش WMI موفق نباشد، سعی میکند با استفاده از دستور فوق و OpenRemoteServiceManager سرویسی را ایجاد کند. اگر بتواند به هر روشی DLL ریموت را اجرا کند، غیر فعال میشود تا زمانی که بخواهد فایل ریموت را پاک کند.
انتشار دهندهی SMB
انتشار دهندهی SMB که توسط توسعه دهندگانش، romance.dll نامیده شده است مانند انتشار دهندهی WMI دو آرگومان میپذیرد. نام آن احتمالا اشاره به اکسپلویت EternalRomance دارد، گرچه از اکسپلویت استفاده نمی کند. در مرحلهی اول سعی میکند به Pipeهای زیر در SMB share ریموت (روی پورت ۴۴۵) وصل شود:
- samr
- browser
- netlogon
- lsarpc
- ntsvcs
- svcctl
از این پایپها برای Lateral Movement استفاده میشود. انتشار دهنده، لیستی از نامهای کاربری و رمز عبور Hardcode شده دارد که از آنها برای احراز هویت از طریق NTLMSSP به SMB shares استفاده میکند:
— usernames —
guest
test
admin
user
root
administrator
manager
operator
— passwords —
123
Qaz123
Qwerty123
این لیست احراز هویت به طور عجیبی کوتاه بوده و گمان نمیرود که حتی در شبکههایی با امنیت بسیار ضعیف عمل کنند.
اگر ارتباط با موفقیت برقرار شود، انتشار دهنده سعی میکند فایلی را که در آرگومان -s مشخص شده است در ADMIN$ share قرار دهد. این انتشار دهنده هم مانند انتشار دهندهی WMI نام فایل ریموت را با فرا خواندن CoCreateInstance تولید میکند.
سپس از طریق SMB خط فرمان
cmd /c start regsvr32 /s /i .. & start cmd /c ”ping localhost -n 7 & wevtutil cl System”
را اجرا میکند.
HermeticRansom
محققان ESET همچنین متوجه شدند که همزمان با حملات HermeticWiper، از HermeticRansom – باجافزاری که با زبان Go نوشته شده- هم در اوکراین استفاده شده است. استفاده از HermeticRansom نخستین بار در اوایل روز ۲۴ فوریه ۲۰۲۲ در توییتی توسط AVAST اعلام شد. Telemetry نشان میدهد که گسترهی استقرار HermeticRansom کمتر از HermeticWiper بوده است. این باج افزار همزمان با HermeticWiper و به احتمال زیاد به منظور پنهان کردن عملیات Wiper اجرا شده است. فعالیتها در یک ماشین به ترتیب زمانی ذیل بود:
- 2022-02-23 17:49:55 UTC: HermeticWiper in C:WindowsTempcc.exe deployed
- 2022-02-23 18:06:57 UTC: HermeticRansom in C:WindowsTempcc2.exe deployed by the netsvcs service
- 2022-02-23 18:26:07 UTC: Second HermeticWiper in C:Userscom.exe deployed
در یک مورد، ما مشاهده کردیم که HermeticRansom مانند HermeticWiper از طریق GPO مستقر شده است:
C:WINDOWSsystem32GroupPolicyDataStore sysvolPolicies{31B2F340-016D-11D2-945F-00C04FB984F9}Machinecpin.exe
چند کاراکتر توسط حمله کنندگان در باینری فایل تعبیه شده است که اشاره به جو بایدن رییس جمهور آمریکا و کاخ سفید دارند.
- _/C_/projects/403forBiden/wHiteHousE.baggageGatherings
- _/C_/projects/403forBiden/wHiteHousE.lookUp
- _/C_/projects/403forBiden/wHiteHousE.primaryElectionProcess
- _/C_/projects/403forBiden/wHiteHousE.GoodOffice1
هنگامی که فایل رمزگذاری میشود، قربانی پیام زیر را مشاهده میکند.
تصویر ۳. پیام باجگیری HermeticRansom
«تنها چیزی که از انتخابات جدید یاد گرفتیم این است که هیچ درسی از انتخابات گذشته نگرفتهایم.
از رای شما متشکریم. تمامی فایلها، داکیومنتها، تصاویر، ویدیوها و پایگاههای داده شما با موفقیت رمزگذاری شده اند!
کامپیوتر شما اکنون یک آی.دی خاص دارد: 5fa60250-964c-8e7e-7054d28f8f2a
سعی نکنید خودتان فایل را رمزگشایی کنید: امکان ندارد موفق شوید.
این کسبوکار ما است و فقط سود برای ما اهمیت دارد. فقط با تماس با ما و دریافت دستورالعملهای بیشتر میتوانید فایلهای خود را پس بگیرید.
برای این که ثابت کنیم رمزگشای فایلها را در اختیار داریم، فایلی کوچکتر از ۶۵۰ بایت برای ما بفرستید و ما رمزگشایی شده آن را برای شما میفرستیم. این تضمین ما است.
نکته: فایلی با محتوی حساس نفرستید. در ایمیل آی.دی خاص کامپیوتر خود را ذکر کنید.
بنابراین، اگر میخواهید فایلهای خود را پس بگیرید با ما تماس بگیرید:
- ایمیل به آدرس vote2024forjb@photonmail.com
- اگر بعد از سه روز پاسخ ندادیم jone2024@photonmail.com
روز خوبی داشته باشید!»
IsaacWiper
IsaacWiper در دو فرمت مختلف DLL یا EXE و بدون امضای Authenticode یافت میشود؛ این بدافزار روز ۲۴ فوریه ۲۰۲۲ روی Telemetry ما ظاهر شد. همانطور که قبل از این نیز گفتیم، قدیمیترین برچسب زمانی مرتبط با تاریخ کامپایل PE که پیدا کردیم متعلق به روز ۱۹ اکتبر ۲۰۲۱ است، یعنی اگر برچسب زمانی کامپایل آن دستکاری نشده باشد، به احتمال زیاد چند ماه پیش، از IsaacWiper در عملیاتهای قبلی استفاده شده است.
نامی که در Export Directory (فایل PE) در نمونههای DLL استفاده شده، «Cleaner.dll» است و یک Export به نام «_Start@4» دارد.
ما IsaacWiper را در آدرس %programdata% و C:WindowsSystem32 تحت نامهای زیر مشاهده کردیم:
clean.exe
cl.exe
cl64.dll
cld.dll
cll.dll
کد آن شباهتی به HermeticWiper ندارد و میزان پیچیدگی آن نیز کمتر است. با توجه به زمانبندی، احتمال دارد که هر دو با هم مرتبط باشند ولی هنوز ارتباط قوی بین آنها پیدا نکردهایم.
IsaacWiper عملیات خود را با شناسایی درایوهای فیزیکی شروع کرده و با فراخواندن DeviceIoControl با استفاده از IOCTL IOCTL_STORAGE_GET_DEVICE_NUMBER ، شماره دستگاه آنها را به دست میآورد. سپس با استفاده از مولد اعداد نیمه تصادفی Mersenne Twisterنخستین 0x10000 بایت اول هر دیسک را پاک میکند. این مولد با استفاده از GetTickCount مقداردهی اولیه میشود.
سپس درایوهای منطقی را شماره گذاری کرده و با استفاده از بایتهای تصادفی تولید شده توسط Mersenne Twister PRNG تمام فایلهای هر دیسک را به طور بازگشتی پاک میکند. لازم به ذکر است IsaacWiper به صورت بازگشتی فایلها را در یک Thread پاک میکند، یعنی پاک کردن هر دیسک مدت زمان زیادی طول میکشد.
روز ۲۵ فوریه ۲۰۲۲ حمله کنندگان نسخهی جدیدی از IsaacWiper را با لاگهای Debug در شبکهی قربانی قرار دادند. این مساله حاکی از آن است که حمله کنندگان نتوانستهاند برخی از سیستمهای هدف را پاک کنند و پیامهای لاگ را اضافه کردند تا متوجه شوند چه اتفاقی افتاده است. لاگها در آدرس C:ProgramDatalog.txt ذخیره شدند و برخی از پیامها به شرح ذیل بوده است:
- getting drives…
- start erasing physical drives…
- –– start erasing logical drive
- start erasing system physical drive…
- system physical drive –– FAILED
- start erasing system logical drive
جمعبندی
این گزارش چندین حملهی سایبری مخربی را تشریح میکند که نخستین آن در روز ۲۳ فوریه ۲۰۲۲ سازمانهای اوکراینی را مورد هدف قرار داد، و دومین حمله از تاریخ ۲۴ تا ۲۶ فوریه سازمانهای اوکراینی متفاوتی را مختل کرد. در حال حاضر ما شواهدی مبنی بر این که کشورهای دیگر هم مورد هدف قرار گرفته باشند در دست نداریم.
اما با توجه به بحران کنونی اوکراین، این خطر وجود دارد که همین حمله کنندگان حملات بیشتری علیه کشورهایی انجام دهند که از دولت اوکراین حمایت کرده یا نهادهای روسی را تحریم میکنند.
مقالهی اصلی را میتوانید از اینجا مطالعه کنید.