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

ملخص تنفيذي

  • في 23 فبراير 2022، حدد باحثو ESET برنامجًا ضارًا مدمرًا، أطلق عليه اسم «Hermetic Wiper»، يستهدف أجهزة الكمبيوتر والمواقع الإلكترونية الأوكرانية.
  • يستخدم برنامج Hermetic Wiper الثنائي للبرامج الضارة شهادة رقمية موقعة صادرة إلى «Hermetica Digital Ltd» ويحمل برنامج التشغيل الذي أسقطته البرامج الضارة شهادة رقمية موقعة صادرة إلى «Chengdu Yiwo Tech Development Co Ltd» للتحايل على عمليات الفحص الأمني.
  • تقوم البرامج الضارة بإسقاط برنامج التشغيل، في دليل Windows Drivers، والذي يعد جزءًا من برنامج Easeus الذي يحمل اسم الملف الأصلي EPMNTDRV.sys.
  • يقوم بإساءة استخدام برنامج التشغيل الذي تم تحميله على النظام المستهدف للوصول إلى القرص الصلب بامتيازات أعلى وكتابة بيانات القمامة فيه.
  • ثم تجعل البرامج الضارة النظام عديم الفائدة عن طريق إتلاف بيانات التشغيل، مما يجبر المستخدم على إعادة تثبيت نظام التشغيل الخاص به.

التحليل الفني للبرامج الضارة لـ Hermetic Wiper

الاستفادة من شهادات توقيع التعليمات البرمجية لتجنب الاكتشاف

  • يتم إصدار الشهادة الرقمية الموقعة من البرنامج الضار إلى Hermetica Digital Ltd.، وهي شركة لتطوير الألعاب مقرها قبرص.
  • تقوم البرامج الضارة بإسقاط برنامج تشغيل في دليل Windows Drivers. تنتمي الشهادة الرقمية الموقعة للثنائي الذي تم إسقاطه إلى شركة Chengdu Yiwo Tech Development Co Ltd.، مالكة شركة Easeus Data، وهي شركة للنسخ الاحتياطي للبيانات واستعادتها.
Signed digital certificates of the binaries
الشهادات الرقمية الموقعة للثنائيات
Signed digital certificates of the binaries
الشهادات الرقمية الموقعة للثنائيات

الحصول على مقبض لرمز العملية الحالية

  • تبدأ البرامج الضارة بالحصول على مقبض لرمز العملية الحالية.
  • في Windows، الرمز المميز هو كائن يمثل الامتياز الذي تحتفظ به العملية أثناء التشغيل على النظام. يمكن العثور على قائمة كاملة بثوابت الامتيازات هنا.
  • تستخدم البرامج الضارة افتح رمز العملية واجهة برمجة التطبيقات مع الوصول المطلوب تم تعيين المعلمة إلى 0x0028 (رمز الاستعلام 0x0008 | رمز تعديل الامتيازات 0x0020).
  • يسمح هذا للبرامج الضارة بتغيير الامتيازات المعينة إلى الرمز المميز.
Using OpenProcessToken API to change token privileges
استخدام واجهة برمجة تطبيقات OpenProcessToken لتغيير امتيازات الرمز المميز

تغيير امتيازات الرمز

  • بعد الوصول إلى الرمز المميز للعملية الحالية، مع تعيين الامتيازات، تستخدم البرامج الضارة ابحث عن قيمة الامتياز للتأكد من تعيين الامتيازات التالية للعملية الحالية:
    • امتياز إيقاف تشغيل SES
    • امتياز النسخ الاحتياطي
  • ال ضبط امتيازات الرمز المميز يتم استخدام API لضبط امتيازات الرمز المميز الحالية إذا لم يتم تعيين الامتيازات المذكورة أعلاه بالفعل للعملية الحالية.
Process of changing token privileges of the current process
عملية تغيير امتيازات الرمز المميز للعملية الحالية

