إلى الخلف
ذكاء البرامج الضارة
جدول المحتوى

البثرة عبارة عن برنامج ضار موقّع برمز يسقط ملف DLL ضارًا على نظام الضحية، ويتم تنفيذه بعد ذلك بواسطة أداة التحميل عبر rundll32.exe، مما يؤدي إلى نشر منارة RAT/C2، مما يسمح بالوصول غير المصرح به إلى النظام المستهدف عبر الإنترنت. كانت حملات Blister Malware نشطة منذ 15 سبتمبر 2021.

الجزء الأول من تحليل CloudSek يوفر فهمًا تفصيليًا لكيفية عمل أداة التحميل. سيتعمق الجزء الثاني في تفاصيل المرحلة الثانية من هذه الحملة، وهي حمولة.dll، وعملها الداخلي.

تشريح ملفات DLL الضارة - البرامج الضارة البثرية

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

  • تستدعي قطارة الفقاعة الوظيفة إطلاق كولور CPL، وهي إحدى الوظائف التي تم تصديرها بواسطة .dll، عبر rundll32.exe.
Functions exported by the malicious DLL of Blister Malware
الوظائف التي تم تصديرها بواسطة DLL الضار

التدريج

  • الوظيفة المصدرة قم بتشغيل ColorCPL يسترجع كود التدريج من قسم الموارد في ملف PE. كود التدريج هذا محمي بنظام ترميز XOR بسيط.
Code responsible for decoding the staging code
الكود المسؤول عن فك شفرة التدريج
Encoded staging code in the resource section of the PE file
كود التدريج المشفر في قسم الموارد في ملف PE
  • بعد فك التشفير التكراري لرمز التدريج، يتم نقل عنصر التحكم إلى التعليمات البرمجية التي تم فك تشفيرها في الذاكرة.
  • يتم نقل تدفق التحكم إلى رمز التدريج عن طريق استدعاء العنوان في سجل EAX.
Calling the address in the EAX register
الاتصال بالعنوان في سجل EAX

التحليل المضاد

  • كود التدريج غامض بشكل كبير، وله منطق مشابه لكود السباغيتي، لإعاقة التحليل. يتم حجب جميع المكالمات إلى Windows APIs وحلها ديناميكيًا.
  • أول شيء تفعله الشفرة المرحلية هو جعل البرامج الضارة تنام عن طريق استدعاء Sleep Windows API. هذه إستراتيجية نموذجية تستخدمها معظم الأكواد الضارة لتجاوز صناديق الحماية الأمنية والاختبار الديناميكي لمنتجات الأمان.
Stackframe before the malware calls the Sleep Windows API
Stackframe قبل أن تستدعي البرامج الضارة واجهة برمجة تطبيقات Sleep Windows
  • يتم تمرير القيمة السداسية «927C0" إلى نواة 32.759 F9010 أي وظيفة النوم. تُترجم هذه القيمة (927C0) إلى «600000» بالأرقام العشرية. نظرًا لأن Sleep API يأخذ الحجج بالمللي ثانية (ms)، يتم تحويل 600000 مللي ثانية إلى 10 دقائق.
  • عندما تستأنف البرامج الضارة من وضع السكون، فإنها تجلب الحمولة النهائية من قسم الموارد في ملف PE.
Snippet of the protected payload stored in the memory
مقتطف من الحمولة المحمية المخزنة في الذاكرة

  • في الذاكرة، يتم فك تشفير الحمولة المحمية. ويؤكد وجود رأس DOS، في وحدات البايت الخاصة بالحمولة، أن الحمولة تمت بصيغة PE وليست رمز الغلاف.
Decrypted payload stored in the memory
حمولة تم فك تشفيرها مخزنة في الذاكرة
  • ملاحظة مثيرة للاهتمام من هذا التحليل، هي إضافة MZ byte بعد عملية فك التشفير. في الصورة أعلاه، البايت الأولي ليس MZ، بل تتم إضافة بايت MZ لاحقًا في بداية الحمولة بشكل منفصل. هذا السلوك مخصص بشكل أساسي للأمان التشغيلي.
Addition of the MZ byte after the decryption process
إضافة بايت MZ بعد عملية فك التشفير

عملية التجويف

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

  • بعد فك تشفير الحمولة النهائية، تستعد البرامج الضارة للتنفيذ.
  • يتم ذلك عن طريق إنشاء عملية جديدة لنشر الكود المستخرج ثم إجراء عملية تفريغ لتنفيذ الحمولة في العملية البعيدة. يسترد رمز التدريج Rundll32.exe الموقع من النظام المخترق.
Retrieval of the location of rundll32.exe
استرجاع موقع rundll32.exe
  • عملية جديدة لـ Rundll32.exe يتم إنشاؤه عبر إنشاء عملية داخلية API في الحالة المعلقة.
Creation of the new rendll32.exe
إنشاء ملف rendll32.exe الجديد
  • تستخدم البرامج الضارة واجهات برمجة تطبيقات Win32 التالية لتفريغ العمليات:
    • عرض خريطة Zwun للقسم
    • ZWRead (الذاكرة الافتراضية)
    • ذاكرة ZW Writeالافتراضية
    • موضوع سياق ZWGET
    • موضوع سياق ZWSET
    • موضوع السيرة الذاتية لـ NT
  • ذاكرة ZW Writeالافتراضية يستخدم لكتابة تعليمات برمجية ضارة في العملية المستهدفة.
  • لجعل مؤشر ترابط العملية الجديدة يشير إلى التعليمات البرمجية المكتوبة حديثًا، يقوم المهاجم بتغيير نقطة إدخال الخيط الحالي عبر موضوع سياق ZWGET و موضوع سياق ZWSET.
  • يتم استخدام هذه الوظائف لتنفيذ أنشطة التدبير المنزلي للمعالج على بنية البيانات التي تخزن السياق الحالي لمؤشر الترابط الجاري تشغيله. يستفيد تفريغ العملية من هذه الميزات لجعل سلسلة العمليات تقوم بتشغيل كود المهاجم.

