تركز مجموعة التجسس الإلكتروني الجديدة هذه في الغالب على آسيا ، وتستخدم أدوات غير موثقة ، بما في ذلك استخراج حمولات PowerShell من ملفات PNG
اكتشف باحثو ESET مؤخرًا هجمات مستهدفة استخدمت أدوات غير موثقة ضد العديد من الشركات البارزة والحكومات المحلية في الغالب في آسيا. تم تنفيذ هذه الهجمات من قبل مجموعة تجسس غير معروفة سابقًا أطلقنا عليها اسم Worok والتي كانت نشطة منذ عام 2020 على الأقل. تشتمل مجموعة أدوات Worok على محمل C ++ CLRLoad ، و PowerShell Back Door PowHeartBeat ، و C # loader PNGLoad الذي يستخدم إخفاء المعلومات لاستخراج البرامج الضارة المخفية الحمولات من ملفات PNG.
من هو وروك؟
أثناء ProxyShell (CVE-2021-34523) الكشف عن الثغرات الأمنية في أوائل عام 2021 ، لاحظنا نشاط من مجموعات APT المختلفة. أظهر أحد الخصائص المشتركة مع TA428:
- أوقات النشاط
- القطاعات المستهدفة
- إستعمال ShadowPad
باقي مجموعة الأدوات مختلفة تمامًا: على سبيل المثال ، شارك TA428 في حل وسط سطح المكتب في عام 2020. نحن نعتبر أن الروابط ليست قوية بما يكفي لاعتبار Worok هي نفس مجموعة TA428 ، ولكن قد تشترك المجموعتان في الأدوات ولديهما اهتمامات مشتركة. قررنا إنشاء كتلة وأطلقنا عليها اسم Worok. تم اختيار الاسم بعد كائن المزامنة في محمل تستخدمه المجموعة. ثم تم ربط نشاط إضافي مع متغيرات من نفس الأدوات بهذه المجموعة. وفقًا للقياس عن بُعد الخاص بـ ESET ، كانت Worok نشطة منذ أواخر عام 2020 ولا تزال نشطة حتى كتابة هذه السطور.
مرة أخرى في أواخر عام 2020 ، كانت Worok تستهدف الحكومات والشركات في العديد من البلدان ، على وجه التحديد:
- شركة اتصالات في شرق آسيا
- بنك في آسيا الوسطى
- شركة صناعة بحرية في جنوب شرق آسيا
- جهة حكومية في الشرق الأوسط
- شركة خاصة في جنوب إفريقيا
كان هناك انقطاع كبير في العمليات المرصودة من 2021-05 إلى 2022-01 ، لكن نشاط Worok عاد في 2022-02 ، مستهدفًا:
- شركة طاقة في آسيا الوسطى
- كيان قطاع عام في جنوب شرق آسيا
يقدم الشكل 1 خريطة حرارية بصرية للمناطق المستهدفة والعمودية.
بالنظر إلى ملفات تعريف الأهداف والأدوات التي رأيناها منتشرة ضد هؤلاء الضحايا ، نعتقد أن الهدف الرئيسي لـ Worok هو سرقة المعلومات.
التحليل الفني
في حين أن غالبية عمليات الوصول الأولية غير معروفة ، فقد شهدنا في بعض الحالات خلال عامي 2021 و 2022 استخدام ثغرات استغلال ضد ثغرات ProxyShell. في مثل هذه الحالات ، يتم عادةً تحميل قذائف الويب بعد استغلال نقاط الضعف هذه ، من أجل توفير الثبات في شبكة الضحية. ثم استخدم المشغلون غرسات مختلفة لاكتساب المزيد من القدرات.
بمجرد الحصول على الوصول ، نشر المشغلون أدوات متعددة متاحة للجمهور للاستطلاع ، بما في ذلك Mimikatz, دودة الأرض, ريجورجو NBTscan، ثم نشروا غرساتهم المخصصة: محمل المرحلة الأولى ، متبوعًا بمحمل .NET من المرحلة الثانية (PNGLoad). للأسف ، لم نتمكن من استرداد أي من الحمولات النهائية. في عام 2021 ، كان محمل المرحلة الأولى عبارة عن مجموعة CLR (تحميل CLRL) ، بينما تم استبداله في عام 2022 ، في معظم الحالات ، بباب خلفي PowerShell كامل الميزات (PowHeartBeat) - كلا سلسلتي التنفيذ موضحة في الشكل 2. هذه الثلاثة يتم وصف الأدوات بالتفصيل في الأقسام الفرعية التالية.
CLRLoad: محمل تجميع CLR
CLRLoad هو نظام Windows PE عام رأيناه في كلا الإصدارين 32 و 64 بت. هو مُحمل مكتوب بلغة C ++ يقوم بتحميل المرحلة التالية (PNGLoad) ، والتي يجب أن تكون ملف تجميع وقت تشغيل اللغة العامة (CLR) ملف DLL. يتم تحميل هذا الرمز من ملف موجود على القرص في دليل شرعي ، من المفترض أن يضلل الضحايا أو المستجيبين للحوادث للاعتقاد بأنه برنامج شرعي.
تبدأ بعض عينات CLRLoad بفك تشفير المسار الكامل للملف الذي سيتم تحميل محتواه كمرحلة تالية. يتم ترميز مسارات الملفات هذه باستخدام XOR أحادي البايت ، بمفتاح مختلف في كل عينة. مسارات الملفات هذه ، التي تم فك ترميزها أو نص واضح ، مطلقة ، مع ما يلي هي تلك التي واجهناها:
- ج: برنامج FilesVMwareVMware ToolsVMware VGAuthxsec_1_5.dll
- ج: برنامج FilesUltraViewermsvbvm80.dll
- ج: برنامج FilesInternet ExplorerJsprofile.dll
- ج: برنامج FilesWinRarRarExtMgt.dll
- C: ملفات البرنامج (x86) Foxit SoftwareFoxit Readerlucenelib.dll
بعد ذلك ، يتم إنشاء كائن المزامنة (mutex) ورأينا اسمًا مختلفًا في كل عينة. يتحقق المُحمل من وجود كائن المزامنة (mutex) ؛ إذا تم العثور عليه ، فإنه يخرج ، لأن المحمل يعمل بالفعل. في واحدة من العينات ، كائن المزامنة Wo0r0KGWhYGO تم العثور عليه ، مما أعطى المجموعة اسمها Worok.
CLRLoad ثم تحميل تجميع CLR من مسار الملف المحتمل فك ترميزه. ككود غير مُدار ، يحقق CLRLoad ذلك عبر CorBindToRuntimeEx يستدعي Windows API في متغيرات 32 بت ، أو إنشاء المعلومات CLRC المكالمات في متغيرات 64 بت.
PowHeartBeat: باب خلفي PowerShell
PowHeartBeat عبارة عن باب خلفي كامل الميزات مكتوب في PowerShell ، معتم باستخدام تقنيات مختلفة مثل الضغط والتشفير والتشفير. استنادًا إلى ESET عن بُعد ، نعتقد أن PowHeartBeat استبدلت CLRLoad في حملات Worok الحديثة كأداة مستخدمة لإطلاق PNGLoad.
تتكون الطبقة الأولى من كود الباب الخلفي من أجزاء متعددة من كود PowerShell بترميز base64. بمجرد إعادة بناء الحمولة ، يتم تنفيذها عبر IEX. بمجرد فك الشفرة ، يتم تنفيذ طبقة أخرى من الشفرة المبهمة ، والتي يمكننا رؤيتها في الشكل 3.
الطبقة الثانية من الباب الخلفي base64 الأول يقوم بفك ترميز الطبقة التالية من الكود الخاص به ، والذي يتم بعد ذلك فك تشفيره باستخدام ثلاثية DES (وضع CBC). بعد فك التشفير ، يتم فك ضغط هذا الرمز باستخدام ملف GZIP الخوارزمية ، مما يعطي الطبقة الثالثة من كود PowerShell ، وهو الباب الخلفي الفعلي. وهي مقسمة إلى جزأين رئيسيين: التكوين والتعامل مع أوامر الباب الخلفي.
تتم أيضًا كتابة الطبقة الرئيسية من كود الباب الخلفي في PowerShell وتستخدم HTTP أو ICMP للتواصل مع خادم C&C. يعمل كما هو موضح في الشكل 4.
الاعداد
يحتوي التكوين على حقول متعددة ، بما في ذلك رقم الإصدار وتكوين الوكيل الاختياري وعنوان C&C. يصف الجدول 1 معاني حقول التكوين في الإصدارات المختلفة التي لاحظناها.
الجدول 1. معاني مجال التكوين
اسم الحقل | الوصف |
---|---|
الأنف / ikuyrtydyfg (عينات أخرى) |
غير مستعمل. |
معرف العميل | معرّف العميل ، يُستخدم للأغراض التالية: · كقيمة عند بناء رأس ملف تعريف الارتباط لاتصالات C & C. · كأداة تشفير لتشفير البيانات المرسلة. |
التجريبية | رقم إصدار PowHeartBeat. |
ExecTimes | عدد محاولات التنفيذ المسموح بها عند إصدار أ RunCmd (تشغيل الأمر). |
وكيل المستخدم | وكيل المستخدم المستخدم لاتصالات القيادة والتحكم. |
التحويلية | التحويلية رأس يستخدم لاتصالات القيادة والتحكم. |
قبول الترميز | غير مستعمل. |
معرف ملف تعريف الارتباط معرف_مهمة_ملف_الكوكيز معرف ملف تعريف الارتباط |
القيم المستخدمة لبناء كوكي رأس للاتصالات C & C. |
عنوان UrlHttps | بروتوكول لاستخدامه في اتصالات القيادة والتحكم. |
UrlDomain IPADDRESS المجالات |
عنوان URL أو المجال (المجالات) أو عنوان IP المستخدم كخادم القيادة والتحكم. إذا المجالات ليس فارغًا ، تم اختياره بدلاً من IPADDRESS. في حالات أخرى، IPADDRESS مأخوذ. |
UrlSendHeartBeat | يستخدم مسار URL عندما يطلب الباب الخلفي من خادم القيادة والتحكم الأوامر. |
UrlSendResult | يستخدم مسار URL عندما يرسل الباب الخلفي نتائج الأمر مرة أخرى إلى خادم القيادة والتحكم. |
GetUrl | عنوان URL الكامل ، يستخدمه PowHeartBeat لطلب أوامر من خادم القيادة والتحكم. إنه تسلسل عناصر عنوان URL أعلاه. |
PutUrl | مثل GetUrl ولكنها تستخدم لإرسال نتائج الأمر مرة أخرى إلى خادم القيادة والتحكم. |
المسار الحالي | غير مستعمل. |
ProxyEnableFlag | علامة تشير إلى ما إذا كان يجب على الباب الخلفي استخدام وكيل أم لا من أجل الاتصال بخادم القيادة والتحكم. |
بروكسيمسج | عنوان الوكيل المراد استخدامه إذا ProxyEnableFlag ومن المقرر أن $ صحيح. |
الفاصلة | الوقت بالثواني الذي ينام فيه البرنامج النصي بين طلبات GET. |
BasicConfigPath | المسار إلى ملف تكوين اختياري يحتوي على الجهوزية, تعطل, الافتراضيو المجالات. سيتم تجاوز هذه القيم إذا كان الملف موجودًا. |
الجهوزية | الوقت من اليوم الذي يبدأ منه الباب الخلفي في العمل ، مما يعني أنه يبدأ في تقديم طلبات GET إلى خادم القيادة والتحكم. |
تعطل | الوقت من اليوم الذي يمكن أن يعمل فيه الباب الخلفي ، وهذا يعني الوقت الذي يتوقف فيه عن تقديم الطلبات إلى خادم القيادة والتحكم. |
المجال | فهرس اسم المجال الحالي لاستخدامه في الاتصالات مع خادم القيادة والتحكم. في حالة إرجاع الطلب لرسالة خطأ مختلفة عن 304 ("غير معدل")، المجال قد ارتفع. |
مفتاح سري | المفتاح المستخدم لفك تشفير / تشفير التكوين. التكوين مشفر بـ XOR متعدد البايت. |
إذا سجل | غير مستعمل. |
IfLogFilePath | علامة تشير إلى ما إذا كان التسجيل ممكّنًا أم لا. |
ممر | مسار ملف السجل. |
ملف الوكيل | مسار ملف تكوين الوكيل الاختياري. إذا كان فارغًا أو لم يتم العثور عليه في نظام الملفات ، يقوم الباب الخلفي باسترداد إعدادات الوكيل للمستخدم من قيمة التسجيل HKCUSoftwareMicrosoftWindowsCurrentVersionInternetSettingsProxyServer . |
إذاالتكوين | علامة تشير إلى ما إذا كنت تريد استخدام ملف تكوين أم لا. |
يوضح الشكل 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 متعدد البايت مع القيمة من مفتاح سري كمفتاحه.
اتصالات C & C
استخدم PowHeartBeat HTTP لاتصالات C&C حتى الإصدار 2.4 ، ثم تحول إلى ICMP. في كلتا الحالتين لا يتم تشفير الاتصال.
HTTP
في حلقة لا نهائية ، يرسل الباب الخلفي طلب GET إلى خادم القيادة والتحكم ، ويطلب إصدار أمر. يتم فك تشفير الإجابة المشفرة بواسطة الباب الخلفي ، الذي يعالج الأمر ، ويكتب إخراج الأمر إلى ملف يتم إرسال محتواه بعد ذلك إلى خادم C&C عبر طلب POST.
تنسيق طلبات GET هو كما يلي:
GET <UrlSendHeartBeat> HTTP/1.1 User-Agent: <UserAgent> Referer: <Referer> Host: <Domain> Cookie: <CookieClientId>=<ClientId> Connection: close |
لاحظ أن الطلب تم إنشاؤه باستخدام حقول التكوين التي تحمل اسمًا.
في الاستجابة من خادم القيادة والتحكم ، فإن البايت الثالث للمحتوى هو معرف الأمر الذي يشير إلى الأمر المراد معالجته بواسطة الباب الخلفي. سوف نسميها معرف_الأمر. سيتم تمرير المحتوى المتبقي من الاستجابة كوسيطة للأمر الذي تتم معالجته. تم تشفير هذا المحتوى باستخدام الخوارزمية الموضحة في الشكل 6 ، معرف المهمة كونها قيمة ملف تعريف الارتباط الذي يحمل الاسم معرف_مهمة_ملف_الكوكيزمن التكوين.
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. يطلب خوارزمية تشفير بيانات المحتوى
تحتوي الاستجابة من خادم القيادة والتحكم أيضًا على ملف تعريف ارتباط آخر ، يتم تحديد اسمه بواسطة الباب الخلفي معرف ملف تعريف الارتباط متغير التكوين. تتكرر قيمة ملف تعريف الارتباط هذا في طلب POST من الباب الخلفي ، ويجب ألا يكون فارغًا. بعد تنفيذ الأمر backdoor ، يرسل PowHeartBeat النتيجة كطلب POST إلى خادم القيادة والتحكم. يتم إرسال النتيجة كملف اسمه .بي إن جي.
ICMP
بدءًا من الإصدار 2.4 من PowHeartBeat ، تم استبدال HTTP بـ ICMP ، وأرسلت الحزم التي لها مهلة ست ثوانٍ وتكون غير مجزأ. من المرجح أن يكون الاتصال من خلال اللجنة الدولية لشؤون المفقودين وسيلة لتجنب الاكتشاف.
لا يوجد تغيير كبير في الإصدار 2.4 وما بعده ، لكننا لاحظنا بعض التعديلات في الكود:
- يرسل PowHeartBeat حزمة نبضات في كل حلقة تحتوي على السلسلة ABCDEFGHIJKLMNOPQRSTUVWXYZ، قبل طلب الأمر. هذا يخبر خادم القيادة والتحكم أن الباب الخلفي جاهز لتلقي الأوامر.
- تحتوي طلبات الحصول على أوامر يقوم بها الباب الخلفي على السلسلة abcdefghijklmnop.
تحتوي حزم Heartbeat على التنسيق الموضح في الشكل 7.
الفرق بين معرف العميل و علم العميل غير أن معرف العميل يختلف في كل عينة حيث علم العميل هو نفسه في كل عينة تستخدم ICMP. علم نبضات القلب يشير إلى أن الباب الخلفي يرسل نبضات قلب. الاستجابة من خادم القيادة والتحكم لها التنسيق الموضح في الشكل 8.
علم يشير هنا إلى ما إذا كان هناك أمر لإصداره إلى الباب الخلفي. طلبات الحصول على أوامر لها التنسيق الموضح في الشكل 9.
لاحظ أن وضع ICMP للباب الخلفي يسمح بتلقي كمية غير محدودة من البيانات مقسمة إلى أجزاء ومتغيرات طول البيانات, الموقف الحالى و الطول الاجمالي تستخدم لتتبع البيانات المرسلة. الردود على هذه الطلبات لها التنسيق الموضح في الشكل 10.
كما هو الحال في استجابات HTTP ، يكون معرف الأمر هو البايت الثالث من البيانات.
بعد سبع ردود متتالية لـ ICMP مع محتوى فارغ أو منسق بشكل غير متسق ، تعتبر عمليات النقل بين الباب الخلفي وخادم القيادة والتحكم منتهية.
فيما يتعلق بطلبات إرسال نتيجة الأمر الصادر إلى خادم القيادة والتحكم ، يتم تغيير وضع الخادم لوضع الإرسال ، والسلسلة النهائية (abcdefghijklmnop) لبيانات النتيجة.
أوامر مستتر
يتمتع PowHeartBeat بقدرات متنوعة ، بما في ذلك تنفيذ الأوامر / العمليات ومعالجة الملفات. يسرد الجدول 2 جميع الأوامر التي تدعمها العينات التي تم تحليلها المختلفة.
الجدول 2. أوصاف أوامر PowHeartBeat
الاسم | معرف الأمر | الوصف |
---|---|---|
كمد | 0x02 | قم بتنفيذ أمر PowerShell. |
إكس | 0x04 | قم بتنفيذ الأمر كملف عملية المعالجة . |
تحميل الملف | 0x06 | قم بتحميل ملف إلى جهاز الضحية. محتوى الملف مضغوط بتنسيق gzip. |
تحميل الملف | 0x08 | قم بتنزيل ملف من الجهاز الضحية ، وأعد مسار الملف ، وطول الملف ، ووقت الإنشاء ، وأوقات الوصول ، ومحتوى الملف إلى خادم القيادة والتحكم. |
عرض ملف | 0x0A | الحصول على معلومات الملف الخاصة بدليل معين ، على وجه الخصوص: · أسماء الملفات سمات الملف آخر مرات الكتابة محتويات الملف |
ملف حذف | 0x0C | احذف ملفًا. |
إعادة تسمية الملف | 0x0E | إعادة تسمية ملف أو نقله. |
تغييرالدير | 0x10 | قم بتغيير موقع العمل الحالي للباب الخلفي. |
معلومات | 0x12 | احصل على فئة من المعلومات وفقًا للوسيطة المحددة: · "معلومات اساسية": معرف العميل, التجريبية، اسم المضيف ، عناوين IP ، EXPLORER.EXE معلومات الإصدار والحجم ونظام التشغيل (العمارة والعلامة التي تشير إلى ما إذا كان الجهاز خادمًا) ، الفاصلةالدليل الحالي معلومات محرك الأقراص (الاسم والنوع والمساحة الخالية والحجم الإجمالي) الوقت الحالي · "معلومات الفاصل الزمني": الفاصلة والوقت الحالي · "معلومات المجال": محتوى ملف التكوين الذي تم فك تشفيره |
التكوين | 0x14 | قم بتحديث محتوى ملف التكوين وأعد تحميل التكوين. |
N / A | 0x63 | خروج مستتر. |
في حالة وجود أخطاء من جانب الباب الخلفي ، يستخدم الباب الخلفي معرف أمر محدد 0x00 في طلب POST إلى خادم القيادة والتحكم ، مما يشير إلى حدوث خطأ.
لاحظ أنه قبل إرسال المعلومات مرة أخرى إلى خادم القيادة والتحكم ، يتم ضغط البيانات بتنسيق gzip.
تحميل: محمل Steganographic
PNGLoad هي حمولة المرحلة الثانية التي يتم نشرها بواسطة Worok على الأنظمة المخترقة ، ووفقًا لقياس ESET عن بُعد ، يتم تحميلها إما بواسطة CLRLoad أو PowHeartBeat. على الرغم من أننا لا نرى أي رمز في PowHeartBeat يقوم بتحميل PNGLoad مباشرةً ، فإن الباب الخلفي لديه القدرة على تنزيل وتنفيذ حمولات إضافية من خادم القيادة والتحكم ، وهو ما يُرجح كيف نشر المهاجمون PNGLoad على الأنظمة المخترقة باستخدام PowHeartBeat. PNGLoad عبارة عن أداة تحميل تستخدم وحدات بايت من ملفات PNG لإنشاء حمولة لتنفيذها. إنه ملف. NET قابل للتنفيذ 64 بت - معتم مفاعل .NET - يتنكر كبرنامج شرعي. على سبيل المثال ، يوضح الشكل 11 رؤوس CLR لعينة متنكرة على أنها WinRAR DLL.
بمجرد تفكيكها ، يوجد فئة واحدة فقط. في هذه الفئة ، يوجد ملف الطريق الرئيسي السمة التي تحتوي على مسار الدليل ، يبحث الباب الخلفي ، بما في ذلك الدلائل الفرعية ، عن الملفات ذات الامتداد بابوا نيو غينيا التمديد ، كما هو موضح في الشكل 12.
كل بابوا نيو غينيا الملف الموجود من خلال هذا البحث الطريق الرئيسي ثم يتم فحصه بحثًا عن محتوى مضمن بطريقة إخفاء المعلومات. أولاً ، يتم جلب البت الأقل أهمية لقيم كل بكسل R (أحمر) و G (أخضر) و B (أزرق) و A (ألفا) وتجميعها في مخزن مؤقت. إذا كانت البايتات الثمانية الأولى من ذلك المخزن المؤقت تتطابق مع الرقم السحري الظاهر في الشكل 13 وقيمة الثمانية بايت التالية ، التحكم ، تكون غير فارغة ، فإن الملف يجتاز فحص محتوى PNGLoad المخفي. بالنسبة لمثل هذه الملفات ، تستمر المعالجة مع ما تبقى من المخزن المؤقت الذي تم فك تشفيره باستخدام XOR متعدد البايت ، باستخدام المفتاح المخزن في PNGLoad's SecretKeyBytes السمة ، ثم يتم فك ضغط المخزن المؤقت الذي تم فك تشفيره بواسطة gzip. من المتوقع أن تكون النتيجة برنامج نصي PowerShell ، يتم تشغيله على الفور.
ومن المثير للاهتمام ، أن العمليات التي يقوم بها PNGLoad يتم تسجيلها في ملف يتم تخزين مساره في المتغير مسار ملف السجل. يتم تسجيل العمليات فقط في حالة وجود ملف يتم تحديد مساره بواسطة المتغير الداخلي IfLogFilePath.
لم نتمكن من الحصول على عينة بابوا نيو غينيا الملف المستخدم مع PNGLoad ، ولكن الطريقة التي يعمل بها PNGLoad تشير إلى أنه يجب أن يعمل مع ملفات PNG صالحة. لإخفاء الحمولة الضارة ، يستخدم Worok كائنات Bitmap في C # ، والتي تأخذ معلومات البكسل فقط من الملفات ، وليس البيانات الأولية للملف. هذا يعني أن Worok يمكنها إخفاء حمولاتها الضارة في صور PNG صالحة وغير ضارة ، وبالتالي تختبئ في مرأى من الجميع.
وفي الختام
Worok هي مجموعة تجسس إلكتروني تعمل على تطوير أدواتها الخاصة ، فضلاً عن الاستفادة من الأدوات الحالية ، للتغلب على أهدافها. سرقة المعلومات من ضحاياهم هو ما نعتقد أن المشغلين يسعون إليه لأنهم يركزون على كيانات بارزة في آسيا وأفريقيا ، ويستهدفون قطاعات مختلفة ، خاصة وعامة ، ولكن مع التركيز بشكل خاص على الكيانات الحكومية. تشير أوقات النشاط ومجموعة الأدوات إلى الروابط المحتملة مع TA428 ، لكننا نجري هذا التقييم بثقة منخفضة. تشتمل مجموعة الأدوات المخصصة الخاصة بهم على محملَين - أحدهما في C ++ والآخر في C # .NET - وباب خلفي PowerShell واحد. في حين أن رؤيتنا محدودة ، نأمل أن يؤدي تسليط الضوء على هذه المجموعة إلى تشجيع الباحثين الآخرين على مشاركة المعلومات حول هذه المجموعة.
تقدم ESET Research الآن أيضًا تقارير استخباراتية خاصة لـ APT وموجزات بيانات. لأية استفسارات حول هذه الخدمة ، قم بزيارة استخبارات التهديدات من إسيت .
شركات النفط العالمية
ملفات
SHA-1 | اسم الملف | اسم ESET Detection | الرسالة |
---|---|---|---|
3A47185D0735CDECF4C7C2299EB18401BFB328D5 | سيناريو | بوويرشيل / باو هارتبيت ب | بوهارتبيت 2.4.3.0003. |
27ABB54A858AD1C1FF2863913BDA698D184E180D | سيناريو | PowerShell / PowHeartBeat | بوهارتبيت 2.4.3.0003. |
678A131A9E932B9436241402D9727AA7D06A87E3 | سيناريو | بوويرشيل / باو هارتبيت ب | بوهارتبيت 2.4.3.0003. |
757ABA12D04FD1167528FDD107A441D11CD8C427 | سيناريو | بوويرشيل / باو هارتبيت ب | بوهارتبيت 2.1.3.0003. |
54700A48D934676FC698675B4CA5F712C0373188 | سيناريو | PowerShell / PowHeartBeat | بوهارتبيت 1.1.3.0002. |
C2F53C138CB1B87D8FC9253A7088DB30B25389AF | سيناريو | PowerShell / PowHeartBeat | بوهارتبيت 1.1.3.0002. |
C2F1954DE11F72A46A4E823DE767210A3743B205 | tmp.ps1 | بوويرشيل / باو هارتبيت ب | بوهارتبيت 2.4.3.0004. |
CE430A27DF87A6952D732B4562A7C23BEF4602D1 | tmp.ps1 | PowerShell / PowHeartBeat | بوهارتبيت 2.1.3.0004. |
EDE5AB2B94BA85F28D5EE22656958E4ECD77B6FF | سيناريو | PowerShell / 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 | تحميل. |
F181E87B0CD6AA4575FD51B9F868CA7B27240610 | ncrypt.dll | Win32 / CLRLoad.A | تحميل. |
4CCF0386BDE80C339EFE0CC734CB497E0B08049C | ncrypt.dll | Win32 / CLRLoad.A | تحميل. |
5CFC0D776AF023DCFE8EDED5CADA03C6D7F9C244 | wlbsctrl.dll | Win64 / CLRLoad.E | تحميل. |
05F19EBF6D46576144276090CC113C6AB8CCEC08 | wlbsctrl.dll | Win32 / CLRLoad.A | تحميل. |
A5D548543D3C3037DA67DC0DA47214B2C2B15864 | secur32.dll | Win64 / CLRLoad.H | تحميل. |
CBF42DCAF579AF7E6055237E524C0F30507090F3 | dbghelp.dll | Win64 / CLRLoad.C | تحميل. |
مسارات الملفات
بعض الطريق الرئيسي, مسار ملف السجل و IfLogFilePath القيم التي واجهناها في نماذج PNGLoad:
الطريق الرئيسي | مسار ملف السجل | IfLogFilePath |
---|---|---|
ج: برنامج FilesVMwareVMware Tools | ج: برنامج FilesVMwareVMware ToolsVMware VGAuthreadme.txt | ج: Program FilesVMwareVMware ToolsVMware VGAuthVMWSU_V1_1.dll |
ج: ملفات البرنامج WinRar | ج: Program FilesWinRarrarinstall.log | ج: برنامج FilesWinRardes.dat |
ج: برنامج FilesUltraViewer | ج: برنامج FilesUltraViewerCopyRights.dat | ج: برنامج FilesUltraVieweruvcr.dll |
شبكة
نطاق | IP |
---|---|
بدون اضاءة | 118.193.78 [.] 22 |
بدون اضاءة | 118.193.78 [.] 57 |
وكالة طيران | 5.183.101 [.] 9 |
Central.suhypercloud [.] org | 45.77.36 [.] 243 |
كائنات موتكس
في عينات CLRLoad ، أسماء كائن المزامنة التي واجهناها هي:
aB82UduGX0EX
ad8TbUIZl5Ga
السيد 2PJVxbIBD4
oERiQtKLgPgK
U37uxsCsA4Xm
Wo0r0KGWhYGO
xBUjQR2vxYTz
zYCLBWekRX3t
3c3401ad-e77d-4142-8db5-8eb5483d7e41
9xvzMsaWqxMy
يمكن العثور على قائمة شاملة لمؤشرات التسوية (IoC) والعينات في لدينا مستودع جيثب.
تقنيات MITER ATT & CK
تم بناء هذا الجدول باستخدام إصدار 11 من إطار MITER ATT & CK.
تكتيك | ID | الاسم | الوصف |
---|---|---|---|
استطلاع | T1592.002 | جمع معلومات مضيف الضحية: البرامج | يجمع PowHeartBeat explorer.exe's معلومات. |
T1592.001 | جمع معلومات مضيف الضحية: الأجهزة | يجمع PowHeartBeat معلومات حول محركات الأقراص. | |
T1590.005 | جمع معلومات شبكة الضحايا: عناوين IP | يجمع PowHeartBeat عناوين IP للكمبيوتر المخترق. | |
تنمية الموارد | T1583.004 | اكتساب البنية التحتية: الخادم | تستخدم Worok خوادم القيادة والتحكم الخاصة بها. |
T1588.002 | الحصول على القدرات: الأداة | نشرت Worok العديد من الأدوات المتاحة للجمهور على الأجهزة المخترقة. | |
T1583.001 | اكتساب البنية التحتية: المجالات | سجلت Worok مجالات لتسهيل الاتصال والتحكم والتشغيل. | |
T1588.005 | اكتساب القدرات: المآثر | استخدم Worok ثغرة ProxyShell. | |
T1587.001 | تطوير القدرات: البرامج الضارة | طورت Worok البرامج الضارة الخاصة بها: CLRLoad و PNGLoad و PowHeartBeat. | |
T1587.003 | تطوير القدرات: الشهادات الرقمية | أنشأ Worok شهادات Let's Encrypt SSL لتمكين مصادقة TLS المتبادلة للبرامج الضارة. | |
التنفيذ | T1059.001 | مترجم الأوامر والبرمجة: بوويرشيل | تمت كتابة PowHeartBeat في PowerShell. |
إصرار | T1505.003 | مكون برنامج الخادم: Web Shell | يستخدم Worok قشرة الويب ريجورج. |
التهرب الدفاعي | T1140 | فك تشفير / فك تشفير الملفات أو المعلومات | يستخدم 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 بضغط البيانات قبل إرسالها إلى خادم القيادة والتحكم. | |
القيادة والتحكم | T1071.001 | بروتوكول طبقة التطبيق: بروتوكولات الويب | تستخدم بعض متغيرات PowHeartBeat HTTP كبروتوكول اتصال مع خادم القيادة والسيطرة. |
T1090.001 | الوكيل: الوكيل الداخلي | يعالج PowHeartBeat تكوين الوكيل على جهاز الضحية. | |
T1001.002 | التعتيم على البيانات: إخفاء المعلومات | PNGLoad يستخرج قيم البكسل من بابوا نيو غينيا ملفات لإعادة بناء الحمولات. | |
T1573.002 | القناة المشفرة: التشفير غير المتماثل | يعالج PowHeartBeat اتصالات HTTPS مع خادم القيادة والتحكم. | |
T1095 | بروتوكول طبقة غير التطبيق | تستخدم بعض متغيرات PowHeartBeat بروتوكول ICMP كبروتوكول اتصال مع خادم القيادة والتحكم. | |
T1132.001 | ترميز البيانات: ترميز قياسي | يستخدم Worok ترميز XOR في PowHeartBeat و PNGLoad. | |
T1132.002 | ترميز البيانات: ترميز غير قياسي | يستخدم Worok خوارزميات ترميز XOR التي تستخدم ملحًا إضافيًا. | |
exfiltration | T1041 | تسلل عبر قناة C2 | يستخدم PowHeartBeat قناة اتصال القيادة والتحكم الخاصة به لسحب المعلومات. |