ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor

في المنشور ، سنخبرك كيف استخدمت مجموعة OceanLotus cybergroup (APT32 و APT-C-00) مؤخرًا أحد الثغرات المتاحة للجمهور CVE-2017-11882، ونقاط ضعف تلف الذاكرة في Microsoft Office ، وكيف تضمن البرامج الضارة للمجموعة الثبات على الأنظمة المخترقة دون ترك أي أثر. بعد ذلك ، سنصف كيف استخدمت المجموعة ، منذ بداية عام 2019 ، أرشيفات ذاتية الاستخراج لتشغيل التعليمات البرمجية.

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

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor

استخدام الثغرة في محرر المعادلات Microsoft

في منتصف عام 2018 ، نفذت OceanLotus حملة تستغل الثغرة الأمنية CVE-2017-11882. تم تحليل إحدى الوثائق الخبيثة الخاصة بالمجموعة السيبرانية من قبل متخصصي 360 Threat Intelligence Center (الدراسة باللغة الصينية) ، بما في ذلك وصف تفصيلي للاستغلال. المنشور أدناه هو نظرة عامة على مثل هذا المستند الضار.

المرحلة الأولى

وثيقة FW Report on demonstration of former CNRP in Republic of Korea.doc (شا -1: D1357B284C951470066AAA7A8228190B88A5C7C3) مشابه لما ورد في الدراسة أعلاه. من المثير للاهتمام أنه يستهدف المستخدمين المهتمين بالسياسة الكمبودية (CNRP - حزب الإنقاذ الوطني الكمبودي ، الذي تم حله في نهاية عام 2017). على الرغم من امتداد .doc ، فإن المستند بتنسيق RTF (انظر الشكل أدناه) ، ويحتوي على رمز غير هام ، كما أنه غير صحيح.

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor
الشكل 1. القمامة في RTF

على الرغم من وجود عناصر تالفة ، يقوم Word بفتح ملف RTF هذا بنجاح. كما ترى في الشكل 2 ، يوجد هنا هيكل EQNOLEFILEHDR عند الإزاحة 0xC00 متبوعًا برأس MTEF ثم إدخال MTEF (الشكل 3) للخط.

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor
الشكل 2. قيم سجل FONT

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor
الرقم 3. تنسيق تسجيل FONT

تجاوز المجال المحتمل الاسم، لأنه لا يتم فحص حجمه قبل النسخ. الاسم الطويل جدًا يؤدي إلى ظهور الثغرة الأمنية. كما ترى من محتويات ملف RTF (الإزاحة 0xC26 في الشكل 2) ، يتم ملء المخزن المؤقت برمز القشرة متبوعًا بأمر وهمي (0x90) وعنوان المرسل 0x402114. العنوان هو عنصر حوار في EQNEDT32.exeمشيرا إلى التعليمات RET. يؤدي هذا إلى أن يشير EIP إلى بداية الحقل الاسمالحاوية على كود القشرة.

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor
الشكل 4. بداية كود قشرة الاستغلال

عنوان 0x45BD3C يخزن متغيرًا تم إلغاء الإشارة إليه حتى يصل إلى مؤشر للبنية المحملة حاليًا MTEFData. ها هو باقي كود القشرة.

الغرض من كود القشرة هو تنفيذ الجزء الثاني من كود القشرة المضمن في المستند المفتوح. أولاً ، يحاول كود القشرة الأصلي العثور على واصف الملف للمستند المفتوح عن طريق التكرار على جميع واصفات النظام (NtQuerySystemInformation مع الحجة SystemExtendedHandleInformation) والتحقق مما إذا كانت متطابقة PID واصف و PID عملية WinWord وما إذا تم فتح المستند بقناع وصول - 0x12019F.

لتأكيد العثور على المقبض الصحيح (وليس مقبض مستند مفتوح آخر) ، يتم عرض محتويات الملف باستخدام الوظيفة CreateFileMapping، ويتحقق رمز القشرة مما إذا كانت آخر أربعة بايتات من المستند متطابقة "yyyy»(طريقة صيد البيض). بمجرد العثور على تطابق ، يتم نسخ المستند إلى مجلد مؤقت (GetTempPath) كيف ole.dll. ثم تتم قراءة آخر 12 بايت من المستند.

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor
الشكل 5. علامات نهاية المستند

قيمة 32 بت بين العلامات AABBCCDD и yyyy هي إزاحة كود القشرة التالي. يطلق عليه مع وظيفة CreateThread. تم استخراج نفس كود القشرة الذي استخدمته مجموعة OceanLotus سابقًا. نص مضاهاة بايثون، الذي أصدرناه في مارس 2018 ، لا يزال قيد التشغيل لمرحلة التفريغ الثانية.