خطوة بخطوة عمل DLL

  • يخصص رمز التدريج ذاكرة جديدة عبر ذاكرة افتراضية Zwalloce لنقل الحمولة النهائية التي تم فك تشفيرها مسبقًا.
تخصيص ذاكرة جديدة عبر ZwallocateVirtualMemory
  • ثم يتم نسخ الحمولة إلى مخزن مؤقت تم إنشاؤه حديثًا.. استنادًا إلى اختبار CloudSek على الحمولة المستخرجة، احتوت إحدى العينات التي تم تحليلها على سارق الراكون كحمولة المرحلة النهائية. ومع ذلك، تم استخدام عينات أخرى منارة كوبالت سترايك و بت رات لتهديد الهدف والحصول على وصول غير مصرح به.
نقل الحمولة إلى مخزن مؤقت تم إنشاؤه حديثًا
  • يقوم رمز التدريج بعد ذلك بحقن الكود في العملية البعيدة التي تم إنشاؤها حديثًا، أي Rundll32.exe.
Code injections into the newly created rendll32.exe
شركةإزالة الحقن في rendll32.exe الذي تم إنشاؤه حديثًا
  • في وقت لاحق، يتم تغيير حماية الذاكرة إلى تلك المناسبة لتنفيذ التعليمات البرمجية المقيمة عبر الذاكرة الافتراضية للحماية من NT.
Alteration of the memory protections 
تغيير حماية الذاكرة
  • يتم استرداد سياق الموضوع عبر واجهة برمجة تطبيقات ZwgetContextThread لتغيير نقطة دخول الخيط لتنفيذ الحمولة المحقونة في العملية البعيدة.
إضافة بايت MZ بعد عملية فك التشفير
  • ال موضوع سياق ZWSET يتم استخدامه لتعديل نقطة إدخال مؤشر الترابط إلى تلك الخاصة بملف PE المنسوخ حديثًا.
Modification of the thread entry point to the copied PE file
متعديل نقطة إدخال الخيط إلى ملف PE المنسوخ
  • في المرحلة الأخيرة من عملية التجويف، يتم تعليق الخيط المعلق لـ Rundll32.exe يتم استئنافه عبر موضوع السيرة الذاتية لـ NT. ثم Rundll32.exe تبدأ العملية في تنفيذ التعليمات البرمجية الضارة المجوفة فيها بواسطة البرامج الضارة.
استئناف الخيط المعلق
  • في عملية التنظيف، يستخدم كود التدريج ذاكرة افتراضية خالية من NT لتحرير الذاكرة المخصصة، التي تحتوي على مجموعة الحمولة، واحدة تلو الأخرى.
عملية التنظيف: تحرير الذاكرة المخصصة
  • يتم إنهاء العملية الحالية المستخدمة للتجهيز عبر عملية إنهاء NT.
إنهاء العملية الحالية

البرامج الضارة لـ Blister - الحفاظ على الثبات

  • يحقق برنامج Blister الضار الثبات على النظام المستهدف من خلال إنشاء ملف «lnk» باسم ألعاب الترويج في ال C:\Users\<username>\ AppData\ التجوال\ ميكروسوفت\ ويندوز\ قائمة ابدأ\ بدء التشغيل دليل.
  • عندما يقوم المستخدم بتسجيل الدخول، explorer.exe ينفذ أي ملف في بدء التشغيل مجلد. ونتيجة لذلك، عندما يقوم المستخدم بتسجيل الدخول إلى الحساب، بعد عملية التمهيد، يتم تشغيل البرامج الضارة كعملية فرعية لـ explorer.exe.
Ink file produced in the Startup directory
تم إنتاج ملف الحبر في دليل بدء التشغيل
  • تم تعيين الهدف لملف lnk كـ C:\ProgramData\proamingsGames\proamingsGames.dll، قم بتشغيل COLOR CPL . هنا، تقوم البرامج الضارة بنسخ Rundll32.exe كما proamingsGames.exe وملف dll الضار (في البداية إلى الدليل C:\ProgramData\proamingsGames) يتم إسقاطه في درجة الحرارة مجلد.
محتويات الملف proamingsGames.dll
  • في كل مرة يتم فيها تشغيل النظام ويقوم المستخدم بتسجيل الدخول، يقوم ملف lnk بتشغيل ملف ضار .dll من خلال مثيل تمت إعادة تسميته Rundll32.exe.

الخاتمة

نظرًا لأن الجهات الفاعلة في مجال التهديدات تستخدم بنشاط شهادات توقيع التعليمات البرمجية الصالحة في أنظمة Windows، لتجنب اكتشافها بواسطة برامج مكافحة الفيروسات، فمن الضروري تحديث منتجات أمان الشبكة ونقطة النهاية بأحدث مؤشرات الاختراق (IOCs) الخاصة بالبرامج الضارة. تم تعداد أحدث برامج IOC الخاصة ببرامج Blister الضارة في الجزء الأول من التحليل الفني.

لم يتم العثور على أية عناصر.

مدونات ذات صلة