تحميل الحمولة في ذاكرة النظام

  • بعد منح الامتيازات، تعمل البرامج الضارة ديناميكيًا على حل عناوين الوحدات التالية وتحميلها في العملية الحالية:
    • WOW64 قم بتعطيل إعادة توجيه WOW64FS
    • Wow64 قم بإعادة توجيه WOW64FS
    • عملية إيسوو64
  • ال WOW64 قم بتعطيل إعادة توجيه WOW64FS و Wow64 قم بإعادة توجيه WOW64FS الوحدات هي المسؤولة عن إعادة توجيه نظام الملفات على إصدارات 64 بت من Windows. يتم تشغيل هذا عند تشغيل تطبيق 32 بت على نظام Windows 64 بت، حيث %windir%\ النظام 32 الدليل محجوز فقط لتطبيقات 64 بت. ومع ذلك، نظرًا لأن نموذج البرامج الضارة عبارة عن تطبيق 32 بت، فهناك حاجة للبرامج الضارة للوصول إلى النظام 32 دليل. هذا ممكن عبر WOW64 قم بتعطيل إعادة توجيه WOW64FS. كما أنه يساعد في الوصول إلى السجل دون إعادة توجيه Wow64.
  • ال عملية إيسوو64 يُستخدم لتحديد ما إذا كانت العملية المحددة تعمل تحت WOW64 أو تحت معالج Intel64 أو x64. يستخدم هذا بشكل أساسي لتحديد الحمولة المناسبة ليتم إسقاطها.
تقوم البرامج الضارة بتحميل الوحدات في العملية الحالية.
  • تحتوي البرامج الضارة على صور متعددة للحمولة. تحتفظ البرامج الضارة بصور برنامج التشغيل التالية لتحميلها لاحقًا:
    • DRV_X64
    • DRV_X86
    • DRV_XP_X64 للأجيال القديمة من ويندوز
    • DRV_XP_X86 للأجيال القديمة من ويندوز
صور متعددة للحمولة في البرامج الضارة

صور متعددة للحمولة في البرامج الضارة

  • يتم تعداد إصدار النظام باستخدام تحقق من تدفق الإصدار API.
تعداد إصدار النظام باستخدام VerifyVersionInfow

  • تحدد البرامج الضارة الحمولة التي سيتم إسقاطها استنادًا إلى البتات (32/64) في قسم الموارد في الملف القابل للتنفيذ المحمول (PE). بعد ذلك، يتم استرداد الصورة المقابلة من قسم .rsrc من البرامج الضارة وتحميلها في ذاكرة النظام.
تحميل الحمولة المقابلة في ذاكرة النظام

إلقاء سائق على النظام المستهدف

  • يتم تعطيل البرامج الضارة تم تمكين تفريغ الأعطال، مما يؤدي إلى تفريغ ذاكرة النظام في حالة حدوث عطل. تم تمكين تفريغ الأعطال يتم تمكينه افتراضيًا على Windows 10، وله قيمة افتراضية تبلغ 0x7. تقوم البرامج الضارة بتغييرها إلى 0x0، وبالتالي تعطيلها.
  • يتم ذلك للتهرب من تحليل الطب الشرعي إذا حدث خطأ ما عند تحميل برنامج التشغيل على النظام المستهدف.
  • بعد تعطيل إعداد تفريغ الأعطال في السجل، تستعد البرامج الضارة لنسخ صورة برنامج التشغيل، المحفوظة في قسم .rsrc من PE، إلى النظام المستهدف.
  • أنبوب \\\\. \\ EPMNTDRV\\ تم إنشاؤه لتنفيذ نقل البيانات.
إنشاء أنبوب لنقل البيانات
  • دليل النظام لبرامج التشغيل C:\Windows\system32\drivers ثم يتم استرجاعها عبر احصل على دليل النظام API.
استرداد دليل النظام لبرامج التشغيل

 

  • تتم كتابة البيانات عبر ملفات LZ المفتوحة و زي كوبي واجهات برمجة التطبيقات. يتم إنشاء اسم الملف عشوائيًا في وقت التشغيل، والاسم المعين للملف هو ttdr.sys.
كتابة البيانات وإنشاء ملف ttdr.sys

  • الآن نجحت البرامج الضارة في التخلص من برنامج التشغيل على النظام المستهدف.
تم إلقاء ttdr.sys على النظام المستهدف

تحميل برنامج التشغيل وإنشاء الخدمة

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

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

  • إذا لم تكن الخدمة موجودة، الخدمة المفتوحة إرجاع واجهة برمجة التطبيقات خدمة الخطأ غير موجودة، ثم يتم إنشاء خدمة جديدة عبر CreateServiceW كما هو موضح أدناه
يتم إنشاء خدمة جديدة عبر CreateServiceW

  • ال ابدأ الخدمة W ثم يتم استخدام API لتشغيل برنامج التشغيل على النظام الهدف.
استخدام StartServiceW API لتشغيل برنامج التشغيل على النظام المستهدف

  • يمكن التحقق من ذلك عن طريق الاستعلام عن عنصر تحكم الخدمة للتحقق مما إذا كان حالة تم تعيين المعلمة إلى «قيد التشغيل». بعد ذلك، تبدأ البرامج الضارة بالتفاعل مع برنامج التشغيل عبر جهاز التحكم IO API، مما يجعل البرامج الضارة مكونًا userland لبرنامج التشغيل المنشور.
