این گروه جاسوسی سایبری جدید که بیشتر بر روی آسیا متمرکز شده است، از ابزارهای غیرمستند، از جمله استخراج مبتدیانه بارهای PowerShell از فایل های PNG استفاده می کند.
محققان ESET اخیراً حملات هدفمندی را یافته اند که از ابزارهای غیرمستند علیه شرکت های مختلف و دولت های محلی بیشتر در آسیا استفاده می کنند. این حملات توسط یک گروه جاسوسی ناشناخته قبلی انجام شده است که ما Worok نامیده ایم و حداقل از سال 2020 فعال بوده است. مجموعه ابزار Worok شامل یک لودر C++ CLRLoad، یک درب پشتی PowerShell PowHeartBeat و یک بارکننده C# PNGLoad است که از استگانوگرافی برای استخراج مخرب پنهان استفاده می کند. بارگیری از فایل های PNG
وروک کیست؟
در طول ProxyShell (CVE-2021-34523) افشای آسیب پذیری در اوایل سال 2021، مشاهده کردیم فعالیت از گروه های مختلف APT. یکی از ویژگی های مشترک با TA428:
- زمان فعالیت
- عمودی های هدفمند
- استفاده از ShadowPad
بقیه مجموعه ابزار بسیار متفاوت است: به عنوان مثال، TA428 در آن شرکت کرد سازش دسکتاپ قادر در سال 2020. ما در نظر داریم که پیوندها به اندازه کافی قوی نیستند که Worok را همان گروه TA428 در نظر بگیریم، اما این دو گروه ممکن است ابزارهای مشترک داشته باشند و منافع مشترکی داشته باشند. تصمیم گرفتیم یک خوشه ایجاد کنیم و نام آن را Worok گذاشتیم. این نام پس از یک mutex در لودر مورد استفاده گروه انتخاب شد. سپس فعالیت بیشتر با انواع ابزارهای مشابه به این گروه مرتبط شد. با توجه به تله متری ESET، Worok از اواخر سال 2020 فعال بوده است و تا زمان نگارش این مقاله به فعالیت خود ادامه می دهد.
در اواخر سال 2020، Worok دولت ها و شرکت ها را در چندین کشور هدف قرار داد، به ویژه:
- یک شرکت مخابراتی در شرق آسیا
- بانکی در آسیای مرکزی
- یک شرکت صنایع دریایی در آسیای جنوب شرقی
- یک نهاد دولتی در خاورمیانه
- یک شرکت خصوصی در جنوب آفریقا
وقفه قابل توجهی در عملیات مشاهده شده از 2021-05 تا 2022-01 وجود داشت، اما فعالیت Worok در سال 2022-02 بازگشت و با هدف:
- یک شرکت انرژی در آسیای مرکزی
- یک نهاد بخش عمومی در آسیای جنوب شرقی
شکل 1 یک نقشه حرارتی بصری از مناطق مورد نظر و عمودی ها را نشان می دهد.
با در نظر گرفتن مشخصات اهداف و ابزارهایی که دیده ایم علیه این قربانیان به کار گرفته شده است، فکر می کنیم هدف اصلی Worok سرقت اطلاعات است.
تجزیه و تحلیل فنی
در حالی که اکثر دسترسیهای اولیه ناشناخته هستند، در برخی موارد تا سالهای 2021 و 2022 شاهد استفاده از سوء استفادهها علیه آسیبپذیریهای ProxyShell بودهایم. در چنین مواردی، معمولاً پوستههای وب پس از بهرهبرداری از این آسیبپذیریها به منظور پایداری در شبکه قربانی آپلود میشوند. سپس اپراتورها از ایمپلنت های مختلف برای به دست آوردن قابلیت های بیشتر استفاده کردند.
هنگامی که دسترسی به دست آمد، اپراتورها ابزارهای متعدد و در دسترس عموم را برای شناسایی مستقر کردند، از جمله Mimikatz, کرم خاکی, ری جورجو NBTscan، و سپس ایمپلنت های سفارشی خود را به کار بردند: یک لودر مرحله اول و به دنبال آن یک بارگذار NET مرحله دوم (PNGLoad). متأسفانه، ما نتوانستیم هیچ یک از محموله های نهایی را بازیابی کنیم. در سال 2021، لودر مرحله اول یک مجموعه CLR (CLRLoad) بود، در حالی که در سال 2022، در اکثر موارد، یک درب پشتی PowerShell (PowHeartBeat) با امکانات کامل جایگزین شده است - هر دو زنجیره اجرایی در شکل 2 نشان داده شده اند. ابزارها به تفصیل در بخش های فرعی زیر توضیح داده شده اند.
CLRLoad: لودر مونتاژ CLR
CLRLoad یک PE عمومی ویندوز است که در هر دو نسخه 32 و 64 بیتی دیده ایم. این یک لودر نوشته شده در C++ است که مرحله بعدی (PNGLoad) را بارگیری می کند، که باید یک اسمبلی زبان رایج زمان اجرا (CLR). فایل DLL. این کد از فایلی که بر روی دیسک در یک دایرکتوری قانونی قرار دارد بارگیری می شود، احتمالاً برای گمراه کردن قربانیان یا پاسخ دهندگان حادثه به این که فکر کنند نرم افزار قانونی است.
برخی از نمونه های CLRLoad با رمزگشایی مسیر کامل فایلی که محتوای آن به عنوان مرحله بعدی بارگذاری می شود، شروع می شود. این مسیرهای فایل با یک XOR تک بایتی با یک کلید متفاوت در هر نمونه کدگذاری می شوند. این مسیرهای فایل به صورت رمزگشایی یا متنی شفاف هستند و موارد زیر آنهایی هستند که با آنها مواجه شده ایم:
- C:Program FilesVMwareVMware ToolsVMware VGAuthxsec_1_5.dll
- C:Program FilesUltraViewermsvbvm80.dll
- C:Program FilesInternet ExplorerJsprofile.dll
- ج: فایل های برنامهWinRarRarExtMgt.dll
- C: فایل های برنامه (x86) Foxit SoftwareFoxit Readerlucenelib.dll
در مرحله بعد، یک mutex ایجاد می شود و ما در هر نمونه یک نام متفاوت دیده ایم. لودر این mutex را بررسی می کند. اگر پیدا شد، خارج می شود، زیرا لودر از قبل در حال اجرا است. در یکی از نمونه ها، موتکس Wo0r0KGWhYGO با آن مواجه شد که به گروه نام Worok را داد.
سپس CLRLoad یک مجموعه CLR را از مسیر فایل احتمالاً رمزگشایی شده بارگذاری می کند. به عنوان کد مدیریت نشده، CLRLoad این کار را از طریق انجام می دهد CorBindToRuntimeEx Windows API در انواع 32 بیتی یا CLRCreateInstance تماس در انواع 64 بیتی.
PowHeartBeat: درب پشتی PowerShell
PowHeartBeat یک درب پشتی با امکانات کامل است که در PowerShell نوشته شده است و با استفاده از تکنیک های مختلف مانند فشرده سازی، رمزگذاری و رمزگذاری مبهم شده است. بر اساس تله متری ESET، ما معتقدیم که PowHeartBeat جایگزین CLRLoad در کمپین های اخیر Worok به عنوان ابزار مورد استفاده برای راه اندازی PNGLoad شده است.
اولین لایه کد درب پشتی شامل چند تکه کد پاورشل با کد base64 است. هنگامی که محموله بازسازی شد، از طریق آن اجرا می شود IEX. پس از رمزگشایی، لایه دیگری از کد مبهم اجرا می شود که در شکل 3 می بینیم.
لایه دوم Backdoor first base64 لایه بعدی کد خود را رمزگشایی می کند که سپس با رمزگشایی می شود. DES سه گانه (حالت CBC). پس از رمزگشایی، این کد با استفاده از کد از حالت فشرده خارج می شود از gzip الگوریتم، بنابراین لایه سوم کد PowerShell، که درب پشتی واقعی است، ارائه می شود. این به دو بخش اصلی تقسیم می شود: پیکربندی، و کنترل دستورات درب پشتی.
لایه اصلی کد درب پشتی نیز در PowerShell نوشته شده است و از HTTP یا ICMP برای ارتباط با سرور C&C استفاده می کند. همانطور که در شکل 4 نشان داده شده است کار می کند.
پیکر بندی
این پیکربندی شامل چندین فیلد، از جمله شماره نسخه، پیکربندی پروکسی اختیاری، و آدرس C&C است. جدول 1 معانی فیلدهای پیکربندی را در نسخه های مختلفی که مشاهده کرده ایم توضیح می دهد.
جدول 1. معانی فیلد پیکربندی
نام زمینه | توضیحات: |
---|---|
nouse / ikuyrtydyfg (سایر نمونه ها) |
بلااستفاده |
شناسه مشتری | شناسه مشتری که برای اهداف زیر استفاده می شود: · به عنوان یک مقدار در هنگام ساخت سربرگ کوکی برای ارتباطات C&C · به عنوان یک مصنوع رمزنگاری برای رمزگذاری داده های ارسالی. |
نسخه | شماره نسخه PowHeartBeat. |
ExecTimes | تعداد اجرای مجاز در هنگام صدور الف RunCmd (فرمان در حال اجرا) فرمان. |
عامل کاربر | عامل کاربر مورد استفاده برای ارتباطات C&C. |
مراجعه | مراجعه هدر مورد استفاده برای ارتباطات C&C. |
AcceptEncoding | بلااستفاده |
CookieClientId CookieTaskId CookieTerminalId |
مقادیر مورد استفاده برای ساخت شیرینی سربرگ برای ارتباطات C&C. |
UrlHttps | پروتکلی برای استفاده برای ارتباطات C&C. |
UrlDomain نشانی آیپی دامنه |
URL، دامنه(ها)، یا آدرس IP که به عنوان سرور C&C استفاده می شود. اگر دامنه خالی نیست، به جای آن انتخاب شده است نشانی آیپی. در موارد دیگر، نشانی آیپی گرفته شده است. |
UrlSendHeartBeat | مسیر URL زمانی که درپشتی از سرور C&C دستور میخواهد استفاده میشود. |
UrlSendResult | مسیر URL زمانی که درب پشتی نتایج فرمان را به سرور C&C ارسال میکند استفاده میشود. |
GetUrl | URL کامل که توسط PowHeartBeat برای درخواست دستورات از سرور C&C استفاده می شود. این الحاق عناصر URL بالا است. |
PutUrl | مثل GetUrl اما برای ارسال نتایج فرمان به سرور C&C استفاده می شود. |
مسیر فعلی | بلااستفاده |
ProxyEnableFlag | پرچم را نشان می دهد که آیا درب پشتی برای برقراری ارتباط با سرور C&C باید از پروکسی استفاده کند یا خیر. |
Proxymsg | آدرس پروکسی برای استفاده از if ProxyEnableFlag تنظیم شده است $راست. |
فاصله | زمان خواب اسکریپت بین درخواست های GET بر حسب ثانیه. |
BasicConfigPath | مسیر یک فایل پیکربندی اختیاری حاوی آپ تایم, زمان توقف, DefaultIntervalو دامنه. اگر فایل موجود باشد، این مقادیر لغو می شوند. |
آپ تایم | زمانی از روز که درب پشتی شروع به کار می کند، به این معنی که شروع به درخواست GET به سرور C&C می کند. |
زمان توقف | زمانی از روز که درب پشتی میتواند کار کند، یعنی زمانی که درخواستها به سرور C&C را متوقف میکند. |
DomainIndex | فهرست نام دامنه فعلی برای استفاده برای ارتباطات با سرور C&C. در صورتی که درخواستی پیغام خطایی متفاوت از 304 ("تغییر نشده")، DomainIndex افزایش یافته است. |
SecretKey | کلید مورد استفاده برای رمزگشایی/رمزگذاری پیکربندی. پیکربندی با XOR چند بایتی رمزگذاری شده است. |
IfLog | بلااستفاده |
IfLogFilePath | پرچم را نشان می دهد که آیا ورود به سیستم فعال است یا خیر. |
مسیر ورود | مسیر فایل لاگ. |
پروکسی فایل | مسیر فایل پیکربندی پروکسی اختیاری. اگر خالی باشد یا در سیستم فایل یافت نشود، درب پشتی تنظیمات پراکسی کاربر را از مقدار رجیستری بازیابی می کند. HKCUSoftwareMicrosoftWindowsCurrentVersionتنظیماتاینترنتProxyServer . |
IfConfig | پرچمی که نشان می دهد از فایل پیکربندی استفاده کنید یا خیر. |
شکل 5 نمونه ای از پیکربندی استخراج شده از نمونه PowHeartBeat را نشان می دهد (SHA-1: 757ABA12D04FD1167528FDD107A441D11CD8C427).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
$Script:nouse = 100; if(Test-Path $MyInvocation.MyCommand.Path){Remove-item $MyInvocation.MyCommand.Path -Force;} $Script:ClientId = “83”; $Script:Version = “2.1.3.0003”; $Script:ExecTimes = 10; $Script:UserAgent = “Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3487.100 Safari/537.36”; $Script:Referer = “www.adobe.com”; $Script:AcceptEncoding = “text/html,app1ication/xhtml+xml,app1ication/xml;q=0.9,*/*;q=0.8”; $Script:CookieClientId = “s_ecid”; $Script:CookieTaskId = “aam_uuid”; $Script:CookieTerminalId = “AAMC_adobe_0”; $Script:UrlHttps = “http://”; $Script:UrlDomain= ” 118.193.78[.]22:443″; $Script:UrlSendHeartBeat = “/latest/AdobeMessagingClient.js”; $Script:UrlSendResult = “/content/dam/offers-homepage/homepage.jpg”; $Script:GetUrl = $Script:UrlHttps + $Script:UrlDomain + $Script:UrlSendHeartBeat; $Script:PutUrl = $Script:UrlHttps + $Script:UrlDomain + $Script:UrlSendResult; $Script:currentPath = Split-Path -Parent $MyInvocation.MyCommand.Definition; $Script:ProxyEnableFlag = $false; $Script:Proxymsg; $Script:Interval = 10 ; $Script:BasicConfigPath = “C:ProgramDataunins.dat”; $Script:UpTime = 0; $Script:DownTime = 24; $Script:Domains; $Script:DomainIndex; $Script:SecretKey = “###ConfigKey###”; #$Script:IfLog = $true; $Script:IfLogFilePath = “C:ProgramDatatpncp.dat”; $Script:logpath = “C:ProgramDataunins000.dat”; $Script:ProxyFile = “C:ProgramDatahwrenalm.dat”; $Script:IfConfig = $false; |
شکل 5. مثال پیکربندی
رمزگذاری داده ها
PowHeartBeat سیاهههای مربوط و محتوای فایل پیکربندی اضافی را رمزگذاری می کند.
محتوای فایل گزارش با XOR چند بایتی با کلید مشخص شده در متن شفاف در نمونه رمزگذاری شده است. جالب اینکه، شناسه مشتری به عنوان نمک برای نمایه در آرایه کلید استفاده می شود. کلید یک آرایه 256 بایتی است که در هر نمونه ای که با آن مواجه شدیم یکسان بود. محتوای فایل پیکربندی اضافی از طریق XOR چند بایتی با مقدار از رمزگذاری می شود SecretKey به عنوان کلید آن
ارتباطات C&C
PowHeartBeat تا نسخه 2.4 از HTTP برای ارتباطات C&C استفاده کرد و سپس به ICMP تغییر مکان داد. در هر دو مورد، ارتباط رمزگذاری نشده است.
HTTP
در یک حلقه نامتناهی، درب پشتی یک درخواست GET را به سرور C&C ارسال میکند و درخواست صدور فرمان میکند. پاسخ رمزگذاری شده توسط درب پشتی رمزگشایی می شود، که دستور را پردازش می کند و خروجی فرمان را در فایلی می نویسد که محتوای آن از طریق یک درخواست POST به سرور C&C ارسال می شود.
فرمت درخواست های GET به شرح زیر است:
GET <UrlSendHeartBeat> HTTP/1.1 User-Agent: <UserAgent> Referer: <Referer> Host: <Domain> Cookie: <CookieClientId>=<ClientId> Connection: close |
توجه داشته باشید که درخواست با استفاده از فیلدهای پیکربندی همنام ساخته شده است.
در پاسخ سرور C&C، سومین بایت محتوا، شناسه فرمان است که دستور پردازش شده توسط درب پشتی را نشان می دهد. ما آن را صدا می زنیم command_id. محتوای باقی مانده از پاسخ به عنوان یک آرگومان به دستور پردازش شده ارسال می شود. این محتوا با الگوریتم نشان داده شده در شکل 6 رمزگذاری شده است. شناسه وظیفه مقدار کوکی نامگذاری شده است CookieTaskIdمقدار از پیکربندی.
1 2 3 4 5 6 7 8 9 10 |
o[int] $pos = $taskId % 256; for ($i = 0; $i -lt $tmpBytes.Value.Length; $i++) { $pos = $pos + $clientId; if ($pos -ge 256) { $pos = $pos % 256; } $tmpBytes.Value[$i] = [byte]($tmpBytes.Value[$i] -bxor $hexEnc[$pos]); } |
شکل 6. الگوریتم رمزگذاری داده های محتوا را درخواست می کند
پاسخ سرور C&C همچنین حاوی کوکی دیگری است که نام آن توسط درب پشتی مشخص شده است CookieTerminalId متغیر پیکربندی مقدار این کوکی در درخواست POST از درب پشتی تکرار می شود و نباید خالی باشد. پس از اجرای دستور Backdoor، PowHeartBeat نتیجه را به عنوان یک درخواست POST به سرور C&C ارسال می کند. نتیجه به صورت فایلی ارسال می شود که نام آن است .png.
ICMP
با شروع از نسخه 2.4 PowHeartBeat، HTTP با ICMP جایگزین شد، بسته هایی را با فاصله زمانی شش ثانیه ارسال کرد و تکه تکه نشده. ارتباط از طریق ICMP به احتمال زیاد راهی برای فرار از تشخیص است.
هیچ تغییر عمده ای در نسخه های 2.4 به بعد وجود ندارد، اما ما متوجه تغییراتی در کد شدیم:
- PowHeartBeat یک بسته ضربان قلب را در هر حلقه که شامل رشته است می فرستد ABCDEFGHIJKLMNOPQRSTUVWXYZ، قبل از درخواست دستور. این به سرور C&C اطلاع می دهد که درب پشتی آماده دریافت دستورات است.
- درخواست هایی برای دریافت دستورات انجام شده توسط درب پشتی حاوی رشته هستند abcdefghijklmnop.
بسته های ضربان قلب دارای فرمتی هستند که در شکل 7 توضیح داده شده است.
تفاوت میان شناسه مشتری و پرچم مشتری است که شناسه مشتری در هر نمونه متفاوت است در حالی که پرچم مشتری در هر نمونه ای که از ICMP استفاده می کند یکسان است. پرچم ضربان قلب نشان می دهد که در پشتی در حال ارسال ضربان قلب است. پاسخ سرور C&C دارای فرمتی است که در شکل 8 توضیح داده شده است.
پرچم اینجا نشان می دهد که آیا دستوری برای صدور به درب پشتی وجود دارد یا خیر. درخواستها برای دریافت دستورات دارای فرمتی هستند که در شکل 9 توضیح داده شده است.
توجه داشته باشید که حالت ICMP درب پشتی امکان دریافت مقدار نامحدودی از داده ها را می دهد که به تکه ها و متغیرها تقسیم می شوند. طول داده, موقعیت فعلی و طول کل برای پیگیری داده های ارسالی استفاده می شود. پاسخ ها به این درخواست ها دارای فرمتی هستند که در شکل 10 توضیح داده شده است.
همانطور که در پاسخ های HTTP، شناسه فرمان سومین بایت است داده ها.
پس از هفت پاسخ متوالی ICMP با محتوای خالی یا با فرمت متناقض، انتقال بین درب پشتی و سرور C&C تمام شده در نظر گرفته می شود.
در مورد درخواست ارسال نتیجه دستور صادر شده به سرور C&C، حالت سرور برای حالت پست تغییر می کند و رشته نهایی (abcdefghijklmnop) برای داده های نتیجه تغییر می کند.
دستورات درب پشتی
PowHeartBeat دارای قابلیت های مختلفی از جمله اجرای دستور/فرایند و دستکاری فایل است. جدول 2 تمام دستورات پشتیبانی شده توسط نمونه های مختلف تجزیه و تحلیل شده را فهرست می کند.
جدول 2. توضیحات فرمان PowHeartBeat
نام | شناسه فرمان | توضیحات: |
---|---|---|
کلیدهای Cmd | 0x02 | یک دستور PowerShell را اجرا کنید. |
سابق | 0x04 | یک دستور را به صورت a اجرا کنید روند. |
آپلود فایل | 0x06 | فایلی را در دستگاه قربانی آپلود کنید. محتوای فایل به صورت gzip فشرده شده است. |
دانلود فایل | 0x08 | یک فایل را از ماشین قربانی دانلود کنید و مسیر فایل، طول فایل، زمان ایجاد، زمان دسترسی و محتوای فایل را به سرور C&C برگردانید. |
FileView | 0x0A | اطلاعات فایل یک دایرکتوری خاص را دریافت کنید، به ویژه: · نام فایل ها · ویژگی های فایل · آخرین زمان نوشتن · محتویات فایل |
حذف فایل | 0x0C | یک فایل را حذف کنید. |
تغییر نام فایل | 0x0E | تغییر نام یا انتقال یک فایل |
ChangeDir | 0x10 | محل کار فعلی درب پشتی را تغییر دهید. |
اطلاعات | 0x12 | یک دسته از اطلاعات را با توجه به آرگومان مشخص شده دریافت کنید: · "اطلاعات اولیه": شناسه مشتری, نسخه، نام میزبان، آدرس های IP، explorer.exe اطلاعات نسخه و اندازه، سیستم عامل (معماری و پرچم نشان می دهد که آیا دستگاه سرور است)، فاصله، فهرست فعلی، اطلاعات درایو (نام، نوع، فضای خالی و اندازه کل)، زمان فعلی · "اطلاعات بازه زمانی": فاصله و زمان فعلی · "اطلاعات دامنه": محتوای فایل پیکربندی رمزگشایی شده |
پیکربندی | 0x14 | محتوای فایل پیکربندی را به روز کنید و پیکربندی را دوباره بارگیری کنید. |
N / A | 0x63 | خروجی درب پشتی |
در صورت بروز خطا در سمت درب پشتی، درب پشتی از یک شناسه فرمان خاص 0x00 در درخواست POST به سرور C&C استفاده می کند، بنابراین نشان دهنده یک خطا است.
توجه داشته باشید که قبل از ارسال مجدد اطلاعات به سرور C&C، داده ها با gzip فشرده می شوند.
PNGLoad: لودر Steganographic
PNGLoad مرحله دوم است که توسط Worok بر روی سیستمهای در معرض خطر مستقر شده و طبق تلهمتری ESET، توسط CLRLoad یا PowHeartBeat بارگیری میشود. در حالی که هیچ کدی در PowHeartBeat نمیبینیم که مستقیماً PNGLoad را بارگیری کند، درب پشتی قابلیت دانلود و اجرای بارهای اضافی از سرور C&C را دارد، که احتمالاً چگونه مهاجمان PNGLoad را در سیستمهای در معرض خطر PowHeartBeat مستقر کردهاند. PNGLoad بارگیری است که از بایت های فایل های PNG برای ایجاد یک بار برای اجرا استفاده می کند. این یک .NET اجرایی 64 بیتی است - مبهم شده است راکتور دات نت - که به عنوان یک نرم افزار قانونی جلوه می کند. به عنوان مثال، شکل 11 سرصفحه های CLR نمونه ای را نشان می دهد که به عنوان یک DLL WinRAR ظاهر می شود.
پس از رفع ابهام، فقط یک کلاس وجود دارد. در این کلاس، یک وجود دارد مسیر اصلی ویژگی حاوی مسیر دایرکتوری است که درپشتیبان، از جمله زیر شاخه های آن، برای فایل هایی با a جستجو می کند فعلی پسوند، همانطور که در شکل 12 نشان داده شده است.
هر یک فعلی فایل واقع شده توسط این جستجو از مسیر اصلی سپس برای محتوای نهفته نگارانه بررسی می شود. ابتدا، کماهمیتترین بیت از مقادیر R (قرمز)، G (سبز)، B (آبی) و A (آلفا) هر پیکسل واکشی شده و در یک بافر جمع میشود. اگر هشت بایت اول آن بافر با عدد جادویی که در شکل 13 مشاهده می شود مطابقت داشته باشد و مقدار هشت بایتی بعدی، کنترل، غیر تهی باشد، فایل از بررسی محتوای استگانوگرافی PNGLoad عبور می کند. برای چنین فایلهایی، پردازش با استفاده از کلید ذخیرهشده در PNGLoad با رمزگشایی باقیمانده بافر با XOR چند بایتی ادامه مییابد. SecretKeyBytes ویژگی، و سپس بافر رمزگشایی شده توسط gzip از حالت فشرده خارج می شود. انتظار می رود نتیجه یک اسکریپت PowerShell باشد که بلافاصله اجرا می شود.
جالب اینجاست که عملیات انجام شده توسط PNGLoad در فایلی ثبت می شود که مسیر آن در متغیر ذخیره می شود. LogFilePath. عملیات تنها زمانی ثبت می شود که فایلی وجود داشته باشد که مسیر آن توسط متغیر داخلی مشخص شده باشد IfLogFilePath.
ما موفق به دریافت نمونه نشده ایم فعلی فایل همراه با PNGLoad استفاده می شود، اما نحوه عملکرد PNGLoad نشان می دهد که باید با فایل های PNG معتبر کار کند. برای پنهان کردن بار مخرب، Worok از اشیاء Bitmap در سی شارپ استفاده میکند، که فقط اطلاعات پیکسل را از فایلها میگیرند، نه ابرداده فایل. این بدان معناست که Worok میتواند محمولههای مخرب خود را در تصاویر PNG معتبر و بیضرر مخفی کند و در نتیجه در معرض دید پنهان شود.
نتیجه
Worok یک گروه جاسوسی سایبری است که ابزارهای خود را توسعه می دهد و همچنین از ابزارهای موجود برای به خطر انداختن اهداف خود استفاده می کند. سرقت اطلاعات از قربانیان آنها چیزی است که ما معتقدیم اپراتورها به دنبال آن هستند زیرا آنها بر نهادهای با مشخصات بالا در آسیا و آفریقا تمرکز می کنند و بخش های مختلف، اعم از خصوصی و دولتی را هدف قرار می دهند، اما با تاکید خاص بر نهادهای دولتی. زمانهای فعالیت و مجموعه ابزار نشاندهنده ارتباط احتمالی با TA428 است، اما ما این ارزیابی را با اطمینان کم انجام میدهیم. مجموعه ابزار سفارشی آنها شامل دو لودر – یکی در C++ و دیگری در C#.NET – و یک درب پشتی PowerShell است. در حالی که دید ما محدود است، ما امیدواریم که روشن کردن این گروه باعث تشویق سایر محققان به اشتراک گذاری اطلاعات در مورد این گروه شود.
ESET Research اکنون همچنین گزارشهای اطلاعاتی خصوصی APT و فیدهای داده را ارائه میدهد. برای هرگونه سوال در مورد این سرویس، به آدرس زیر مراجعه کنید ESET Threat Intelligence احتمال برد مراجعه کنید.
IOCs
فایل ها
SHA-1 | نام فایل | نام تشخیص ESET | اظهار نظر |
---|---|---|---|
3A47185D0735CDECF4C7C2299EB18401BFB328D5 | خط | PowerShell/PowHeartBeat.B | PowHeartBeat 2.4.3.0003. |
27ABB54A858AD1C1FF2863913BDA698D184E180D | خط | PowerShell/PowHeartBeat.A | PowHeartBeat 2.4.3.0003. |
678A131A9E932B9436241402D9727AA7D06A87E3 | خط | PowerShell/PowHeartBeat.B | PowHeartBeat 2.4.3.0003. |
757ABA12D04FD1167528FDD107A441D11CD8C427 | خط | PowerShell/PowHeartBeat.B | PowHeartBeat 2.1.3.0003. |
54700A48D934676FC698675B4CA5F712C0373188 | خط | PowerShell/PowHeartBeat.A | PowHeartBeat 1.1.3.0002. |
C2F53C138CB1B87D8FC9253A7088DB30B25389AF | خط | PowerShell/PowHeartBeat.A | PowHeartBeat 1.1.3.0002. |
C2F1954DE11F72A46A4E823DE767210A3743B205 | tmp.ps1 | PowerShell/PowHeartBeat.B | PowHeartBeat 2.4.3.0004. |
CE430A27DF87A6952D732B4562A7C23BEF4602D1 | tmp.ps1 | PowerShell/PowHeartBeat.A | PowHeartBeat 2.1.3.0004. |
EDE5AB2B94BA85F28D5EE22656958E4ECD77B6FF | خط | PowerShell/PowHeartBeat.A | PowHeartBeat 2.4.3.0003. |
4721EEBA13535D1EE98654EFCE6B43B778F13126 | vix64.dll | MSIL/PNGLoader.A | PNGLoader. |
728A6CB7A150141B4250659CF853F39BFDB7A46C | RarExtMgt.dll | MSIL/PNGLoader.A | PNGLoader. |
864E55749D28036704B6EA66555A86527E02AF4A | Jsprofile.dll | MSIL/PNGLoader.A | PNGLoader. |
8DA6387F30C584B5FD3694A99EC066784209CA4C | vssxml.dll | MSIL/PNGLoader.A | PNGLoader. |
AA60FB4293530FBFF00D200C0D44EEB1A17B1C76 | xsec_1_5.dll | MSIL/PNGLoader.A | PNGLoader. |
B2EAEC695DD8BB518C7E24C4F37A08344D6975BE | msvbvm80.dll | MSIL/PNGLoader.A | PNGLoader. |
CDB6B1CAFEE098615508F107814179DEAED1EBCF | lucenelib.dll | MSIL/PNGLoader.A | PNGLoader. |
4F9A43E6CF37FF20AE96E564C93898FDA6787F7D | vsstrace.dll | Win64/CLRLoad.C | CLRLload. |
F181E87B0CD6AA4575FD51B9F868CA7B27240610 | ncrypt.dll | Win32/CLRLoad.A | CLRLload. |
4CCF0386BDE80C339EFE0CC734CB497E0B08049C | ncrypt.dll | Win32/CLRLoad.A | CLRLload. |
5CFC0D776AF023DCFE8EDED5CADA03C6D7F9C244 | wlbsctrl.dll | Win64/CLRLoad.E | CLRLload. |
05F19EBF6D46576144276090CC113C6AB8CCEC08 | wlbsctrl.dll | Win32/CLRLoad.A | CLRLload. |
A5D548543D3C3037DA67DC0DA47214B2C2B15864 | secur32.dll | Win64/CLRLoad.H | CLRLload. |
CBF42DCAF579AF7E6055237E524C0F30507090F3 | dbghelp.dll | Win64/CLRLoad.C | CLRLload. |
مسیرهای فایل
برخی از مسیر اصلی, LogFilePath و IfLogFilePath مقادیری که در نمونه های PNGLoad با آنها مواجه شدیم:
مسیر اصلی | LogFilePath | IfLogFilePath |
---|---|---|
C: برنامه FilesVMwareVMware Tools | C:Program FilesVMwareVMware ToolsVMware VGAuthreadme.txt | C:Program FilesVMwareVMware ToolsVMware VGAuthVMWSU_V1_1.dll |
ج: فایل های برنامه WinRar | ج: فایل های برنامهWinRarrarinstall.log | ج: برنامه FilesWinRardes.dat |
ج: برنامه FilesUltraViewer | ج: برنامه FilesUltraViewerCopyRights.dat | C:Program FilesUltraVieweruvcr.dll |
شبکه ارتباطی
دامنه | IP |
---|---|
هیچ | 118.193.78[.]22 |
هیچ | 118.193.78[.]57 |
airplane.travel-commercials[.] آژانس | 5.183.101[.]9 |
central.suhypercloud[.]org | 45.77.36[.]243 |
موتکس ها
در نمونههای CLRLoad، نامهای mutex که با آنها مواجه شدیم عبارتند از:
aB82UduGX0EX
ad8TbUIZl5Ga
Mr2PJVxbIBD4
oERiQtKLgPgK
U37uxsCsA4Xm
Wo0r0KGWhYGO
xBUjQR2vxYTz
zYCLBWekRX3t
3c3401ad-e77d-4142-8db5-8eb5483d7e41
9xvzMsaWqxMy
فهرست جامعی از شاخصهای سازش (IoCs) و نمونهها را میتوانید در اینجا پیدا کنید مخزن GitHub ما.
تکنیک های MITER ATT&CK
این جدول با استفاده از 11 نسخه چارچوب MITER ATT&CK.
تاکتیک | ID | نام | توضیحات: |
---|---|---|---|
شناسایی | T1592.002 | جمع آوری اطلاعات میزبان قربانی: نرم افزار | PowHeartBeat جمع می شود explorer.exe اطلاعات. |
T1592.001 | اطلاعات میزبان قربانی را جمع آوری کنید: سخت افزار | PowHeartBeat اطلاعاتی در مورد درایوها جمع آوری می کند. | |
T1590.005 | اطلاعات شبکه قربانی را جمع آوری کنید: آدرس های IP | PowHeartBeat آدرس های IP رایانه در معرض خطر را جمع آوری می کند. | |
توسعه منابع | T1583.004 | زیرساخت به دست آوردن: سرور | Worok از سرورهای C&C خود استفاده می کند. |
T1588.002 | به دست آوردن قابلیت ها: ابزار | Worok چندین ابزار در دسترس عموم را بر روی ماشین های در معرض خطر مستقر کرد. | |
T1583.001 | زیرساخت ها را بدست آورید: دامنه ها | Worok دامنه هایی را برای تسهیل ارتباطات C&C و مرحله بندی ثبت کرده است. | |
T1588.005 | به دست آوردن قابلیت ها: بهره برداری ها | Worok از آسیب پذیری ProxyShell استفاده کرده است. | |
T1587.001 | توسعه قابلیت ها: بدافزار | Worok بدافزار خود را توسعه داده است: CLRLoad، PNGLoad، PowHeartBeat. | |
T1587.003 | توسعه قابلیت ها: گواهی های دیجیتال | Worok گواهینامه های Let's Encrypt SSL را به منظور فعال کردن احراز هویت متقابل TLS برای بدافزار ایجاد کرده است. | |
اعدام | T1059.001 | مترجم دستورات و اسکریپت: PowerShell | PowHeartBeat در PowerShell نوشته شده است. |
اصرار | T1505.003 | جزء نرم افزار سرور: Web Shell | Worok از پوسته وب استفاده می کند ری جورج. |
فرار از دفاع | T1140 | Deobfuscate/Decode فایل ها یا اطلاعات | Worok از طرحهای سفارشی مبتنی بر XOR برای رمزگذاری رشتهها و گزارشها در PowHeartBeat، PNGLoad و CLRLoad استفاده میکند. |
T1036.005 | پنهان کردن: نام یا مکان قانونی را مطابقت دهید | نمونه های PNGLoad در دایرکتوری های VMWare با ظاهر قانونی مستقر می شوند. | |
دسترسی به اعتبار | T1003.001 | تخلیه اعتبار سیستم عامل: حافظه LSASS | Worok از Mimikatz برای حذف اعتبارنامه ها از حافظه LSASS استفاده می کند. |
کشف | T1082 | کشف اطلاعات سیستم | PowHeartBeat اطلاعات سیستم عامل را جمع آوری می کند. |
T1083 | کشف فایل و دایرکتوری | PowHeartBeat می تواند فایل ها و دایرکتوری ها را فهرست کند. | |
T1046 | کشف خدمات شبکه | Worok استفاده می کند NbtScan برای به دست آوردن اطلاعات شبکه در مورد ماشین های در معرض خطر. | |
T1124 | کشف زمان سیستم | PowHeartBeat اطلاعات زمان قربانی را جمع آوری می کند. | |
مجموعه | T1005 | داده ها از سیستم محلی | PowHeartBeat داده ها را از سیستم محلی جمع آوری می کند. |
T1560.002 | آرشیو داده های جمع آوری شده: بایگانی از طریق کتابخانه | PowHeartBeat gzip داده ها را قبل از ارسال به سرور C&C فشرده می کند. | |
دستور و کنترل | T1071.001 | پروتکل لایه کاربردی: پروتکل های وب | برخی از انواع PowHeartBeat از HTTP به عنوان پروتکل ارتباطی با سرور C&C استفاده می کنند. |
T1090.001 | پروکسی: پروکسی داخلی | PowHeartBeat پیکربندی پروکسی را در دستگاه قربانی کنترل می کند. | |
T1001.002 | مبهم سازی داده ها: استگانوگرافی | PNGLoad مقادیر پیکسل را از آن استخراج می کند فعلی فایلهایی برای بازسازی بارها | |
T1573.002 | کانال رمزگذاری شده: رمزنگاری نامتقارن | PowHeartBeat ارتباطات HTTPS با سرور C&C را مدیریت می کند. | |
T1095 | پروتکل لایه غیر کاربردی | برخی از انواع PowHeartBeat از ICMP به عنوان پروتکل ارتباطی با سرور C&C استفاده می کنند. | |
T1132.001 | رمزگذاری داده ها: رمزگذاری استاندارد | Worok از رمزگذاری XOR در PowHeartBeat و PNGLoad استفاده می کند. | |
T1132.002 | رمزگذاری داده ها: رمزگذاری غیر استاندارد | Worok از الگوریتم های رمزگذاری XOR استفاده می کند که از نمک اضافی استفاده می کند. | |
اکسفیلتراسیون | T1041 | خروج از کانال C2 | PowHeartBeat از کانال ارتباطی C&C خود برای استخراج اطلاعات استفاده می کند. |