🚀 أصبحت CloudSek أول شركة للأمن السيبراني من أصل هندي تتلقى استثمارات منها ولاية أمريكية صندوق
اقرأ المزيد

برامج تحميل البرامج الضارة هي في الأساس أحصنة طروادة للوصول عن بُعد (RATs) التي تنشئ الاتصال بين المهاجم والنظام المخترق. تمثل اللوادر عادةً المرحلة الأولى من التسوية. هدفهم الأساسي هو تنزيل وتنفيذ حمولات إضافية، من الخادم الذي يتحكم فيه المهاجم، على النظام المخترق دون اكتشاف.
اكتشف الباحثون في ProofPoint أداة تحميل برامج ضارة جديدة تسمى Bumblebee. تتم تسمية أداة تحميل البرامج الضارة على اسم سلسلة وكيل المستخدم الفريدة المستخدمة للاتصال بـ C2. وقد لوحظ أن الخصوم بدأوا في استخدام Bumblebee لنشر البرامج الضارة مثل منارات CobaltStrike وقذائف Meterpreter. تستخدم مجموعة التهديدات TA578 أيضًا أداة تحميل Bumblebee في حملاتها.
تستكشف هذه المقالة برامج تحميل البرامج الضارة من Bumblebee وتفك تشفيرها:
يدفع الخصوم ملفات ISO من خلال سلاسل البريد الإلكتروني المخترقة (الرد)، والمعروفة باسم رسائل البريد الإلكتروني المخترقة، لنشر أداة تحميل Bumblebee. تحتوي ملفات ISO على نسخة بايت إلى بايت من البيانات ذات المستوى المنخفض المخزنة على القرص. يتم تسليم ملفات ISO الضارة من خلال روابط Google Cloud أو مجلدات zip المحمية بكلمة مرور.


تحتوي ملفات ISO على DLL مخفي بأسماء عشوائية وملف LNK. DLL (مكتبة الارتباط الديناميكي) هي مكتبة تحتوي على رموز وبيانات يمكن استخدامها من قبل أكثر من برنامج في نفس الوقت. LNK هو ملحق اسم ملف في Microsoft Windows لاختصارات الملفات المحلية.
غالبًا ما يحتوي ملف LNK على رابط مباشر إلى ملف قابل للتنفيذ أو بيانات تعريف حول الملف القابل للتنفيذ، دون الحاجة إلى تتبع المسار الكامل للبرنامج. تعد ملفات LNK بديلاً جذابًا لفتح ملف، وبالتالي فهي طريقة فعالة للجهات الفاعلة في مجال التهديد لإنشاء هجمات تستند إلى البرامج النصية. تم تعيين الموقع المستهدف لملفات LNK للتشغيل rundll32.exe، والتي ستستدعي دالة تم تصديرها في DLL المرتبط. إذا لم يتم تمكين خيار «إظهار العناصر المخفية» على نظام الضحية، فقد لا تكون ملفات DLL مرئية للمستخدم.
العينة التي تم تحليلها (f98898 df74fb2b2fd3a2ea2907086397 b36ae496 ef3f4454 bf6b7125 f103b8) هو ملف DLL بوظائف تم تصديرها.

الوظائف المصدرة في نموذج ملف DLL
كل من الوظائف المصدرة، وظيفة داخلية و تعيين المسار، قم بتنفيذ الوظيفة الفرع الفرعي 180004AA0.

وظيفة داخلية/تنفيذ الدالة sub_180004AA0 تعيين/مسار تنفيذ الدالة sub_180004AA0
تقيس إنتروبيا الملف عشوائية البيانات في الملف. يمكن استخدام Entropy لتحديد ما إذا كانت هناك بيانات مخفية أو نصوص مشبوهة في الملف. يتراوح مقياس الانتروبيا من 0 (غير عشوائي) إلى 8 (عشوائي تمامًا). تشير قيم الإنتروبيا العالية إلى وجود بيانات مشفرة مخزنة في الملف، بينما تشير القيم الأقل إلى فك التشفير وتخزين الحمولة في أقسام مختلفة أثناء وقت التشغيل.

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

الوظيفة sub_180003490 يعمل بمثابة أداة فك الحمولة الرئيسية.

وظيفة sub_180003490 يحتوي على وظيفتين مهمتين:
الرقم الفرعي 1800021D0: روتين الوظيفة هذا مسؤول عن تخصيص ذاكرة الكومة.

