في مارس 2019، تم تحميل عينة جديدة من البرامج الضارة لنظام التشغيل MacOS من المجموعة الإلكترونية OceanLotus إلى VirusTotal، وهي خدمة فحص شهيرة عبر الإنترنت. يتمتع الملف القابل للتنفيذ من الباب الخلفي بنفس إمكانيات الإصدار السابق من البرامج الضارة لنظام التشغيل macOS التي قمنا بدراستها، لكن هيكله تغير وأصبح اكتشافه أكثر صعوبة. ولسوء الحظ، لم نتمكن من العثور على قطارة مرتبطة بهذه العينة، لذلك لا نعرف حتى الآن ناقل العدوى.
لقد نشرنا مؤخرا
تحليل
تصف الأجزاء الثلاثة التالية تحليل العينة باستخدام تجزئة SHA-1 E615632C9998E4D3E5ACD8851864ED09B02C77D2
. يسمى الملف مصباح يدوي، تكتشف منتجات مكافحة الفيروسات من ESET أنها OSX/OceanLotus.D.
مكافحة التصحيح وحماية رمل
مثل جميع ثنائيات macOS OceanLotus، يتم حزم العينة باستخدام UPX، لكن معظم أدوات تعريف أداة الحزم لا تتعرف عليها على هذا النحو. ربما يرجع ذلك إلى أنها تحتوي في الغالب على توقيع يعتمد على وجود سلسلة "UPX"، بالإضافة إلى أن توقيعات Mach-O أقل شيوعًا ولا يتم تحديثها كثيرًا. هذه الميزة تجعل الكشف الثابت أمرًا صعبًا. ومن المثير للاهتمام أنه بعد التفريغ، تكون نقطة الدخول في بداية القسم __cfstring
في هذا الجزء .TEXT
. يحتوي هذا القسم على سمات العلامة كما هو موضح في الصورة أدناه.
الشكل 1. سمات قسم MACH-O __cfstring
كما هو موضح في الشكل 2، مواقع التعليمات البرمجية في القسم __cfstring
يسمح لك بخداع بعض أدوات التفكيك من خلال عرض التعليمات البرمجية كسلاسل.
الشكل 2. رمز الباب الخلفي الذي اكتشفته المؤسسة الدولية للتنمية كبيانات
بمجرد تنفيذه، يقوم الثنائي بإنشاء مؤشر ترابط كمضاد مصحح أخطاء غرضه الوحيد هو التحقق المستمر من وجود مصحح أخطاء. لهذا التدفق:
- يحاول إلغاء ربط أي مصحح أخطاء، والاتصال ptrace
с PT_DENY_ATTACH
كمعلمة الطلب
- التحقق مما إذا كانت بعض المنافذ الحصرية مفتوحة عن طريق استدعاء دالة task_get_exception_ports
- يتم التحقق من توصيل مصحح الأخطاء، كما هو موضح في الشكل أدناه، عن طريق التحقق من وجود العلامة P_TRACED
في العملية الحالية
الشكل 3. التحقق من اتصال مصحح الأخطاء باستخدام وظيفة sysctl
إذا اكتشفت الوكالة وجود مصحح أخطاء، فسيتم استدعاء الوظيفة exit
. بالإضافة إلى ذلك، تقوم العينة بعد ذلك بفحص البيئة عن طريق تشغيل أمرين:
ioreg -l | grep -e "Manufacturer" и sysctl hw.model
يقوم النموذج بعد ذلك بالتحقق من القيمة المرجعة مقابل قائمة سلاسل مشفرة من أنظمة المحاكاة الافتراضية المعروفة: acle, في إم وير, فيرتثلبوإكس أو التشابه. أخيرًا، يتحقق الأمر التالي مما إذا كان الجهاز واحدًا من "MBP" و"MBA" و"MB" و"MM" و"IM" و"MP" و"XS" التالية. هذه هي رموز طراز النظام، على سبيل المثال، "MBP" يعني MacBook Pro، و"MBA" يعني MacBook Air، وما إلى ذلك.
system_profiler SPHardwareDataType 2>/dev/null | awk '/Boot ROM Version/ {split($0, line, ":");printf("%s", line[2]);}
الإضافات الرئيسية
على الرغم من أن أوامر الباب الخلفي لم تتغير منذ بحث Trend Micro، إلا أننا لاحظنا بعض التعديلات الأخرى. خوادم القيادة والتحكم المستخدمة في هذه العينة جديدة إلى حد ما وتم إنشاؤها بتاريخ 22.10.2018/XNUMX/XNUMX.
- daff.faybilodeau[.]com
- sarc.onteagleroad[.]com
- au.charlineopkesston[.]com
لقد تغير عنوان URL للمورد إلى /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35
.
تحتوي الحزمة الأولى المرسلة إلى خادم القيادة والسيطرة على مزيد من المعلومات حول الجهاز المضيف، بما في ذلك جميع البيانات التي تم جمعها بواسطة الأوامر الواردة في الجدول أدناه.
بالإضافة إلى هذا التغيير في التكوين، لا يستخدم النموذج مكتبة لتصفية الشبكة gFjMXBgyXWULmVVVzyxy
، مبطن بالأصفار. يتم فك تشفير كل ملف وحفظه باسم /tmp/store
، ويتم إجراء محاولة تحميله كمكتبة باستخدام الوظيفة dlopen
، يستخرج الباب الخلفي الوظائف المصدرة Boriry
и ChadylonV
والتي يبدو أنها مسؤولة عن اتصال الشبكة بالخادم. ليس لدينا قطارة أو ملفات أخرى من الموقع الأصلي للعينة، لذلك لا يمكننا تحليل هذه المكتبة. علاوة على ذلك، نظرًا لأن المكون مشفر، فإن قاعدة YARA المستندة إلى هذه السلاسل لن تتطابق مع الملف الموجود على القرص.
كما هو موضح في المقالة أعلاه، فإنه يخلق معرف العميل. هذا المعرف هو تجزئة MD5 للقيمة المرجعة لأحد الأوامر التالية:
- ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformSerialNumber/ { split($0, line, """); printf("%s", line[4]); }'
- ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, """); printf("%s", line[4]); }'
- ifconfig en0 | awk '/ether /{print $2}'
(الحصول على عنوان MAC)
- فريق غير معروف ("x1ex72x0a
")، والذي تم استخدامه في العينات السابقة
قبل التجزئة، تتم إضافة "0" أو "1" إلى القيمة المرجعة للإشارة إلى امتيازات الجذر. هذا clientID مخزن في /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex
، إذا تم تشغيل التعليمات البرمجية كجذر أو في ~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgML في جميع الحالات الأخرى. عادةً ما يكون الملف مخفيًا باستخدام الوظيفة touch –t
مع قيمة عشوائية.
سلاسل فك التشفير
كما هو الحال مع الخيارات السابقة، يتم تشفير السلاسل باستخدام AES-256-CBC (المفتاح السداسي العشري: 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92
مبطن بالأصفار، و IV مملوء بالأصفار) من خلال الدالة
معرفة النموذج الوظيفي فك تشفير، يبحث البرنامج النصي عن جميع الإسنادات الترافقية لهذه الوظيفة، وجميع الوسائط، ثم يفك تشفير البيانات ويضع نصًا عاديًا داخل التعليق على عنوان الإسناد الترافقي. لكي يعمل البرنامج النصي بشكل صحيح، يجب ضبطه على الأبجدية المخصصة المستخدمة بواسطة وظيفة فك التشفير base64، ويجب تحديد متغير عام يحتوي على طول المفتاح (في هذه الحالة DWORD، انظر الشكل 4).
الشكل 4. تعريف المتغير العام key_len
في نافذة الوظيفة، يمكنك النقر بزر الماوس الأيمن فوق وظيفة فك التشفير والنقر فوق "استخراج وفك تشفير الوسائط". يجب أن يقوم البرنامج النصي بوضع الأسطر التي تم فك تشفيرها في التعليقات، كما هو موضح في الشكل 5.
الشكل 5. يتم وضع النص الذي تم فك تشفيره في التعليقات
بهذه الطريقة يتم وضع السلاسل التي تم فك تشفيرها معًا بشكل ملائم في نافذة IDA xrefs لهذه الوظيفة كما هو مبين في الشكل 6.
الشكل 6. Xrefs إلى وظيفة f_decrypt
يمكن العثور على النص النهائي في
إنتاج
كما ذكرنا سابقًا، تعمل OceanLotus باستمرار على تحسين وتحديث مجموعة أدواتها. هذه المرة، قامت المجموعة السيبرانية بتحسين البرامج الضارة للعمل مع مستخدمي Mac. لم يتغير الرمز كثيرًا، ولكن نظرًا لأن العديد من مستخدمي Mac يتجاهلون منتجات الأمان، فإن حماية البرامج الضارة من الاكتشاف لها أهمية ثانوية.
كانت منتجات ESET تكتشف هذا الملف بالفعل في وقت البحث. نظرًا لأن مكتبة الشبكة المستخدمة لاتصالات القيادة والتحكم أصبحت الآن مشفرة على القرص، فإن بروتوكول الشبكة الدقيق الذي يستخدمه المهاجمون غير معروف بعد.
مؤشرات التسوية
تتوفر أيضًا مؤشرات التسوية بالإضافة إلى سمات MITRE ATT&CK
المصدر: www.habr.com