🚀 لقد رفعت CloudSek جولة B1 من السلسلة B1 بقيمة 19 مليون دولار - تعزيز مستقبل الأمن السيبراني التنبؤي

التحليل الفني لبرنامج الفدية ألفاف/بلاك كات

تحليل فني شامل لبرنامج BlackCat ransomware، الذي تسبب في دمار المؤسسات في جميع أنحاء العالم. ALPHV، المعروفة أيضًا باسم BlackCat، هي عائلة برامج الفدية التي شوهدت لأول مرة في أواخر عام 2021 وتستهدف العديد من الشركات عبر الصناعات.

ميهارديب سينغ ساوهني
May 22, 2023
Green Alert
Last Update posted on
August 21, 2025
المراقبة الاستباقية للويب المظلم لمؤسستك

قم بمراقبة البرامج الضارة والدفاع عنها بشكل استباقي باستخدام وحدة CloudSek xvigil Malware Logs، مما يضمن سلامة أصولك الرقمية

Schedule a Demo
Table of Contents
Author(s)
Coauthors image
هانسيكا ساكسينا

في السنوات الأخيرة، أصبحت هجمات برامج الفدية شائعة بشكل متزايد، مع اكتشاف سلالات جديدة طوال الوقت. إحدى هذه السلالات هي BlackCat ransomware، التي تسبب فسادًا للمنظمات في جميع أنحاء العالم. ALPHV، المعروفة أيضًا باسم BlackCat، هي عائلة برامج الفدية التي شوهدت لأول مرة في أواخر عام 2021 وتستهدف العديد من الشركات عبر الصناعات. يُنظر إلى مشغلي برامج الفدية وهم يستخدمون تقنيات الابتزاز المزدوج، والتي لا تتضمن تشفير النظام فحسب، بل أيضًا سرقة الملفات الحساسة من ضحاياهم. وبحسب ما ورد، يتم استخدام أداة أخرى مع برنامج الفدية لسرقة البيانات.

تتم كتابة BlackCat ransomware بلغة Rust وتأتي في شكل أداة سطر أوامر يمكن تشغيلها بحجج مختلفة. إنه قادر على قتل العديد من العمليات والخدمات. تتمثل إحدى ميزاته الرئيسية في قدرته على تصعيد الامتيازات وتجاوز التحكم في حساب المستخدم (UAC). تستخدم هذه البرامج الضارة المتطورة إما تشفير AES أو ChaCha20 (اعتمادًا على تكوينها) لتشفير جميع الملفات الموجودة على نظام الضحية. بالإضافة إلى ذلك، تتمتع بقدرات التهرب من وضع الحماية، مما يجعل من الصعب تحليل العينة. تتطلب برامج الفدية تشغيل الحجج، مما يجعل من المستحيل تحليلها بواسطة وضع الحماية. في هذه المدونة، سنلقي نظرة فاحصة على خصائص وتقنيات برنامج الفدية هذا الذي كتبه Rust.

نظرة عامة على الحملة التاريخية

لقد لوحظ أن المهاجمين الذين يستخدمون برنامج الفدية BlackCat يستخدمون أيضًا أداة سرقة .NET تسمى ExMatter، والتي طورتها نفس مجموعة APT، من أجل تنزيل الملفات من جهاز الضحية. وهذا ما يجعل هذا الهجوم أكثر قوة لأن هذا يمنح المهاجمين النفوذ لاستخدام تقنية تعرف باسم الابتزاز المزدوج، والتي تنطوي على ضغط إضافي يتمثل في تسريب ملفات مسروقة ربما تحتوي على بيانات حساسة. (راجع الملحق لقاعدة YARA التي تساعد في صيد BlackCat.)

التحليل الفني

يأتي ثنائي BlackCat في شكل أداة سطر أوامر يمكن تشغيلها باستخدام وسيطات مختلفة. على سبيل المثال:

  • باستخدام — مطول، سيتم عرض السجلات التي تم إنشاؤها بواسطة BlackCat على وحدة التحكم.
  • ال —واجهة المستخدم يعرض الخيار عرضًا يشبه واجهة المستخدم الرسومية في النافذة الطرفية، يُظهر التقدم والمعلومات المتعلقة بالملفات التي يتم تشفيرها على النظام.
لقطة شاشة تشبه واجهة المستخدم الرسومية المعروضة عند استخدام خيار واجهة المستخدم

من بين هذه الحجج، هناك واحدة منها فقط ضرورية لتنفيذ الثنائية، وهي رمز الوصول حجة.

قائمة الحجج التي يمكن استخدامها أثناء تشغيل الملف الثنائي

عمليات ما قبل التشفير

كما ذكرنا سابقًا، لن يتم تشغيل الملف الثنائي إلا إذا تم تزويده برمز وصول طويل مكون من 32 حرفًا. وهي تستخدم احصل على سطر الأوامر الجديد API للتحقق مما إذا كان رمز الوصول متوفرًا بشكل صحيح.

استخدام GetCommandLineW للتحقق مما إذا كان رمز الوصول متوفرًا بشكل صحيح