تحت 1800029 قبل الميلاد: تقوم هذه الوظيفة بكتابة البيانات المضمنة، في مقطع البيانات لعينة DLL، في ذاكرة الكومة المخصصة حديثًا. يتم جلب الحمولة المعبأة من مقطع البيانات وكتابتها في ذاكرة الكومة المخصصة. مقطع الكود الموضح في الصورة أدناه مسؤول عن نقل البيانات.



بعد تفريغ الحمولة المعبأة في الذاكرة المخصصة، يعود عنصر التحكم إلى الفرع الفرعي 180004AA0 والوظيفة تحت 180002ff4 يتم تنفيذه.

الوظيفة الفرعية: 180002ff4
وظيفة تحت 180002ff4 يقوم بالعمليات التالية:
بعد عودة عنصر التحكم إلى الفرع الفرعي 180004AA0 وظيفة sub_180004180 يتم تنفيذه.

الوظيفة الفرعية 180004180

ثلاث وظائف مضمنة في الوظيفة sub_180004180
وظيفة sub_180004180 يحتوي على 3 وظائف:

يشير الربط إلى مجموعة من التقنيات المستخدمة لتعديل سلوك نظام التشغيل أو البرنامج أو مكون البرنامج، من خلال اعتراض مكالمات الوظائف أو الأحداث أو الاتصال بين مكونات البرنامج. يُطلق على الكود الذي يتعامل مع مثل هذه المكالمات الوظيفية المعترضة أو الأحداث أو الاتصالات اسم الخطاف.
مباشرة بعد أن يقوم محمل Bumblebee بتفريغ الحمولة الرئيسية في الذاكرة، فإنه يربط بعض الوظائف المثيرة للاهتمام التي تم تصديرها بواسطة ntdll.dll (ملف يحتوي على وظائف NT kernel، عرضة للهجمات الإلكترونية) من خلال تقنية الربط المضمنة. تلعب الخطافات المضمنة دورًا مهمًا في تنفيذ الحمولة النهائية. تُظهر آلية التشغيل، لنشر الحمولة، إبداع مطور البرامج الضارة. وظيفة تحت 180001000 مسؤولة عن تنفيذ الخطافات المضمنة.

وظيفة تحت 180001000 يحفظ مبدئيًا عناوين 3 وظائف التفاف تستخدم للتثبيت. وظائف الالتفافية مسؤولة عن اختطاف تدفق التحكم في وظائف Windows المرتبطة. بعد تخزين العناوين، تحت 1800025EC يتم تنفيذه لحل عناوين وظائف API (واجهة برمجة التطبيقات) المستهدفة للتثبيت.

وظائف التحويل في الدالة sub_180001000
تحت 1800025EC يقوم بتحميل ntdll.dll في مساحة العنوان الخاصة بعملية التحميل باستخدام الوظيفة تحميل مكتبة. بعد تحميل وظيفة nt.dll احصل على عنوان PROc يستخدم لحل عناوين الوظائف:

قم بتحميل المكتبة ووظائف عنوان getProc
بعد الحصول على عناوين صفحات الذاكرة الخاصة بوظائف الالتفاف للتثبيت، يستخدم اللودر الوظيفة الحماية الافتراضية لتغيير أذونات الذاكرة للصفحات المستهدفة. بعد تغيير الأذونات، يقوم المُحمل بكتابة الروابط المضمنة تحت 180002978. ثم الحماية الافتراضية يتم استدعاؤه مرة أخرى لاستعادة أذونات الصفحة.

وظائف الحماية الافتراضية ووظائف sub_180002978
تم تمرير البيانات إلى الحماية الافتراضية في وقت التشغيل يظهر في الصورة أدناه. المكالمة إلى الحماية الافتراضية يغير ال Ntdll.n افتح الملف إذن الصفحة لـ 0x40 (تنفيذ الصفحة/القراءة/الكتابة).

تم تمرير البيانات/الاتصال بوظيفة VirtualProtect
بعد تغيير أذونات الصفحة Ntdll.n افتح الملف، يقوم المُحمل بتعديل التسلسل الأولي للبايتات في لا افتح الملف API عن طريق تنفيذ الوظيفة تحت 180002978.