المرحلة الثانية

استخراج المكونات

يتم اختيار أسماء الملفات والدليل ديناميكيًا. يختار الرمز بشكل عشوائي اسم الملف القابل للتنفيذ أو ملف DLL بتنسيق C:Windowssystem32. ثم تقدم طلبًا لمواردها وتسترجع الحقل FileDescription لاستخدامه كاسم المجلد. إذا لم يفلح ذلك ، فإن الكود يختار بشكل عشوائي اسم مجلد من الدلائل %ProgramFiles% أو C:Windows (من GetWindowsDirectoryW). يتجنب استخدام اسم قد يتعارض مع الملفات الموجودة ويتأكد من أنه لا يحتوي على الكلمات التالية: windows, Microsoft, desktop, system, system32 أو syswow64. إذا كان الدليل موجودًا بالفعل ، فسيتم إلحاق "NLS_ {6 أحرف}" بالاسم.

مورد 0x102 حلل والملفات ملقاة في %ProgramFiles% أو %AppData%، إلى مجلد محدد عشوائيًا. تم تغيير وقت الإنشاء ليكون له نفس قيم kernel32.dll.

على سبيل المثال ، يوجد هنا المجلد وقائمة الملفات التي تم إنشاؤها عن طريق تحديد الملف القابل للتنفيذ C:Windowssystem32TCPSVCS.exe كمصدر بيانات.

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor
الشكل 6. استخراج المكونات المختلفة

هيكل الموارد 0x102 في قطارة أمر معقد للغاية. باختصار ، يحتوي على:
- أسماء الملفات
- حجم الملف والمحتوى
- تنسيق الضغط (COMPRESSION_FORMAT_LZNT1التي تستخدمها الوظيفة RtlDecompressBuffer)