اعتمادًا على إصدار Ransomware، يمكن أن يكون هذا الرمز إما عشوائيًا (كما هو الحال في هذه العينة)، أو كما هو موضح في أحدث الإصدارات، فإن رمز الوصول هذا عبارة عن مفتاح مكون من 32 حرفًا يُستخدم لتشفير تكوين Ransomware المضمن في البرنامج الثنائي. تقوم أحدث الإصدارات بذلك من أجل منع الباحثين الأمنيين من استخراج التكوين. يعمل هذا أيضًا كإجراء لمكافحة وضع الحماية، نظرًا لأن أدوات التحليل الآلي لن تكون قادرة على تنفيذ العينة ما لم يتم تكوينها لتوفير رمز الوصول.

مذكرة الفدية

بمجرد توفير رمز الوصول إلى البرنامج الثنائي، يستمر برنامج الفدية عن طريق فك تشفير مذكرة الفدية المضمنة في البرنامج الثنائي وتخزينها لاستخدامها لاحقًا. يقوم أيضًا بتعيين مذكرة الفدية كخلفية لسطح المكتب.

مذكرة فدية تم فك تشفيرها مخزنة لاستخدامها لاحقًا

بعد ذلك، تعد Ransomware نفسها لتصعيد الامتيازات عن طريق إنشاء سلسلة رسائل جديدة باستخدام إنشاء موضوع API.

تصعيد الامتيازات وتجاوز UAC

يقوم برنامج الفدية BlackCat بإجراء تجاوز UAC عن طريق إساءة استخدام Microsoft COM (نموذج كائن المكون). يتضمن هذا الهجوم استخدام كائنات COM لثنائي يُعرف باسم Microsoft CMSTP (مثبت ملف تعريف مدير الاتصال)، وخاصة CMSTPLUA واجهة {3E5FC7F9-9A51-4367-9063-A120244 FBEC7}.

يستخدم برنامج الفدية كائن كوجيت لتسجيل نفسها في CLSID {3E5FC7F9-9A51-4367-9063-A120244 FBEC7}، والتي يتم استخدامها بشكل شرعي لتنفيذ التطبيقات ذات الامتيازات المرتفعة. تسمح هذه التقنية بتجاوز موجه UAC وتنفيذ إجراءاتها الضارة دون أن يتم اكتشافها أو حظرها من خلال الإجراءات الأمنية للنظام.

استخدام CogetObject لتسجيل نفسه مع {3E5FC7F9-9A51-4367-9063-A120244FBEC7} من أجل الحصول على امتيازات عالية

بمجرد أن يرفع برنامج الفدية الامتيازات، فإنه يتم تنفيذه داخل الموضوع الذي تم إنشاؤه حديثًا وينقل حججه إلى الأمام من مثيله السابق.

تقوم BlackCat بتنفيذ نفسها داخل الخيط الجديد بامتيازات مرتفعة باستخدام نفس الحجج كما كان من قبل.

بعد ذلك، تستخدم BlackCat ابحث عن قيمة الامتياز API من أجل البحث عن معرفات محلية لقائمة الامتيازات. تعمل كل من هذه الامتيازات على تمكين العملية الجارية من تشغيل العمليات على مستوى النظام. (راجع الملحق للحصول على قائمة كاملة ووصف لكل امتياز). ثم يستخدم الثنائي ضبط حواف الرمز المميز لكي تمنح نفسها تلك الامتيازات.

قائمة الامتيازات التي تسعى إليها BlackCat

 

استخدام LookupPrivilegeValueView وضبط الامتيازات الرمزية من أجل منح نفسها امتيازات

أخيرًا، تنهي BlackCat تحضيرها للتشفير من خلال القيام بما يلي:

  • حذف جميع النسخ الاحتياطية لوحدة التخزين باستخدام vssadmin و wMIC الأوامر، مما يجعل استعادة البيانات أكثر صعوبة.
  • تعطيل الإصلاح التلقائي باستخدام bcdedit، من أجل منع استعادة الملفات المتعلقة بالنظام.
  • مسح سجلات الأحداث.
  • إنهاء جميع الخدمات والعمليات النشطة.

ملاحظة: يحتوي BlackCat على تكوينه المضمن داخل نفسه ويقوم بفك تشفيره في وقت التشغيل. يحتوي التكوين على معلومات حول المفتاح العام الذي سيتم استخدامه لتشفير المفتاح، وأي خدمات محددة لإنهائها، وقائمة الاستثناءات، وما إلى ذلك.

لقطة شاشة تعرض تكوين BlackCat

تشفير البيانات

تستخدم عينة BlackCat المستخدمة في هذا التحليل AES للتشفير. الخطوات المتبعة في التشفير هي كما يلي:

  • يجتاز BlackCat النظام أولاً باستخدام حلقة من ابحث عن الملف الأول و ابحث عن الملف التالي من أجل العثور على جميع الملفات الموجودة على النظام.
  • تتم كتابة مذكرة الفدية إلى كل دليل باستخدام اكتب ملف.