وظيفة sub_180002978 لتعديل واجهة برمجة تطبيقات nopenFile
يتضمن الربط عبر الإنترنت الخطوات التالية:

Ntdll.nافتح الملف قبل (الربط) تنفيذ الدالة sub_180002978

اتصل بـ nOpenFile مما يجعل البرامج الضارة تقفز إلى 1800023D4

وظيفة الحماية الافتراضية تستخدم لاستعادة إذن الصفحة الخاص بملف Ntdll.ntopen

بعد التثبيت الناجح، عندما يتم استدعاء الوظائف المستهدفة في مساحة العنوان الخاصة بعملية التحميل، يتم نقل تدفق التحكم إلى عناوين الخطاف ذات الصلة المضمنة:
وظيفة الهدفخطاف مدمج (تحويلات)Ntdll.n افتح الملف1800023 د 4إنشاء قسم ntdll.nt1800-041 ثانيةعرض خريطة Ntdll.nt للقسم180001D4Cالوظيفة النهائية التي ينفذها اللودر هي الفرع الفرعي 1800013A0. تستخدم البرامج الضارة الوظيفة تحميل المكتبة W لتحميل وحدة DLL. ثم تستخدم الوظيفة احصل على عنوان PROc للحصول على عنوان وظيفة محددة تم تصديرها بواسطة المكتبة المحملة.
يلعب هذا خطوة حاسمة في نشر الحمولة الرئيسية على نظام الضحية. على عكس TTPs (التكتيكات والتقنيات والإجراءات) لبرامج تحميل البرامج الضارة الشائعة، هذا هو المكان الذي يصبح فيه محمل Bumblebee مبدعًا.

الوظيفة sub_1800013a0 مع وظائف مكتبة التحميل W وعنوان getProc
الوحدة gdiplus.dll يتم تحميلها في مساحة عنوان ذاكرة العملية. Gdiplus.dll هي وحدة مهمة، تحتوي على مكتبات تدعم إدارة نوافذ GDI، في نظام التشغيل Microsoft Windows.

تنفيذ وقت التشغيل للدالة sub_1800013a0
الوحدة gdiplus.dll يتم تنفيذه في الوظيفة الأخيرة لمحمل البرامج الضارة. هذه هي الحالة الأولى التي يتم فيها استخدام حمولة MZ التي تم تفريغها مباشرة بواسطة اللودر. وبالتالي، يبدو تحميل هذه الوحدة مريبًا. أيضًا، عنوان أساسي غير عادي (0x1d54fd0000) تم تعيينه إلى المحمل gdiplus.dll وحدة. 
تم تعيين عنوان أساسي غير عادي لـ gdiplus.dll
من خلال إجراء مزيد من الفحص للذاكرة المشبوهة، تبين أن العنوان عبارة عن صفحة تم تعيينها بإذن RWX في مساحة عنوان أداة التحميل. هذه حالة استخدام كلاسيكية للتفريغ حيث يتم استبدال محتوى الوحدة بعناصر ضارة غير مضغوطة.

العنوان كصفحة تم تعيينها بإذن RWX
ولكن في تحليلنا حتى الآن لم نجد أي كود يقوم بالتفريغ. ثم كيف قامت البرامج الضارة بتغيير محتويات gdiplus.dll؟ ومن المثير للاهتمام أن هذا هو المكان الذي قرر فيه مطور البرامج الضارة الإبداع! يعتبر التثبيت الذي تم رؤيته سابقًا مسؤولاً عن تفريغ الوحدة المحملة بالحمولة غير المعبأة. يتم تناول المزيد من التفاصيل حول نفس الشيء في القسم التالي.
كما رأينا في القسم السابق، تربط البرامج الضارة 3 واجهات برمجة تطبيقات محددة:
اختيار API ليس عشوائيًا. العمل الداخلي لتحميل أي DLL عبر مكتبة التحميل تستخدم API الوظائف الثلاث المذكورة أعلاه. إن ربط هذه الوظائف يمنح البرامج الضارة المرونة لنشر الحمولة التي تم تفريغها سراً. هذه الميزة تجعل من الصعب على الباحثين البحث عن الحمولة الرئيسية.
يتم استخدام وظيفة التحويل عند 0x180001d4c لربط الوظيفة عرض خريطة NTM للقسم، مما يضع الأساس لتفريغ الوحدة المحملة (في هذه الحالة، gdiplus.dll) مع ثنائي Bumblebee غير المعبأ. وظيفة الالتفاف قادرة على الإجراءات التالية:
يُظهر تنفيذ وظيفة التحويل في 0x180001d4c استخدام مؤشر إلى إنشاء قسم NT API، لإنشاء كائن مقطع لاستخدامه لاحقًا في تعيين gdiplus.dll وحدة.