الاستعلام عن عنصر تحكم الخدمة

  • الارتباط الرمزي الذي تم إنشاؤه لاتصالات الإدخال/الإخراج هو التحقق من تحميل برنامج التشغيل بنجاح على النظام.
تم إنشاء ارتباط رمزي لاتصالات IO

  • في حالة وجود الخدمة، تحصل البرامج الضارة على حالة الخدمة من Service Control Manager باستخدام حالة خدمة الاستعلام API.
  • يتم تغيير تكوينات الخدمة، إذا كانت الخدمة غير نشطة، عبر تغيير تكوين الخدمة API. والعلم بدء الطلب على الخدمة يتم تمرير (0x00000003) كـ نوع DW ستارت قيمة لـ تغيير تكوين الخدمة API.
الاستعلام عن تكوينات الخدمة وتغييرها

عملية التنظيف

  • بمجرد بدء تشغيل برنامج التشغيل على النظام المستهدف، يبدأ عملية التنظيف عن طريق حذف إدخال الخدمة في السجل، وصورة برنامج التشغيل في C:\Windows\system32\drivers دليل.
حذف إدخال الخدمة من التسجيل وصورة برنامج التشغيل

  • بعد عملية التنظيف، تقوم البرامج الضارة بتعطيل خدمة النسخ الاحتياطي لوحدة التخزين (VSS) على النظام، عبر إدارة التحكم بالخدمة. يتم فتح خدمة VSS عبر الخدمة المفتوحة API لتغيير تكوين الخدمة لاحقًا.

تعطيل خدمة النسخ الاحتياطي لوحدة التخزين

  • يتم إجراء تحديث جديد للتكوين من خلال تمرير علامة 0x00000004 (تم تعطيل الخدمة) إلى تغيير خدمة ConfigW، وبالتالي تعطيل VSS بالقوة.
تعطيل VSS

  • تتأكد البرامج الضارة من توقف الخدمة عن طريق تمرير 0x00000001 (إيقاف التحكم بالخدمة) مثل DWControl قيمة المعلمة.

التأكد من توقف الخدمة

إتلاف بيانات القرص الصلب

  • تستخدم البرامج الضارة برنامج التشغيل المثبت لقراءة/كتابة بيانات القرص الثابت.
  • ولتحقيق ذلك، فإن الرابط الرمزي المستخدم من قبل السائق (\ الجهاز\ EPMNTDRV)، يتواصل عبر التحكم في IO للجهاز API، عن طريق تمرير رموز IOCTL لجعل برنامج التشغيل يؤدي مهمة محددة.
  • ثم تصل البرامج الضارة إلى سجل التشغيل الرئيسي عبر \\\\. \\ محرك الأقراص المادية 0.
  • رموز IOCTL:
5600007005090073900642D108090068700A0
الوصول إلى\\\\. \\ محرك الأقراص المادية 0

  • يميز منطق تلف البيانات أنظمة NTFS وFAT وله منطق تلف مختلف لكل نظام من أنظمة الملفات الموجودة على القرص.
منطق تلف NTFS

منطق الفساد الدهني

  • تقوم البرامج الضارة بتوزيع حقول سجل الملفات الرئيسية مثل صورة نقطية $ و ملف سجل $ وتدفقات سمات NTFS الأخرى مثل بيانات $، 30 دولارًا، أو تخصيص الفهرس بالدولار.
  • يتم إنشاء سلاسل رسائل متعددة بواسطة البرامج الضارة لأداء أنشطة مختلفة. ومع ذلك، يتم تنفيذ أحد سلاسل العمليات بدء إيقاف تشغيل النظام NEX، وهو نشاط متميز، باعتباره الضرر النهائي.
Performing InitiateSystemShutdownEx as the final damage
تنفيذ بدء إيقاف تشغيل النظام كالضرر النهائي

  • قبل إيقاف تشغيل النظام، تقوم البرامج الضارة بتعداد الأدلة التالية لمسح البيانات:
    • المستندات الخاصة بي
    • سطح المكتب
    • بيانات التطبيق
    • سجلات أحداث Windows (C:\Windows\System32\winevt\Logs)

مؤشرات التسوية

  • البرامج الضارة الثنائية: 1bc44eef75779e3ca1eefb8ff5a64807dbc942b1e4a2672d779f6928d292591
  • برنامج التشغيل الذي تم إسقاطه: 6106653B08F4F72EEAA7F099E7C408A4
  • 3F4A16B29F2F0532B7CE3E7656799125
لم يتم العثور على أية عناصر.

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