لقطة شاشة لـ مذكرة الفدية التي تركتها BlackCat

  • استخدام BcryptgenRandom، يقوم برنامج الفدية بحساب مفتاح AES عشوائي.
  • يتم إنشاء كتلة JSON لكل ملف، والتي تحتوي على مفتاح AES المستخدم لتشفير الملف، ومعلومات حول الملف.
كتلة JSON تحتوي على معلومات حول المفتاح والملف

  • يتم تشفير مفتاح AES أيضًا باستخدام المفتاح العام RSA المخزن في تكوين BlackCat.
  • يتم تشفير الملف باستخدام AES، وتتم كتابة المحتويات إلى الملف باستخدام اقرأ الملف و اكتب ملف. تم ذكر الامتداد الجديد للملف في تكوين BlackCat.
استخدام AES لتشفير الملف

عمليات ما بعد التشفير

بمجرد أن ينتهي BlackCat من تشفير جميع الملفات الموجودة على النظام، يتم تغيير خلفية سطح المكتب، مما يوجه المستخدم إلى الرجوع إلى مذكرة الفدية.

خلفية سطح المكتب المتغيرة

ال عنوان URL الخاص بـ.onion المحدد في مذكرة الفدية فريد لكل ضحية، حيث تستخدم كل عينة رمز وصول مختلفًا، يتم توفيره لعنوان URL كمعامل. يحتوي عنوان URL الخاص بالبصل على معلومات حول الملفات المشفرة/المسروقة وإرشادات حول كيفية دفع الفدية.

مؤشرات التسوية (IOCs)

شا256

847FB7609 F53ED334D5FFB07256C21C5E6E6C5E 6F68B1CC 14004F5502D714D2A456

3a08e3bfec2db5dbce359ac9662e65361 a8625a0122e68b56cd5ef3aedf8ce1

9802a1e8fb425ac3a7c0a5a17cb7f3f5f5f5f5f5f0962 ديسيبل 29e3982f0beec95e26

f7a038f9b91c40e9d67f4168997d7d7d7d7d7d8c12c2d27c9e36c413d021796a24e083

الملحق

قائمة بامتيازات ومسؤوليات الأمان التي تستهدفها BlackCat

Security Privilege

Responsibility

SeIncreaseQuotaPrivilege

Allows a process to increase the memory quota assigned to it.

SeSecurityPrivilege

Allows a process to read or modify the security settings of objects in the system.

SeTakeOwnershipPrivilege

Allows a process to take ownership of any object in the system.

SeLoadDriverPrivilege

Allows a process to load device drivers.

SeSystemProfilePrivilege

Allows a process to gather profiling information for the entire system.

SeSystemtimePrivilege

Allows a process to change the system time.

SeProfileSingleProcessPrivilege

Allows a process to profile a single process.

SeIncreaseBasePriorityPrivilege

Allows a process to increase the base priority of a thread.

SeCreatePagefilePrivilege

Allows a process to create a pagefile.

SeBackupPrivilege

Allows a process to perform backup and restore operations.

SeRestorePrivilege

Allows a process to restore backed-up objects.

SeShutdownPrivilege

Allows a process to shut down the system.

SeDebugPrivilege

Allows a process to debug other processes.

SeSystemEnvironmentPrivilege

Allows a process to modify system environment variables.

SeChangeNotifyPrivilege

Allows a process to receive notifications when an object is modified.

SeRemoteShutdownPrivilege

Allows a process to shut down remote systems.

SeUndockPrivilege

Allows a process to undock a laptop computer.

SeManageVolumePrivilege

Allows a process to manage volume and disk configurations.

SeImpersonatePrivilege

Allows a process to impersonate other users or groups.

YARA Rule for BlackCat Threat Hunting