مؤشر إلى واجهة برمجة تطبيقات NTC CreateSection
بعد إنشاء كائن مقطع، تستدعي وظيفة الالتفاف عرض خريطة NTM للقسم، عبر مؤشر. الآن يتم إنشاء طريقة عرض القسم من قبل النظام. الوظيفة الجزء الفرعي 180002e74 مسؤول عن ملء العرض المعين بحمولة غير معبأة.

مؤشر إلى NTMAPViewOfSection جنبا إلى جنب مع وظيفة sub_180002E74
عنوان العرض المعين، الذي تم إرجاعه بواسطة عرض خريطة NTM للقسم المؤشر في عملية التحميل، وهو 0x1d54f5D0000، هو نفس العنوان الذي يظهر أثناء فحص وحدات العملية.

عنوان العرض المعين الذي تم إرجاعه بواسطة ntmapViewOfSection

تم تعيين عنوان أساسي غير عادي لـ "gdiplus.dll" كما رأينا سابقًا
تبدأ طريقة العرض المعينة من 0x1D54F5D0000. يقوم اللودر بتفريغ الحمولة غير المعبأة هنا، وهو مجوف gdiplus.dll. وبالتالي، تظل حمولة Bumblebee النهائية مخفية داخل الوحدة المحملة gdiplus.dll.
مباشرة بعد تعيين العرض، يتم تنفيذ وظيفة الالتفاف الجزء الفرعي 180002e74 لبدء كتابة الملف الثنائي الذي تم فك حزمه.

الوظيفة sub_180002e74 المسؤولة عن ملء العرض المعين بالحمولة النهائية
يتم تنشيط الخطافات بمجرد تحميل اللودر gdiplus.dll الوحدة عبر تحميل المكتبة W API. ثم يتم تحميل الحمولة بشكل سري في gdiplus.dll وحدة. الحمولة النهائية هي DLL، وبالتالي يتعين على أداة التحميل استدعاء دالة تم تصديرها بشكل صريح لبدء التنفيذ.
في هذه الحالة، تحصل أداة التحميل على عنوان الوظيفة المصدرة تعيين المسار عبر الوظيفة احصل على عنوان PROc. يتم بعد ذلك نقل عنصر التحكم إلى الحمولة النهائية عن طريق المكالمة النهائية إلى تعيين المسار، من خلال توفير اسم برنامج اللودر كوسيطة.

يحصل برنامج التحميل على عنوان الوظيفة المصدرة «setPath» عبر getProcAddress
توضح الصورة أدناه الوظيفة تعيين المسار تم تصديرها بواسطة حمولة Bumblebee غير المعبأة.

وظيفة تعيين المسار
يتم تنفيذ المكون الضار الأساسي للنحلة الطنانة في الذاكرة، عندما يتم تجويفها gdiplus.dll يتم تحميله عبر مكتبة التحميل API. عندما يتم تحميل الوحدة في الذاكرة، فإن الوظيفة Dlmain ينشئ موضوعًا جديدًا وينفذ الفئة الفرعية 180008 EC0 روتين.

وظيفة DLL الرئيسية لحمولة النحلة الطنانة
الفئة الفرعية 180008 EC0 الروتين هو وظيفة كبيرة جدًا مسؤولة عن جميع الأنشطة الضارة التي يقوم بها Bumblebee على النظام المخترق.

التدفق المنطقي للوظيفة الفرعية Sub_180008EC0
أول نشاط يقوم به الفئة الفرعية 180008 EC0 هو التحقق من بيئة الجهاز الظاهري (VM). إذا قامت الدالة بإرجاع True، فسيقوم Bumblebee بإيقاف تشغيل نفسه عن طريق تنفيذ عملية الخروج وظيفة.

يقوم sub_18003DA0 بإجراء فحص الجهاز الظاهري
روتين فحص VM هو. صارم. وهي تستخدم تقنيات مختلفة لضمان عدم تشغيل البرامج الضارة في بيئة الحماية التي يستخدمها باحثو الأمن. بعض الميزات المثيرة للاهتمام هي:

وظائف البرامج الضارة التي تساعد في التكرار من خلال العمليات الجارية

تتم مقارنة عملية التشغيل بقائمة أسماء البرامج

فحص البرامج الضارة لأسماء مستخدمين محددة

تعداد خدمات النظام النشطة التي تعمل عبر OpenSCmanagerW


فحص النظام لبرامج التشغيل الشائعة وملفات المكتبة التي تستخدمها تطبيقات VM الشائعة

التحقق من الأنابيب المسماة
فيما يلي بعض الأمثلة على التقنيات التي تستخدمها البرامج الضارة لتحديد بيئات التحليل. كما أن لديها وظائف أخرى تم إنشاؤها مثل استخدام WMI ووظائف التسجيل لتحديد معلومات الأجهزة للتحقق من وجود بيئات VM المثبتة على النظام المستهدف.
بعد التحقق من VM، إذا كان من الآمن المتابعة، تقوم البرامج الضارة بإنشاء حدث. معرف الحدث هو 3C29FEA2-6FE8-4BF9-B98A-0E3442115F67. يتم استخدام هذا لمزامنة مؤشر الترابط.

الحدث الذي تم إنشاؤه بواسطة البرامج الضارة
تستخدم البرامج الضارة wsript.exe كمتجه دائم لتشغيل البرامج الضارة في كل مرة يقوم فيها المستخدم بتسجيل الدخول إلى النظام. يتم كتابة تعليمات VB في .vbs ملف. يتم تنفيذ ذلك عندما يرسل C2 الأمر «ins» كمهمة للتنفيذ على النظام.

Wsript.exe

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

يتم منح البرامج الضارة «SedebugPrivilege»
البرنامج الضار قادر على إجراء عمليات حقن التعليمات البرمجية لنشر التعليمات البرمجية الضارة في العمليات الجارية باستخدام واجهات برمجة التطبيقات المختلفة. تسترد البرامج الضارة ديناميكيًا عناوين واجهات برمجة التطبيقات اللازمة لحقن الكود. تأتي حمولة bumblebee الأساسية مع ملفات مضمنة يتم حقنها في عملية التشغيل لمزيد من مهاجمة الضحية.

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

برامج ضارة تبحث عن قائمة العمليات على النظام

قائمة الملفات التنفيذية
بعد إدخال التعليمات البرمجية، تقوم البرامج الضارة بما يلي:

تقوم البرامج الضارة بإنشاء عملية وحقن كود shellcode فيها
وظيفة الرقم الفرعي 180037A80 مسؤول عن إجراء حقن كود القشرة في العملية المولدة في الحالة المعلقة.

الوظيفة الفرعية 180037A80
بعد إدخال رمز shellcode في العملية، تستأنف البرامج الضارة العملية. ثم يقوم بتنفيذ الوظيفة تحت 18003A9 قبل الميلاد لحقن DLL الضار أخيرًا عن طريق إنشاء أقسام وعروض ذاكرة متعددة.

تنفيذ وظيفة sub_18003a9bc لحقن ملف DLL الضار
يتم تنفيذ كود DLL عبر مؤشر ترابط الكمبيوتر في قائمة انتظار NT API، والتي يتم حلها ديناميكيًا أثناء التنفيذ.

تم تنفيذ كود DLL عبر واجهة برمجة تطبيقات NTqueueAPCthread
البنية التحتية للقيادة والتحكم، والمعروفة أيضًا باسم C2 أو C&C، هي مجموعة من الأدوات والتقنيات المستخدمة للحفاظ على الاتصال بنظام الأجهزة المخترق بعد الحصول على الوصول الأولي. يمكن استرداد عنوان IP الخاص بـ C2 من رمز الحمولة كما هو موضح أدناه.

استرداد عنوان IP الخاص بـ C2
يقوم C2 بشكل دوري بإرسال المهام إلى الوكيل ليتم تنفيذها على النظام. تستخدم البرامج الضارة على نطاق واسع WMI (البنية التحتية لإدارة Windows) لجمع معلومات الضحية الأساسية مثل اسم المجال واسم المستخدم، وترسل المعلومات المخترقة إلى C2. يميز C2 الوكلاء النشطين بناءً على معرف العميل المعين لكل منهم.