يتم تفريغ الملف الأول كملف TCPSVCS.exe، وهو أمر شرعي AcroTranscoder.exe (وفق FileDescription، SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

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

ضمان المثابرة

مورد 0x101 في القطارة يحتوي على رقمين صحيحين 32 بت يحددان كيفية فرض الثبات. تحدد قيمة الأول كيف ستستمر البرامج الضارة بدون حقوق المسؤول.

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor
الجدول 1. آلية الثبات غير المسؤول

تحدد قيمة العدد الصحيح الثاني كيف يجب أن تضمن البرامج الضارة الثبات من خلال التشغيل بامتيازات إدارية.

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor
الجدول 2. آلية استمرار المسؤول

اسم الخدمة هو اسم الملف بدون الملحق ؛ اسم العرض هو اسم المجلد ، ولكن إذا كان موجودًا بالفعل ، فإن السلسلة "Revision 1"(يزداد الرقم حتى يتم العثور على اسم غير مستخدم). لقد حرص المشغلون على أن المثابرة من خلال الخدمة مرنة - في حالة حدوث عطل ، يجب إعادة تشغيل الخدمة بعد ثانية واحدة. ثم القيمة WOW64 تم تعيين مفتاح التسجيل الجديد للخدمة على 4 ، مما يشير إلى أن هذه خدمة 32 بت.

يتم إنشاء مهمة مجدولة من خلال عدة واجهات COM: ITaskScheduler, ITask, ITaskTrigger, IPersistFile и ITaskScheduler. بشكل أساسي ، تقوم البرامج الضارة بإنشاء مهمة مخفية ، وتعيين معلومات الحساب جنبًا إلى جنب مع معلومات المستخدم أو المسؤول الحالي ، ثم تعيين المشغل.

هذه مهمة يومية مدتها 24 ساعة والفترات الفاصلة بين جولتين من 10 دقائق ، مما يعني أنها ستعمل باستمرار.

بت خبيث

في مثالنا ، الملف القابل للتنفيذ TCPSVCS.exe (AcroTranscoder.exe) هو برنامج شرعي يقوم بتحميل مكتبات DLL التي تم إسقاطها معه. في هذه الحالة ، من الفائدة Flash Video Extension.dll.

وظيفتها DLLMain فقط يستدعي وظيفة أخرى. هناك بعض المسندات المبهمة:

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor
الشكل 7. المسندات المبهمة

بعد هذه الفحوصات المضللة ، يحصل الكود على قسم .text ملف TCPSVCS.exe، يغير حمايته إلى PAGE_EXECUTE_READWRITE ويكتب عليها بتعليمات وهمية:

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor
الشكل 8. تسلسل التعليمات

في نهاية عنوان الوظيفة FLVCore::Uninitialize(void)، المصدرة Flash Video Extension.dll، يتم إضافة التعليمات CALL. هذا يعني أنه بعد تحميل DLL الخبيثة ، عندما يستدعي وقت التشغيل WinMain в TCPSVCS.exe، سيشير مؤشر التعليمات إلى NOP ، مما يؤدي إلى الاتصال FLVCore::Uninitialize(void)، المرحلة القادمة.

تقوم الوظيفة ببساطة بإنشاء كائن المزامنة (mutex) بدءًا من {181C8480-A975-411C-AB0A-630DB8B0A221}متبوعًا باسم المستخدم الحالي. ثم يقرأ ملف * .db3 الذي تم تفريغه ، والذي يحتوي على رمز مستقل عن الموضع ، ويستخدم ملفات CreateThread لتنفيذ المحتوى.

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

يستعيد السيناريو المرحلة النهائية. هذا المكون عبارة عن باب خلفي قمنا بتحليله بالفعل دراسة OceanLotus السابقة. يمكن تحديد ذلك بواسطة GUID {A96B020F-0000-466F-A96D-A91BBF8EAC96} ملف ثنائي. لا يزال تكوين البرامج الضارة مشفرًا في مورد PE. لها نفس التكوين تقريبًا ، لكن خوادم القيادة والتحكم تختلف عن الخوادم السابقة:

- andreagahuvrauvin[.]com
- byronorenstein[.]com
- stienollmache[.]xyz

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

المحفوظات استخراج ذاتي

بعد ملفات RTF ، انتقلت المجموعة إلى أرشيفات الاستخراج الذاتي (SFX) برموز مستندات شائعة لزيادة إرباك المستخدم. كتب Threatbook عنها (الارتباط باللغة الصينية). عند بدء التشغيل ، يتم تفريغ ملفات RAR ذاتية الاستخراج ويتم تنفيذ مكتبات DLL بامتداد .ocx ، وقد تم توثيق الحمولة النهائية منها مسبقًا {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. منذ منتصف يناير 2019 ، أعادت OceanLotus استخدام هذه التقنية ، ولكنها غيّرت بعض التكوينات بمرور الوقت. في هذا القسم سنتحدث عن التقنية والتغييرات.

خلق إغراء

وثيقة THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (شا -1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) تم العثور عليه لأول مرة في عام 2018. تم إنشاء ملف SFX هذا مع مراعاة العقل - في الوصف (معلومات الإصدار) يقول إنها صورة بتنسيق JPEG. يبدو نص SFX كما يلي:

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor
الشكل 9. أوامر المؤثرات الصوتية

يتم إعادة تعيين البرامج الضارة {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (شا -1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC) وكذلك صورة 2018 thich thong lac.jpg.

تبدو صورة شرك كما يلي:

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor
الشكل 10. صورة شرك

ربما لاحظت أن أول سطرين في البرنامج النصي SFX يستدعي ملف OCX مرتين ، لكن هذا ليس خطأ.

{9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (ShLd.dll)

إن تدفق التحكم في ملف OCX مشابه جدًا لمكونات OceanLotus الأخرى - العديد من تسلسلات الأوامر JZ/JNZ и PUSH/RETمعشق مع رمز غير هام.

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor
الشكل 11. رمز مبهم

بعد تصفية رمز القمامة ، التصدير DllRegisterServer، مُسَمًّى regsvr32.exe، كالآتي:

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor
الشكل 12. رمز المثبت الرئيسي

في الأساس ، أول مرة تتصل فيها DllRegisterServer تصدير يحدد قيمة التسجيل HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model للإزاحة المشفرة في DLL (0x10001DE0).

عندما يتم استدعاء الوظيفة للمرة الثانية ، فإنها تقرأ نفس القيمة ويتم تنفيذها على هذا العنوان. من هنا ، تتم قراءة المصدر وتنفيذه ، ويتم تنفيذ العديد من الإجراءات في ذاكرة الوصول العشوائي.

كود القشرة هو نفس أداة تحميل PE المستخدمة في حملات OceanLotus السابقة. يمكن محاكاته بـ نصنا. في النهاية يسقط db293b825dcc419ba7dc2c49fa2757ee.dllويحمله في الذاكرة وينفذ DllEntry.

يستخرج DLL محتويات مورده ويفك تشفير (AES-256-CBC) ويفك ضغط (LZMA). المورد له تنسيق محدد يسهل فكه.

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor
الشكل 13. هيكل تكوين المثبت (KaitaiStruct Visualizer)

يتم تعيين التكوين بشكل صريح - اعتمادًا على مستوى الامتياز ، ستتم كتابة البيانات الثنائية %appdata%IntellogsBackgroundUploadTask.cpl أو %windir%System32BackgroundUploadTask.cpl (أو SysWOW64 لأنظمة 64 بت).

يتم ضمان المزيد من المثابرة من خلال إنشاء مهمة تسمى BackgroundUploadTask[junk].jobحيث [junk] هي مجموعة من البايتات 0x9D и 0xA0.

اسم تطبيق المهمة %windir%System32control.exe، وقيمة المعلمة هي المسار إلى الملف الثنائي الذي تم تنزيله. تعمل المهمة المخفية كل يوم.

من الناحية الهيكلية ، يعد ملف CPL عبارة عن ملف DLL باسم داخلي ac8e06de0a6c4483af9837d96504127e.dll، الذي يقوم بتصدير الوظيفة CPlApplet. يقوم هذا الملف بفك تشفير مورده الوحيد {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll، ثم يقوم بتحميل DLL ويستدعي التصدير الوحيد الخاص به DllEntry.

ملف تكوين مستتر

تكوين الباب الخلفي مشفر ومدمج في موارده. هيكل ملف التكوين مشابه جدًا للملف السابق.

ESET: مخططات تسليم جديدة لـ OceanLotus Cybergroup Backdoor
الشكل 14. هيكل تكوين الباب الخلفي (KaitaiStruct Visualizer)

على الرغم من الهيكل المتشابه ، فقد تم تحديث قيم العديد من الحقول مقارنة بالبيانات الموضحة في تقريرنا القديم.

يحتوي العنصر الأول من الصفيف الثنائي على DLL (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), التي حددتها تينسنت. ولكن منذ إزالة اسم التصدير من الثنائي ، لا تتطابق التجزئة.

أبحاث إضافية

جمع العينات ، انتبهنا لبعض الخصائص. ظهرت العينة الموصوفة للتو في حوالي يوليو 2018 ، وظهرت عينات أخرى مماثلة مؤخرًا ، في منتصف يناير - أوائل فبراير 2019. تم استخدام أرشيف SFX كناقل للعدوى ، وإسقاط مستند شرك شرعي وملف OCX ضار.

على الرغم من استخدام OceanLotus للطوابع الزمنية المزيفة ، فقد لاحظنا أن الطوابع الزمنية لملفات SFX و OCX هي نفسها دائمًا (0x57B0C36A (08/14/2016 @ 7:15 مساءً بالتوقيت العالمي المنسق) و 0x498BE80F (02/06/2009 الساعة 7:34 صباحًا بالتوقيت العالمي المنسق) على التوالي). ربما يشير هذا إلى أن المؤلفين لديهم نوع من "المُنشئ" الذي يستخدم نفس القوالب ويقوم فقط بتغيير بعض الخصائص.

من بين الوثائق التي درسناها منذ بداية عام 2018 أسماء مختلفة تشير إلى الدول المهاجمة ذات الأهمية:

- معلومات الاتصال الجديدة لوسائل الإعلام الكمبودية (جديد) .xls.exe
- 李建 香 (个人 简历). exe (مستند pdf مزيف لسيرة ذاتية)
- ملاحظات ، رالي في الولايات المتحدة الأمريكية من 28-29 يوليو 2018.exe

منذ اكتشاف الباب الخلفي {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll ونشر تحليلها من قبل العديد من الباحثين ، لاحظنا بعض التغييرات في بيانات تكوين البرامج الضارة.

أولاً ، بدأ المؤلفون في إزالة الأسماء من DLLs المساعدة (DNSprov.dll ونسختين HttpProv.dll). ثم توقف المشغلون عن حزم DLL الثالث (الإصدار الثاني HttpProv.dll) ، واختيار تضمين واحد فقط.

ثانيًا ، تم تغيير العديد من حقول التكوين الخلفية ، ربما لتجنب الكشف حيث أصبح العديد من IoCs متاحًا. ومن المجالات المهمة التي عدلها المؤلفون ما يلي:

  • تم تغيير مفتاح التسجيل AppX (انظر IoCs)
  • سلسلة تشفير mutex ("def" ، "abc" ، "ghi")
  • رقم المنفذ

أخيرًا ، تحتوي جميع الإصدارات الجديدة التي تم تحليلها على C & Cs جديدة مدرجة في قسم IoCs.

النتائج

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

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

تتوفر مؤشرات التسوية وكذلك سمات MITER ATT & CK على Welivesecurity и على جيثب.

المصدر: www.habr.com

إضافة تعليق