rule win_blackcat_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2023-03-28"
        version = "1"
        description = "Detects win.blackcat."
        info = "autogenerated rule brought to you by yara-signator"
        tool = "yara-signator v0.6.0"
        signator_config = "callsandjumps;datarefs;binvalue"
        malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.blackcat"
        malpedia_rule_date = "20230328"
        malpedia_hash = "9d2d75cef573c1c2d861f5197df8f563b05a305d"
        malpedia_version = "20230407"
        malpedia_license = "CC BY-SA 4.0"
        malpedia_sharing = "TLP:WHITE"

    /* DISCLAIMER
     * The strings used in this rule have been automatically selected from the
     * disassembly of memory dumps and unpacked files, using YARA-Signator.
     * The code and documentation is published here:
     * https://github.com/fxb-cocacoding/yara-signator
     * As Malpedia is used as data source, please note that for a given
     * number of families, only single samples are documented.
     * This likely impacts the degree of generalization these rules will offer.
     * Take the described generation method also into consideration when you
     * apply the rules in your use cases and assign them confidence levels.
     */


    strings:
        $sequence_0 = { c3 81f90a010000 7e6a 81f9e2030000 0f8fcc000000 81f90b010000 }
            // n = 6, score = 600
            //   c3                   | ret                 
            //   81f90a010000         | cmp                 ecx, 0x10a
            //   7e6a                 | jle                 0x6c
            //   81f9e2030000         | cmp                 ecx, 0x3e2
            //   0f8fcc000000         | jg                  0xd2
            //   81f90b010000         | cmp                 ecx, 0x10b

        $sequence_1 = { 85f6 0f8482000000 bb03000000 8d0437 }
            // n = 4, score = 600
            //   85f6                 | test                esi, esi
            //   0f8482000000         | je                  0x88
            //   bb03000000           | mov                 ebx, 3
            //   8d0437               | lea                 eax, [edi + esi]

        $sequence_2 = { 885405cc 48 eb19 89ca 83fa63 7fbe }
            // n = 6, score = 600
            //   885405cc             | mov                 byte ptr [ebp + eax - 0x34], dl
            //   48                   | dec                 eax
            //   eb19                 | jmp                 0x1b
            //   89ca                 | mov                 edx, ecx
            //   83fa63               | cmp                 edx, 0x63
            //   7fbe                 | jg                  0xffffffc0

        $sequence_3 = { f20f104808 8d45d4 894dec c645f004 8d4dec }
            // n = 5, score = 600
            //   f20f104808           | movsd               xmm1, qword ptr [eax + 8]
            //   8d45d4               | lea                 eax, [ebp - 0x2c]
            //   894dec               | mov                 dword ptr [ebp - 0x14], ecx
            //   c645f004             | mov                 byte ptr [ebp - 0x10], 4
            //   8d4dec               | lea                 ecx, [ebp - 0x14]

        $sequence_4 = { 3d32210000 747b 3d33210000 0f8571050000 8b07 }
            // n = 5, score = 600
            //   3d32210000           | cmp                 eax, 0x2132
            //   747b                 | je                  0x7d
            //   3d33210000           | cmp                 eax, 0x2133
            //   0f8571050000         | jne                 0x577
            //   8b07                 | mov                 eax, dword ptr [edi]

        $sequence_5 = { b005 5e 5d c3 81f90a010000 7e6a 81f9e2030000 }
            // n = 7, score = 600
            //   b005                 | mov                 al, 5
            //   5e                   | pop                 esi
            //   5d                   | pop                 ebp
            //   c3                   | ret                 
            //   81f90a010000         | cmp                 ecx, 0x10a
            //   7e6a                 | jle                 0x6c
            //   81f9e2030000         | cmp                 ecx, 0x3e2

        $sequence_6 = { 747b 3d33210000 0f8571050000 8b07 83f00a }
            // n = 5, score = 600
            //   747b                 | je                  0x7d
            //   3d33210000           | cmp                 eax, 0x2133
            //   0f8571050000         | jne                 0x577
            //   8b07                 | mov                 eax, dword ptr [edi]
            //   83f00a               | xor                 eax, 0xa

        $sequence_7 = { b806000000 c7460400000000 894608 c70601000000 83c430 }
            // n = 5, score = 600
            //   b806000000           | mov                 eax, 6
            //   c7460400000000       | mov                 dword ptr [esi + 4], 0
            //   894608               | mov                 dword ptr [esi + 8], eax
            //   c70601000000         | mov                 dword ptr [esi], 1
            //   83c430               | add                 esp, 0x30

        $sequence_8 = { 89d0 ba3e000000 897e0c f7e2 }
            // n = 4, score = 600
            //   89d0                 | mov                 eax, edx
            //   ba3e000000           | mov                 edx, 0x3e
            //   897e0c               | mov                 dword ptr [esi + 0xc], edi
            //   f7e2                 | mul                 edx

        $sequence_9 = { c6410b00 66c741090000 8b45ec 894110 c7411400000000 b801000000 8901 }
            // n = 7, score = 600
            //   c6410b00             | mov                 byte ptr [ecx + 0xb], 0
            //   66c741090000         | mov                 word ptr [ecx + 9], 0
            //   8b45ec               | mov                 eax, dword ptr [ebp - 0x14]
            //   894110               | mov                 dword ptr [ecx + 0x10], eax
            //   c7411400000000       | mov                 dword ptr [ecx + 0x14], 0
            //   b801000000           | mov                 eax, 1
            //   8901                 | mov                 dword ptr [ecx], eax

    condition:
        7 of them and filesize < 29981696
}

Author

ميهارديب سينغ ساوهني

شغوف للغاية بالأمن السيبراني وتطبيقه الحقيقي في حماية أصول المعلومات. أحب التعرف على طرق جديدة لاستغلال الأجهزة

Predict Cyber threats against your organization

Related Posts
Blog Image
October 25, 2024

سحب البساط من Brics-bait - كيف يستخدم المحتالون المصداقية الدولية لخداع المستثمرين