البيانات المنقولة في اتصال C2
ومن المثير للاهتمام أن سلسلة وكيل المستخدم التي تستخدمها البرامج الضارة للاتصال هي «bumblebee».

تم نقل البيانات من النظام المخترق

الأوامر التي تم تلقيها من قبل النظام المخترق
سيحتوي حقل المهمة في استجابة C2 على أحد الأوامر التالية:
أمروصفيقوم DEX بتنزيل أداة تحميل ملفات DLL القابلة للتنفيذ في PersistencediJ.dllتأتي الحمولة الأساسية مع اثنين من ملفات DLL المضمنة في الملف الثنائي. الغرض والوظيفة لكل من مكتبات DLL متماثلان، ولكن أحدهما 32 بت والآخر 64 بت. يتم استخدامها لإجراء المزيد من عمليات الربط والتحكم في التدفق.
تواقيع DLL (SHA256)
في هذا القسم، سننظر في الأعمال الداخلية لـ DLL المضمن 32 بت. تبحث الوحدة عن مجموعة محددة من الوظائف في ntdll.dll، kernel32.dll، kernelbase.dll، و advapi32.dll لإزالة أي خطافات موجودة في الكود لاحقًا. سيؤدي هذا أيضًا إلى إزالة أي خطافات تم تنفيذها بواسطة EDR/AV (اكتشاف نقطة النهاية والاستجابة/مكافحة الفيروسات) المستخدمة للمراقبة.

تم فحص الوظائف في ntdll.dll بحثًا عن الروابط الموجودة

تم فحص الوظائف في kernel32.dll بحثًا عن الروابط الموجودة
في kernelbase32.dll، يتم فحص الوظائف التالية بحثًا عن أي روابط موجودة بالفعل:

تم فحص الوظائف في kernelbase32.dll بحثًا عن الروابط الموجودة

تم فحص الوظائف في advapi32.dll بحثًا عن الروابط الموجودة
تتضمن عملية إلغاء التثبيت الخطوات التالية:

خطوات آلية فك القفل
تقوم الوظيفة sub_10005b90 بتنفيذ العمليات التالية:

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

تطابق السلسلة مع مجموعة أسماء الوظائف
عندما يتطابق اسم الوظيفة في مصفوفة البرامج الضارة مع الوظيفة المصدرة من الوحدة التي تم تحميلها، يتم تعيين العلامة إلى [v8] وتنقطع عن الحلقة. يحدث هذا في الخطوات التالية:

تتطابق البرامج الضارة مع الوظيفة المصدرة
إذا لم تكن الشفرة التي تم تحميلها هي نفسها الشفرة المعينة، فسيتم تنفيذ العمليات التالية بواسطة البرامج الضارة لإلغاء الربط:

لا تتطابق البرامج الضارة مع الوظيفة المصدرة
بعد مسح جميع الخطافات في الوظائف المحددة، تقوم البرامج الضارة بتثبيت الخطافات.
الوظائف رفع الاستثناء السريع من kernel32.dll و api-ms-win-core-errorhandling-l1-1-2.dll معلقون. ثم وظيفة الالتفاف الفرع الفرعي 100057f0 يقوم باختطاف تدفق التحكم عندما يقوم النظام باستدعاء الوظائف المذكورة أعلاه بعد إجراء التثبيت بواسطة البرامج الضارة.

تثبيت السنانير
وظيفة الفرع الفرعي 100057f0 ما عليك سوى إرجاع المكالمة.

الوظيفة الفرعية _100057f0
يحتوي ملف DLL المضمن على استراتيجية ربط مشابهة لتلك الخاصة بمحمل Bumblebee. يتم ربط الوظائف المختلفة التي يستخدمها النظام، أثناء تحميل وحدة DLL، و wups.dll يتم تحميله لتشغيل السلسلة.

ربط الوظائف المستخدمة أثناء تحميل DLL وتحميل wups.dll
واجهة برمجة التطبيقات المستهدفةوظيفة الالتفافخريطة ZWعرض للقسم الفرعي _10004C50ZW افتح القسم الفرعي الفرعي _10004ff0ZW إنشاء المقطع الفرعي الفرعي _10004BC0ZW افتح الملف الفرعي Sub_10004F20بعد تحليل العديد من العينات في البرية، لاحظنا تعديلات التعليمات البرمجية في اللودر.

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