وقد أنشأ فريق TRIAD التابع لشركة CloudSek هذا التقرير استنادًا إلى تحليل الاتجاه المتزايد لتزوير العملات المشفرة، حيث تنتحل التوكنات شخصية المنظمات الحكومية لتوفير بعض الشرعية لعمليات الاحتيال التي تقوم بها «لسحب البساط». تمت تغطية مثال على عملية الاحتيال هذه في هذا التقرير حيث قامت الجهات الفاعلة في مجال التهديد بإنشاء رمز مزيف يسمى «BRICS». يهدف هذا الرمز إلى استغلال التركيز على قمة البريك التي عقدت في قازان، روسيا، والاهتمام المتزايد بالاستثمارات والتوسع في منظمة بريركس الحكومية التي تضم دولًا مختلفة (البرازيل وروسيا والهند والصين وجنوب إفريقيا ومصر وإثيوبيا وإيران والإمارات العربية المتحدة)

تؤدي عمليات التهرب من التحقق من KYC إلى استغلال الكاميرات الافتراضية ومحاكيات التطبيقات

كشف فريق استخبارات التهديدات في CloudSek مؤخرًا عن برنامج تعليمي شامل حول تجاوز التحقق من الصور الذاتية في منتدى الجرائم الإلكترونية الناطق باللغة الروسية.

مكافحة خروقات البيانات الناتجة عن التطبيقات التي تمت تهيئتها بشكل خاطئ

مكافحة خروقات البيانات الناتجة عن التطبيقات التي تمت تهيئتها بشكل خاطئ

انضم إلى أكثر من 10,000 مشترك

تابع آخر الأخبار حول سلالات البرامج الضارة، وأساليب التصيد الاحتيالي،
مؤشرات التسوية وتسريب البيانات.

Take action now

Secure your organisation with our Award winning Products

CloudSEK Platform is a no-code platform that powers our products with predictive threat analytic capabilities.

ذكاء البرامج الضارة
Table of Content

في السنوات الأخيرة، أصبحت هجمات برامج الفدية شائعة بشكل متزايد، مع اكتشاف سلالات جديدة طوال الوقت. إحدى هذه السلالات هي BlackCat ransomware، التي تسبب فسادًا للمنظمات في جميع أنحاء العالم. ALPHV، المعروفة أيضًا باسم BlackCat، هي عائلة برامج الفدية التي شوهدت لأول مرة في أواخر عام 2021 وتستهدف العديد من الشركات عبر الصناعات. يُنظر إلى مشغلي برامج الفدية وهم يستخدمون تقنيات الابتزاز المزدوج، والتي لا تتضمن تشفير النظام فحسب، بل أيضًا سرقة الملفات الحساسة من ضحاياهم. وبحسب ما ورد، يتم استخدام أداة أخرى مع برنامج الفدية لسرقة البيانات.

تتم كتابة BlackCat ransomware بلغة Rust وتأتي في شكل أداة سطر أوامر يمكن تشغيلها بحجج مختلفة. إنه قادر على قتل العديد من العمليات والخدمات. تتمثل إحدى ميزاته الرئيسية في قدرته على تصعيد الامتيازات وتجاوز التحكم في حساب المستخدم (UAC). تستخدم هذه البرامج الضارة المتطورة إما تشفير AES أو ChaCha20 (اعتمادًا على تكوينها) لتشفير جميع الملفات الموجودة على نظام الضحية. بالإضافة إلى ذلك، تتمتع بقدرات التهرب من وضع الحماية، مما يجعل من الصعب تحليل العينة. تتطلب برامج الفدية تشغيل الحجج، مما يجعل من المستحيل تحليلها بواسطة وضع الحماية. في هذه المدونة، سنلقي نظرة فاحصة على خصائص وتقنيات برنامج الفدية هذا الذي كتبه Rust.

نظرة عامة على الحملة التاريخية

لقد لوحظ أن المهاجمين الذين يستخدمون برنامج الفدية BlackCat يستخدمون أيضًا أداة سرقة .NET تسمى ExMatter، والتي طورتها نفس مجموعة APT، من أجل تنزيل الملفات من جهاز الضحية. وهذا ما يجعل هذا الهجوم أكثر قوة لأن هذا يمنح المهاجمين النفوذ لاستخدام تقنية تعرف باسم الابتزاز المزدوج، والتي تنطوي على ضغط إضافي يتمثل في تسريب ملفات مسروقة ربما تحتوي على بيانات حساسة. (راجع الملحق لقاعدة YARA التي تساعد في صيد BlackCat.)

التحليل الفني

يأتي ثنائي BlackCat في شكل أداة سطر أوامر يمكن تشغيلها باستخدام وسيطات مختلفة. على سبيل المثال:

  • باستخدام — مطول، سيتم عرض السجلات التي تم إنشاؤها بواسطة BlackCat على وحدة التحكم.
  • ال —واجهة المستخدم يعرض الخيار عرضًا يشبه واجهة المستخدم الرسومية في النافذة الطرفية، يُظهر التقدم والمعلومات المتعلقة بالملفات التي يتم تشفيرها على النظام.
لقطة شاشة تشبه واجهة المستخدم الرسومية المعروضة عند استخدام خيار واجهة المستخدم

من بين هذه الحجج، هناك واحدة منها فقط ضرورية لتنفيذ الثنائية، وهي رمز الوصول حجة.

قائمة الحجج التي يمكن استخدامها أثناء تشغيل الملف الثنائي

عمليات ما قبل التشفير

كما ذكرنا سابقًا، لن يتم تشغيل الملف الثنائي إلا إذا تم تزويده برمز وصول طويل مكون من 32 حرفًا. وهي تستخدم احصل على سطر الأوامر الجديد API للتحقق مما إذا كان رمز الوصول متوفرًا بشكل صحيح.

استخدام GetCommandLineW للتحقق مما إذا كان رمز الوصول متوفرًا بشكل صحيح

اعتمادًا على إصدار Ransomware، يمكن أن يكون هذا الرمز إما عشوائيًا (كما هو الحال في هذه العينة)، أو كما هو موضح في أحدث الإصدارات، فإن رمز الوصول هذا عبارة عن مفتاح مكون من 32 حرفًا يُستخدم لتشفير تكوين Ransomware المضمن في البرنامج الثنائي. تقوم أحدث الإصدارات بذلك من أجل منع الباحثين الأمنيين من استخراج التكوين. يعمل هذا أيضًا كإجراء لمكافحة وضع الحماية، نظرًا لأن أدوات التحليل الآلي لن تكون قادرة على تنفيذ العينة ما لم يتم تكوينها لتوفير رمز الوصول.

مذكرة الفدية

بمجرد توفير رمز الوصول إلى البرنامج الثنائي، يستمر برنامج الفدية عن طريق فك تشفير مذكرة الفدية المضمنة في البرنامج الثنائي وتخزينها لاستخدامها لاحقًا. يقوم أيضًا بتعيين مذكرة الفدية كخلفية لسطح المكتب.

مذكرة فدية تم فك تشفيرها مخزنة لاستخدامها لاحقًا

بعد ذلك، تعد Ransomware نفسها لتصعيد الامتيازات عن طريق إنشاء سلسلة رسائل جديدة باستخدام إنشاء موضوع API.

تصعيد الامتيازات وتجاوز UAC

يقوم برنامج الفدية BlackCat بإجراء تجاوز UAC عن طريق إساءة استخدام Microsoft COM (نموذج كائن المكون). يتضمن هذا الهجوم استخدام كائنات COM لثنائي يُعرف باسم Microsoft CMSTP (مثبت ملف تعريف مدير الاتصال)، وخاصة CMSTPLUA واجهة {3E5FC7F9-9A51-4367-9063-A120244 FBEC7}.

يستخدم برنامج الفدية كائن كوجيت لتسجيل نفسها في CLSID {3E5FC7F9-9A51-4367-9063-A120244 FBEC7}، والتي يتم استخدامها بشكل شرعي لتنفيذ التطبيقات ذات الامتيازات المرتفعة. تسمح هذه التقنية بتجاوز موجه UAC وتنفيذ إجراءاتها الضارة دون أن يتم اكتشافها أو حظرها من خلال الإجراءات الأمنية للنظام.

استخدام CogetObject لتسجيل نفسه مع {3E5FC7F9-9A51-4367-9063-A120244FBEC7} من أجل الحصول على امتيازات عالية

بمجرد أن يرفع برنامج الفدية الامتيازات، فإنه يتم تنفيذه داخل الموضوع الذي تم إنشاؤه حديثًا وينقل حججه إلى الأمام من مثيله السابق.

تقوم BlackCat بتنفيذ نفسها داخل الخيط الجديد بامتيازات مرتفعة باستخدام نفس الحجج كما كان من قبل.

بعد ذلك، تستخدم BlackCat ابحث عن قيمة الامتياز API من أجل البحث عن معرفات محلية لقائمة الامتيازات. تعمل كل من هذه الامتيازات على تمكين العملية الجارية من تشغيل العمليات على مستوى النظام. (راجع الملحق للحصول على قائمة كاملة ووصف لكل امتياز). ثم يستخدم الثنائي ضبط حواف الرمز المميز لكي تمنح نفسها تلك الامتيازات.

قائمة الامتيازات التي تسعى إليها BlackCat

 

استخدام LookupPrivilegeValueView وضبط الامتيازات الرمزية من أجل منح نفسها امتيازات

أخيرًا، تنهي BlackCat تحضيرها للتشفير من خلال القيام بما يلي:

  • حذف جميع النسخ الاحتياطية لوحدة التخزين باستخدام vssadmin و wMIC الأوامر، مما يجعل استعادة البيانات أكثر صعوبة.
  • تعطيل الإصلاح التلقائي باستخدام bcdedit، من أجل منع استعادة الملفات المتعلقة بالنظام.
  • مسح سجلات الأحداث.
  • إنهاء جميع الخدمات والعمليات النشطة.

ملاحظة: يحتوي BlackCat على تكوينه المضمن داخل نفسه ويقوم بفك تشفيره في وقت التشغيل. يحتوي التكوين على معلومات حول المفتاح العام الذي سيتم استخدامه لتشفير المفتاح، وأي خدمات محددة لإنهائها، وقائمة الاستثناءات، وما إلى ذلك.

لقطة شاشة تعرض تكوين BlackCat

تشفير البيانات

تستخدم عينة BlackCat المستخدمة في هذا التحليل AES للتشفير. الخطوات المتبعة في التشفير هي كما يلي:

  • يجتاز BlackCat النظام أولاً باستخدام حلقة من ابحث عن الملف الأول و ابحث عن الملف التالي من أجل العثور على جميع الملفات الموجودة على النظام.
  • تتم كتابة مذكرة الفدية إلى كل دليل باستخدام اكتب ملف.
لقطة شاشة لـ مذكرة الفدية التي تركتها BlackCat

  • استخدام BcryptgenRandom، يقوم برنامج الفدية بحساب مفتاح AES عشوائي.
  • يتم إنشاء كتلة JSON لكل ملف، والتي تحتوي على مفتاح AES المستخدم لتشفير الملف، ومعلومات حول الملف.
كتلة JSON تحتوي على معلومات حول المفتاح والملف

  • يتم تشفير مفتاح AES أيضًا باستخدام المفتاح العام RSA المخزن في تكوين BlackCat.
  • يتم تشفير الملف باستخدام AES، وتتم كتابة المحتويات إلى الملف باستخدام اقرأ الملف و اكتب ملف. تم ذكر الامتداد الجديد للملف في تكوين BlackCat.
استخدام AES لتشفير الملف

عمليات ما بعد التشفير

بمجرد أن ينتهي BlackCat من تشفير جميع الملفات الموجودة على النظام، يتم تغيير خلفية سطح المكتب، مما يوجه المستخدم إلى الرجوع إلى مذكرة الفدية.

خلفية سطح المكتب المتغيرة

ال عنوان URL الخاص بـ.onion المحدد في مذكرة الفدية فريد لكل ضحية، حيث تستخدم كل عينة رمز وصول مختلفًا، يتم توفيره لعنوان URL كمعامل. يحتوي عنوان URL الخاص بالبصل على معلومات حول الملفات المشفرة/المسروقة وإرشادات حول كيفية دفع الفدية.

مؤشرات التسوية (IOCs)

شا256

847FB7609 F53ED334D5FFB07256C21C5E6E6C5E 6F68B1CC 14004F5502D714D2A456

3a08e3bfec2db5dbce359ac9662e65361 a8625a0122e68b56cd5ef3aedf8ce1

9802a1e8fb425ac3a7c0a5a17cb7f3f5f5f5f5f5f0962 ديسيبل 29e3982f0beec95e26

f7a038f9b91c40e9d67f4168997d7d7d7d7d7d8c12c2d27c9e36c413d021796a24e083

الملحق

قائمة بامتيازات ومسؤوليات الأمان التي تستهدفها BlackCat

Security Privilege

Responsibility

SeIncreaseQuotaPrivilege

Allows a process to increase the memory quota assigned to it.

SeSecurityPrivilege

Allows a process to read or modify the security settings of objects in the system.

SeTakeOwnershipPrivilege

Allows a process to take ownership of any object in the system.

SeLoadDriverPrivilege

Allows a process to load device drivers.

SeSystemProfilePrivilege

Allows a process to gather profiling information for the entire system.

SeSystemtimePrivilege

Allows a process to change the system time.

SeProfileSingleProcessPrivilege

Allows a process to profile a single process.

SeIncreaseBasePriorityPrivilege

Allows a process to increase the base priority of a thread.

SeCreatePagefilePrivilege

Allows a process to create a pagefile.

SeBackupPrivilege

Allows a process to perform backup and restore operations.

SeRestorePrivilege

Allows a process to restore backed-up objects.

SeShutdownPrivilege

Allows a process to shut down the system.

SeDebugPrivilege

Allows a process to debug other processes.

SeSystemEnvironmentPrivilege

Allows a process to modify system environment variables.

SeChangeNotifyPrivilege

Allows a process to receive notifications when an object is modified.

SeRemoteShutdownPrivilege

Allows a process to shut down remote systems.

SeUndockPrivilege

Allows a process to undock a laptop computer.

SeManageVolumePrivilege

Allows a process to manage volume and disk configurations.

SeImpersonatePrivilege

Allows a process to impersonate other users or groups.

YARA Rule for BlackCat Threat Hunting


rule win_blackcat_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2023-03-28"
        version = "1"
        description = "Detects win.blackcat."
        info = "autogenerated rule brought to you by yara-signator"
        tool = "yara-signator v0.6.0"
        signator_config = "callsandjumps;datarefs;binvalue"
        malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.blackcat"
        malpedia_rule_date = "20230328"
        malpedia_hash = "9d2d75cef573c1c2d861f5197df8f563b05a305d"
        malpedia_version = "20230407"
        malpedia_license = "CC BY-SA 4.0"
        malpedia_sharing = "TLP:WHITE"

    /* DISCLAIMER
     * The strings used in this rule have been automatically selected from the
     * disassembly of memory dumps and unpacked files, using YARA-Signator.
     * The code and documentation is published here:
     * https://github.com/fxb-cocacoding/yara-signator
     * As Malpedia is used as data source, please note that for a given
     * number of families, only single samples are documented.
     * This likely impacts the degree of generalization these rules will offer.
     * Take the described generation method also into consideration when you
     * apply the rules in your use cases and assign them confidence levels.
     */


    strings:
        $sequence_0 = { c3 81f90a010000 7e6a 81f9e2030000 0f8fcc000000 81f90b010000 }
            // n = 6, score = 600
            //   c3                   | ret                 
            //   81f90a010000         | cmp                 ecx, 0x10a
            //   7e6a                 | jle                 0x6c
            //   81f9e2030000         | cmp                 ecx, 0x3e2
            //   0f8fcc000000         | jg                  0xd2
            //   81f90b010000         | cmp                 ecx, 0x10b

        $sequence_1 = { 85f6 0f8482000000 bb03000000 8d0437 }
            // n = 4, score = 600
            //   85f6                 | test                esi, esi
            //   0f8482000000         | je                  0x88
            //   bb03000000           | mov                 ebx, 3
            //   8d0437               | lea                 eax, [edi + esi]

        $sequence_2 = { 885405cc 48 eb19 89ca 83fa63 7fbe }
            // n = 6, score = 600
            //   885405cc             | mov                 byte ptr [ebp + eax - 0x34], dl
            //   48                   | dec                 eax
            //   eb19                 | jmp                 0x1b
            //   89ca                 | mov                 edx, ecx
            //   83fa63               | cmp                 edx, 0x63
            //   7fbe                 | jg                  0xffffffc0

        $sequence_3 = { f20f104808 8d45d4 894dec c645f004 8d4dec }
            // n = 5, score = 600
            //   f20f104808           | movsd               xmm1, qword ptr [eax + 8]
            //   8d45d4               | lea                 eax, [ebp - 0x2c]
            //   894dec               | mov                 dword ptr [ebp - 0x14], ecx
            //   c645f004             | mov                 byte ptr [ebp - 0x10], 4
            //   8d4dec               | lea                 ecx, [ebp - 0x14]

        $sequence_4 = { 3d32210000 747b 3d33210000 0f8571050000 8b07 }
            // n = 5, score = 600
            //   3d32210000           | cmp                 eax, 0x2132
            //   747b                 | je                  0x7d
            //   3d33210000           | cmp                 eax, 0x2133
            //   0f8571050000         | jne                 0x577
            //   8b07                 | mov                 eax, dword ptr [edi]

        $sequence_5 = { b005 5e 5d c3 81f90a010000 7e6a 81f9e2030000 }
            // n = 7, score = 600
            //   b005                 | mov                 al, 5
            //   5e                   | pop                 esi
            //   5d                   | pop                 ebp
            //   c3                   | ret                 
            //   81f90a010000         | cmp                 ecx, 0x10a
            //   7e6a                 | jle                 0x6c
            //   81f9e2030000         | cmp                 ecx, 0x3e2

        $sequence_6 = { 747b 3d33210000 0f8571050000 8b07 83f00a }
            // n = 5, score = 600
            //   747b                 | je                  0x7d
            //   3d33210000           | cmp                 eax, 0x2133
            //   0f8571050000         | jne                 0x577
            //   8b07                 | mov                 eax, dword ptr [edi]
            //   83f00a               | xor                 eax, 0xa

        $sequence_7 = { b806000000 c7460400000000 894608 c70601000000 83c430 }
            // n = 5, score = 600
            //   b806000000           | mov                 eax, 6
            //   c7460400000000       | mov                 dword ptr [esi + 4], 0
            //   894608               | mov                 dword ptr [esi + 8], eax
            //   c70601000000         | mov                 dword ptr [esi], 1
            //   83c430               | add                 esp, 0x30

        $sequence_8 = { 89d0 ba3e000000 897e0c f7e2 }
            // n = 4, score = 600
            //   89d0                 | mov                 eax, edx
            //   ba3e000000           | mov                 edx, 0x3e
            //   897e0c               | mov                 dword ptr [esi + 0xc], edi
            //   f7e2                 | mul                 edx

        $sequence_9 = { c6410b00 66c741090000 8b45ec 894110 c7411400000000 b801000000 8901 }
            // n = 7, score = 600
            //   c6410b00             | mov                 byte ptr [ecx + 0xb], 0
            //   66c741090000         | mov                 word ptr [ecx + 9], 0
            //   8b45ec               | mov                 eax, dword ptr [ebp - 0x14]
            //   894110               | mov                 dword ptr [ecx + 0x10], eax
            //   c7411400000000       | mov                 dword ptr [ecx + 0x14], 0
            //   b801000000           | mov                 eax, 1
            //   8901                 | mov                 dword ptr [ecx], eax

    condition:
        7 of them and filesize < 29981696
}

ميهارديب سينغ ساوهني
شغوف للغاية بالأمن السيبراني وتطبيقه الحقيقي في حماية أصول المعلومات. أحب التعرف على طرق جديدة لاستغلال الأجهزة

شغوف للغاية بالأمن السيبراني وتطبيقه الحقيقي في حماية أصول المعلومات. أحب التعرف على طرق جديدة لاستغلال الأجهزة

Related Blogs