في يوليو 2025، اكتشفت IBM X-Force برنامجًا ضارًا جديدًا يُنسب إلى عنصر التهديد الموالي للصين Hive0154. ويتضمن إصدار محدث من Toneshell يتجنب الكشف ويدعم عدة مزايا جديدة، بالإضافة إلى فيروس USB متنقل جديد يُدعى SnakeDisk اكتُشف في منتصف أغسطس. لا يُنفذ الفيروس المتنقل إلا على الأجهزة التي تحمل عناوين IP مقرها تايلاند، وينقل الباب الخلفي Yokai، الذي اكتشفه Netskope في ديسمبر 2024.
Hive0154 هو عنصر تهديد راسخ وموالٍ للصين لديه ترسانة كبيرة من البرامج الضارة، وتقنيات متسقة، ونشاط موثق جيدًا خلال السنوات القليلة الماضية. تتكون المجموعة من عدة مجموعات فرعية وتشارك في هجمات إلكترونية تستهدف المؤسسات العامة والخاصة، بما في ذلك مراكز الأبحاث ومجموعات السياسات والهيئات الحكومية والأفراد. ويعكس رصد X-Force لاستخدام المجموعة لعدة محملات برامج ضارة مخصصة، وأبواب خلفية، وعائلات فيروسات USB المتنقلة مدى تطور إمكاناتهم. يتداخل نشاط Hive0154 مع عناصر التهديد المعروفة للعامة مثل Mustang Panda، وStately Taurus، وCamaro Dragon، وTwill Typhoon، وPolaris، وEarth Preta.
خلال منتصف عام 2025، رصدت X-Force العديد من الأرشيفات المخترقة المرفوعة على VirusTotal من سنغافورة وتايلاند:
اسم الملف | ملف DLL خبيث | خادم C2 | التاريخ |
Meeting Venue Request Information.zip | محمل يحقن كود shellcode الذي يخص Pubload | 188.208.141[.] | 21 مايو |
Hotel Booking Request.7z | Toneshell8 | 146.70.29[.] | 03 يوليو |
Cyber_Safety_ | Toneshell8 | 146.70.29[.] | 30 يوليو |
TNLA နှင့် အခြားတော်လှန်ရေးအင်အားစုများ.rar (مترجم من لغة ميانمار: "TNLA والقوى الثورية الأخرى") | Toneshell8 | 146.70.29[.] | 30 يوليو |
Scan(08-02-205).zip | Toneshell8 | 146.70.29[.] | 05 أغسطس |
Notes.rar | محمل يحقن كود shellcode الذي يخص Pubload | 188.208.141[.] | 21 أغسطس |
CallNotes.zip | محمل يحقن كود shellcode الذي يخص Toneshell7 | 146.70.29[.] | 4 سبتمبر |
رُصد استخدام Hive0154 لمحمّل جديد من أجل حقن Pubload أو Toneshell7 بشكل عكسي، بالإضافة إلى نشر إصدار Toneshell8 الأكثر تشويشًا بشكل مباشر. خضع إصدار Pubload الأحدث لتغييرات طفيفة وهو يدعم الآن خوادم C2 المزيفة وتنزيل حمولات كود shellcode عبر HTTP POST بالإضافة إلى TCP الخام الذي يحاكي حركة مرور TLS.
اكتُشف في سبتمبر تنزيل الأرشيف "CallNotes.zip" من تخزين Box السحابي عبر رابط في ملف PDF ينتحل صفة وزارة الخارجية الميانمارية:
في منتصف شهر أغسطس، اكتشفت X-Force أيضًا SnakeDisk، وهو فيروس USB متنقل جديد يتشابه مع إصدارات Tonedisk السابقة. لا يُنفذ الفيروس المتنقل إلا على الأجهزة الموجودة في تايلاند حسب عنوان IP العام الخاص بها. تنشر SnakeDisk باب Yokai الخلفي، والذي ربطه Netskope علنًا بالعديد من الحملات الأخرى التي استهدفت تايلاند في ديسمبر 2024.
نظرًا إلى تاريخ باب Yokai الخلفي المتمثل في استخدامه ضد تايلاند، بدا أن اكتشاف أحدث فيروس USB متنقل يتزامن مع الأحداث الجيوسياسية الأخيرة المحيطة بتايلاند:
لطالما كانت جمهورية الصين الشعبية من الجهات الداعمة لكمبوديا، حيث كانت تزودها بالأسلحة وتستثمر بالمليارات في مشاريع البنية التحتية. وقد تكون الأحداث الجيوسياسية الأخيرة قد وفرت دافعًا لمجموعة Hive0154 لبدء شن العمليات ضد تايلاند. يبدو أن نشر فيروس USB المتنقل المتمثل في SnakeDisk والمهيأ للتنفيذ فقط على الأجهزة الموجودة في تايلاند يشير إلى أن Hive0154 ربما تسعى لاختراق الأنظمة المعزولة شبكيًا، التي غالبًا ما تُستخدم في الشبكات الحكومية.
رصدت X-Force لأول مرة الإصدار الثامن من Toneshell في مارس 2025. وهو مشابه جدًا في سلوكه للإصدار السابع الذي سبقه، ولكنه يحتوي على تحديثات طفيفة للتهرب من الكشف الثابت وإعاقة التحليل. الفرق الأكثر وضوحًا هو تضمين أكواد مهملة ضمن دوال البرنامج الضار. تنفذ أقسام الأكواد المهملة هذه السلوك التالي:
يمكن العثور على أمثلة على هذه الأكواد الثلاثة، على سبيل المثال، في الدالة التي تحلل جميع ما يخص واجهات برمجة التطبيقات مما يلي:
اختار مطورو Toneshell8 أيضًا استبدال مولد الأرقام العشوائية (PRNG) باستخدام مخصص لمولد التوافق الخطي (LCG) باستخدام ثوابت مختلفة، على سبيل المثال:
تُستخدم مولدات الأرقام العشوائية (PRNG) في Toneshell لإنشاء معرّف الضحية ومفاتيح تشفير حركة مرور C2، والتحقق من صحة إشارة C2. تختلف التطبيقات في عينات Toneshell8 اختلافًا كبيرًا من حيث الجودة. على سبيل المثال، يُستخدم المولد المذكور أعلاه في العينات الأربع المذكورة أعلاه وينتج 11 حالة مختلفة فقط لمعظم القيم الأولية.
وأخيرًا، أصبحت أكواد الاستجابة المشفرة ضمنيًا والمرسلة إلى خادم C2، والتي تُخطر المشغلين بحالة بعض الأوامر، مشوشة الآن من خلال حسابها من أعداد صحيحة مختلفة مشفرة ضمنيًا في العينة.
في شهر يوليو، اكتشفت X-Force إصدار جديد من Toneshell، سنشير إليه باسم Toneshell9. تحتوي على تحديثات مهمة ولم تُكتشف أبدًا على VirusTotal في وقت كتابة هذه المدونة (318a1ebc0692d1d012d20d306d6634b196cc387b1f4bc38f97dd437f117c7e20).
وقد رُصد الإصدار الجديد من Toneshell لأول مرة في أرشيفات حصان طروادة RAR تحتوي على برنامج "USB Safely Remove". ويبدو أن بنية الكود قد اعتمدت على إصدار فرعي يعود إلى ديسمبر 2024، والذي يحتوي على تكوين C2 متطابق.
على غرار الإصدارات السابقة، يُنفذ Toneshell9 كملف DLL محمل جانبيًا. يحتوي أرشيف RAR المخترق على ملف BAT، والذي يشغل ملف "USBSRService.exe" الشرعي التنفيذي باستخدام وسيطة سطر الأوامر "-Embedding". بمجرد تحميل Toneshell DLL "EasyFuncs.dll" في الذاكرة وتنفيذ تصدير FS_RegActiveX ، يبدأ بتحليل المجموعة الأولى من واجهات برمجة التطبيقات اللازمة للتهيئة. بعد تحليل وسيطة سطر الأوامر "-Embedding"، يشغل Toneshell الملف التنفيذي الرئيسي في عملية جديدة باستخدام الوسيطة "EvtSys". تؤدي الوسيطة الأخيرة إلى تشغيل السلوك الرئيسي لملف DLL الخبيث.
يبدأ Toneshell بتهيئة كائن عميل جديد يحتوي على القيم التالية:
ثم يحلل بقية واجهات برمجة التطبيقات اللازمة عبر دالة تجزئة مخصصة ويخزن مؤشرات الدوال في بنية منفصلة. وبعد ذلك، يُنشئ حدثًا جديدًا باسم "Windows External Module"، والذي يعمل ككائن استبعاد متبادل تكيفي لمنع تشغيل مثيلات متعددة على الجهاز نفسه.
يحتوي Toneshell9 على العديد من أقسام الأكواد المهملة، والتي تسترجع العدد الحالي لتغييرات وحدة المعالجة المركزية، وتخزن النتائج كسلسلة نصية، ثم تلغي تخصيصها مرة أخرى.
لإدارة اتصالات C2 وخوادم الوكيل والإشارات والحمولات وتخزينها في الذاكرة، يُنشئ Toneshell مثيلاً لكائن كبير بحجم 129 كيلوبايت:
على عكس الإصدارات السابقة، يعمل Toneshell9 على تعداد خلايا السجل HKEY_LOCAL_MACHINE وHKEY_CURRENT_USER وHKEY_USERS\\.DEFAULT للبحث عن خوادم الوكيل التي جرى تكوينها محليًا.
في حال العثور على خادم، يُخزن كل من بروتوكول URL(http أو https أو ftp أو socks) وعنوان URL الكامل كسلاسل نصية في قائمة من الكائنات.
بعد ذلك، يخزن Toneshell نطاق خادم C2 وعنوان IP في متجه من السلاسل النصية. يُخزن عنوان IP والمنفذ المشفّران ضمنيًا نفسهما في مصفوفة من بنيات SOCKADDR_IN مباشرةً. ثم يمر البرنامج الضار عبر سلاسل خادم C2، ويحلل عنوان IP لكل منها ويضيفه إلى مصفوفة بنيات SOCKADDR_IN نفسها.
كما لوحظ في الإصدارات السابقة، يشرع Toneshell في نقل ملف يحتوي على معرّف GUID عشوائي للضحية مكون بحجم 16 بايت جرى إنشاؤه عبر دالة _rand() في Windows:
يُخزن GUID أيضًا في بنية مع مسار الملف واسم NetBIOS الخاص بالضحية.
تُستخدم البيانات أعلاه لإنشاء كائن إشارة في الذاكرة. وتجدر الإشارة إلى أن Toneshell9 يُجرى عمليات حسابية على الفرق في عدد تغييرات وحدة المعالجة المركزية قبل وبعد سلوك التهيئة الرئيسي المفصل أعلاه. يُجرى تسوية هذه القيمة، ومن المحتمل استخدامها لاكتشاف الحالات الشاذة في وقت التنفيذ والتي قد تشير إلى تأخر تنفيذ أو عملية تصحيح في آلية تحديد الوصول.
يُنشأ مفتاح XOR بحجم 0x300 بايت عبر _rand() ويُستخدم لتشفير 101 بايت من البيانات، بدءًا من قيمة التعويض 0x300. تُجمع البيانات المذكورة أعلاه في حزمة بيانات تطبيق TLS 1.2 مزيفة بالتنسيق التالي:
في أثناء الحلقة الرئيسية، ينفذ Toneshell9 دالة لإنشاء اتصال مقبس بخادم C2 الخاص به. يبدأ الأمر بمحاولة الاتصال عبر بنية SOCKADDR_IN الأولى. وإذا فشل ذلك، يحاول البرنامج الضار إعداد اتصال مقبس من خلال أي من خوادم الوكيل المجمعة من السجل. وتُطبق هذه المحاولة على كل سلسلة من عنوان C2، أي عنوان IP والنطاق المتعلقين بالعينة المحللة أعلاه.
بعد تحليل العنوان الخاص بخادم الوكيل والاتصال به عبر مقبس TCP، يضبط أولاً مهلة الإرسال والاستقبال على دقيقة واحدة. ثم، يُرسل طلب الاتصال التالي:
في حال إرجاع خادم الوكيل كود الحالة 2xx، فهذا يعني أنه قد جرى إنشاء الاتصال بنجاح وهو جاهز لإنشاء مسار TCP الأولي. وللتحقق من الاتصال بخادم C2، يستخدم Toneshell9 بروتوكول مصافحة قصير، كما يُرسل عنوان IP والمنفذ الخاصين بالخادم خلال هذه العملية. إذا نجحت المصافحة، يُخزن معرّف المقبس في بنية C2_CONNECTION وتُضبط مهلة المقبس على دقيقتين. ثم يُرسل Toneshell إشارة الإعلان الأولى عبر المقبس.
يتوقع ردًا مماثلاً من خادمه، والذي يُشفر، باستثناء أول 5 بايت، عبر مفتاح XOR المرسل مسبقًا:
عند استخدام وكيل جرى تكوينه بالفعل على جهاز مصاب، يمكن أن يندمج Toneshell بفعالية مع حركة مرور الشبكة الأخرى. غالبًا ما تفرض بيئات المؤسسات الأكبر حجمًا تصفية حركة المرور الخارجة، ما يسمح بحركة المرور من خلال البوابات الموثوقة فقط، وهو ما قد يؤدي إلى حظر اتصال C2 المباشر. تسمح إمكانات Toneshell المضافة للتحايل على هذه التصفية بالعمل في بيئات الشبكة المؤمنة جيدًا.
عند تلقي أول استجابة من C2، يبدأ Toneshell سلسلة جديدة ترسل إشارات استجابة شبيهة بنبضات القلب كل 30 ثانية، مع كود الاستجابة 0x1 وقيمة shell_id عشوائي. تتميز إشارات الاستجابة بتنسيق مشابه جدًا:
يدعم Toneshell9 أكواد الأوامر التالية:
الرمز | الوصف |
2 | تخطي هذه الإشارة وانتظر الإشارة التالية حتى تتعامل معها. |
3 | أنشئ اتصالاً عكسيًا جديدًا وحدد له معرّف shell_id. |
4 | اكتب سلسلة أمر إلى الاتصال العكسي ذي المعرّف shell_id |
5 | إنهاء الاتصال العكسي الذي رصده المعرّف shell_id |
على غرار الإصدارات السابقة، يُنشأ الاتصال العكسي باستخدام مسارات مجهولة متصلة بمعرّفات stdin و stdout الخاصة بعملية cmd.exe الجديدة. يدعم Toneshell9 إمكانية إجراء اتصالين عكسيين في وقت واحد ويستخدم الهيكل أدناه لإدارة الاتصال:
في كل اتصال عكسي، تُنشأ سلسلة جديدة للتحقق بانتظام من وجود بيانات جديدة من مسار stdout وإرسالها مرة أخرى إلى خادم C2 في إشارة تتضمن كود الاستجابة 0x4. يمكن لمشغلي Toneshell كتابة بيانات نصية إلى المسار باستخدام معرّف shell_id الصحيح وتنفيذ أوامر عشوائية على الجهاز. عند إنهاء الاتصال العكسي، تنتهي أيضًا عملية conhost.exe المحددة بالمعرّف parent_pid على الجهاز.
في أغسطس 2025، اكتشفت X-Force فيروس USB متنقل غير معروف سابقًا والذي نُسب إلى Hive0154. رُفع ملف DLL بحجم 32 بت إلى VirusTotal باسم "01.dat" من تايلاند ويعرض مزايا تشبه Toneshell9. يُنفذ كلاهما عبر تحميل DLL الجانبي، حيث تشير جميع الصادرات باستثناء DllEntryPoint ونقطة إدخال البرنامج الضار إلى الدالة نفسها، والتي تعود على الفور. كما أن كليهما يتميز بآليات تحليل واجهة برمجة تطبيقات متطابقة تقريبًا، وهو ما يتوافق مع معظم البرامج الضارة التي تخص Toneshell. على غرار عينة Toneshell، يقرأ SnakeDisk أيضًا وسيطة سطر أوامر لتحديد أحد مسارَي التنفيذ المحتملين:
لتنفيذ وظيفة الإصابة عبر USB، يتطلب SnakeDisk ملف تكوين يبحث عنه في المجلد الحالي للملف التنفيذي الأصلي. وستُضاف أي ملفات يُعثر عليها في هذا المجلد، ما لم تُسمى "معلومات وحدة تخزين النظام"، إلى قائمة ملفات التكوين المحتملة. يواصل Tonedisk فتح كل ملف وقراءته، ويختبر الشروط التالية للتحقق من الملف قبل البدء في فك التشفير.
ينتقل SnakeDisk إلى فك تشفير البيانات باستخدام خوارزمية XOR ثنائية الطور مخصصة على الأرجح ومفتاح بحجم 320 بايت مخزن في عنوان بحجم 330 بايت.
وأخيرًا، يحلل البرنامج الضار 18 قيمة نصية تحدد تكوين البرنامج الضار. لم تتمكن X-Force من استعادة ملف التكوين؛ ومع ذلك، كشف تحليل SnakeDisk عن الأغراض المحتملة التالية للقيم.
حقل التكوين | الغرض |
الإصدار | إصدار البرنامج الضار المستخدم لتحديد ما إذا كان يجب إعادة إصابة عميل مصاب بالفعل بإصدار محدث. |
mutx | سلسلة الاستبعاد المتبادل التكيفي. |
psd | لم يُستخدم في العينة المحللة. من المحتمل أن يكون المكافئ المحلي لقيمة "usd" - جميع قيم "u*" هي أسماء الملفات/المجلدات الموجودة على USB بعد اختراقها. |
urd | من المحتمل أن تعني "USB root directory". اسم المجلد المُنشأ على USB والذي يحتوي على مجلدات فرعية. |
uud | من المحتمل أن تعني "USB user directory". اسم مجلد ضمن <urd> يحتوي على الملفات الأصلية للمستخدم من USB. |
usd | من المحتمل أن تعني "USB staging directory". اسم مجلد ضمن <urd> يُخزن عناصر خبيثة مختلفة من SnakeDisk. |
pnex | من المحتمل أن تعني "parent name executable". اسم الملف الموجود في مجلد SnakeDisk الحالي في أثناء التنفيذ. |
pndl | من المحتمل أن تعني "parent name DLL". اسم الملف الموجود في مجلد SnakeDisk الحالي في أثناء التنفيذ. |
pnen | من المحتمل أن تعني "parent name encrypted". اسم الملف الموجود في مجلد SnakeDisk الحالي في أثناء التنفيذ. |
pnendl | من المحتمل أن تعني "parent name encrypted DLL". اسم الملف الموجود في مجلد SnakeDisk الحالي في أثناء التنفيذ. |
unex | من المحتمل أن تعني "USB name executable". اسم الملف المنسوخ من <pnex> إلى USB. |
undl | من المحتمل أن تعني "USB name DLL". اسم الملف المنسوخ من <pndl> إلى USB. |
unen | من المحتمل أن تعني "USB name encrypted". اسم الملف المنسوخ من <pnen> إلى USB. |
unendl | من المحتمل أن تعني "USB name encrypted DLL". اسم الملف المنسوخ من <pnendl> إلى USB. |
unendl_org | اسم الملف (DLL على الأرجح) المنسوخ من <pnendl> إلى مجلد USB الأساسي والمخفي عبر سمات الملف. |
unconf | اسم ملف تكوين SnakeDisk الذي نُقل إلى USB. |
regkey | قد يكون مرتبطًا بآلية استمرارية السجل. لم يُستخدم في العينة المحللة. |
schkey | قد يكون مرتبطًا بآلية استمرارية المهام المجدولة. لم يُستخدم في العينة المحللة. |
بعد قراءة ملف تكويناته بنجاح، سيحاول SnakeDisk التأكد من أنه يعمل حاليًا على جهاز موجود في تايلاند. حيث يُرسل طلب HTTP GET إلى http://ipinfo[.]io/json ويتحقق مما إذا كان حقل "الدولة" يتطابق مع "THA" أو "TH". وإذا كان يتطابق، يستمر التنفيذ.
والجدير بالذكر أن التنفيذ سيستمر أيضًا في حال حدوث خطأ في أثناء تحليل واجهات برمجة التطبيقات أو في أثناء الاتصال بالشبكة.
يضمن SnakeDisk بعد ذلك تشغيله في مثيل واحد فقط من خلال محاولة فتح كائن استبعاد متبادل تكيفي "Global\\<mutx config value>". إذا كان كائن الاستبعاد المتبادل التكيفي موجودًا بالفعل، يتوقف البرنامج الضار؛ وإلا، فإنه ينشئ كائن استبعاد متبادل تكيفي عبر CreateMutexW.
من أجل إصابة أي محرك أقراص USB متصل بالفعل، يبدأ SnakeDisk بفحص جميع أحرف محركات الأقراص المحتملة من الألف إلى الياء. ويفتح معرّفًا لوحدة التخزين الفعلية، مثل "\\.\A:" ويُرسل رمز التحكم في الإدخال والإخراج IOCTL_STORAGE_GET_HOTPLUG_INFO (0x2D0C14) إلى الجهاز. إذا كان الجهاز جهاز توصيل سريع وفقًا لبنية STORAGE_HOTPLUG_INFO المرتجعة، فإنه يُطلق سلسلة جديدة لإصابة محرك الأقراص هذا.
بعد استعراض جميع أحرف محرك الأقراص، يتوقف SnakeDisk لمدة 5 ثوانٍ ثم يسجل فئة نافذة جديدة باسم "TestClassName" ويُنشئ نافذة مقابلة باسم "TestWindowName". ولاسترجاع الرسائل من نظام التشغيل، تُنشئ الدالة حلقة Windows Message باستخدام GetMessageW وترسل الرسائل إلى إجراء نافذة البرنامج الضار عبر TranslateMessage وDispatchMessageW. ولا تتوقف الحلقة إلا عند تلقي رسالة WM_CAP_PAL_OPEN (0x450). تشير فئة النافذة الخبيثة إلى إجراء مخصص يتجسس على رسالة WM_DEVICECHANGE (0x219)، وعلى وجه التحديد أحداث DBT_DEVICEARRIVAL (0x8000) وDBT_DEVICEREMOVECOMPLETE (0x8004).
في حالة تلقي مثل هذه الرسالة، على سبيل المثال، عند توصيل جهاز USB بالجهاز المصاب، تستخدم الدالة حقل "dbcv_unitmask" في بنية DEV_BROADCAST_VOLUME لتحديد حرف محرك الأقراص الخاص بالجهاز المقابل. وبالنسبة إلى الأجهزة المتصلة حديثًا، تبدأ سلسلة جديدة لإصابة محرك الأقراص. إذا اكتشف SnakeDisk إزالة الجهاز، فإنه يبدأ سلسلة لنقل حمولته المدمجة وتنفيذها، ما يبدأ مسار التنفيذ نفسه الذي كان من الممكن أن يسببه تنفيذ SnakeDisk DLL باستخدام وسيطة سطر الأوامر "-hope".
تبدأ سلسلة إصابة جهاز USB المكتشف بالبحث في محرك الأقراص عن ملف تكوين موجود لتحديد ما إذا كان مصابًا بالفعل. وتحاول فك تشفير وتحليل تكوين من أي ملف يحمل الامتداد .dat أو .cd . عند تحليل التكوين، يقارن البرنامج الضار رقم إصدار محرك الأقراص المصاب بالفعل مع إصدار تكوينه الخاص وسيعيد إصابة محركات الأقراص التي تحتوي على إصدارات قديمة من SnakeDisk فقط.
يبدأ SnakeDisk عندئذٍ سلسلة أخرى لنقل الملفات الموجودة على USB إلى مجلد فرعي جديد. ومن خلال إخفاء الملفات التي يتوقع المستخدم وجودها على USB، يزيد البرنامج الضار من فرصة اعتقاد الضحية أن USB لم تُفتح بعد والنقر عن طريق الخطأ على الملف التنفيذي المخترق عند توصيله بجهاز جديد، ويحمل الملف اسم الجهاز نفسه. وبعد التنفيذ، ينسخ المشغل الخبيث ملفات المستخدمين في أماكنها مرة أخرى لتجنب أي شك. ينشأ المسار الذي يحتوي على بيانات المستخدم الموجودة على الجهاز المصاب من قيم التكوين على النحو التالي:
قد يستخدم البرنامج الضار آليتين مختلفتين للعملية؛ كل منهما تعمل في سلسلة خاصة بها. الأولى تستخدم SHFIleOperationW لنقل كل ملف، وخلال كل عملية، تقرأ أيضًا 32 بايت من ملف "C:\\Windows\\Tmp\\msd.log"، والتي تُكتب في ملف "C:\\ProgramData\\app.log" قبل حذف الأخير. والغرض من هذا السلوك غير واضح.
في أثناء تشغيل السلسلة، يتحقق البرنامج الضار بانتظام من الإكمال الناجح لمدة 30 ثانية قبل بدء السلسلة الثانية. تستخدم السلسلة الثانية robocopy لنقل الملفات وتنفذ الأمر التالي في عملية جديدة:
تستثني كلتا عمليتي نقل الملفات ملفات SnakeDisk المخترقة وملف "معلومات وحدة تخزين النظام"، والتي يجب أن تظل في المجلد الأساسي لقرص USB. بعد تشغيل الأمر المذكور أعلاه، يُجرى تشغيل الأمر نفسه مرة أخرى مع علامتين إضافيتين "/IS" و"/XO"، لتضمين الملفات نفسها، واستبعاد ملفات المجلد المصدر الأقدم من الملفات الموجودة في الوجهة.
بعد نقل الملفات الموجودة بالفعل على USB، ينتقل SnakeDisk لنسخ حمولاته من مجلده الحالي إلى محرك أقراص USB. تُنسخ الملفات التالية، كما هو محدد في التكوين، عبر CopyFileW، كل منها في سلسلة جديدة:
يُعيّن اسم ملف EXE الموجود في المجلد الأساسي لمحرك الأقراص USB على اسم وحدة التخزين الخاصة بجهاز USB، أو "USB.exe" فقط إذا كان الاسم فارغًا. يعيّن SnakeDisk أيضًا السمات SYSTEM وHIDDEN للملف المنسوخ إلى "<drive_letter>:\<unendl_org>". تحمل جميع المجلدات الموجودة على USB هذه السمات أيضًا، ما يؤدي إلى إخفاء كل شيء باستثناء الملف التنفيذي. على الرغم من أن X-Force لم تسترجع أيًا من الملفات الأخرى، إلا أن فيروسات USB المتنقلة في السابق كانت تستخدم التقنية نفسها لجذب الضحايا للنقر فوق الملف التنفيذي، ما كان يحمل ملف DLL جانبيًا لبدء الإصابة. من المحتمل أن يُخزن اسم ملف DLL الخبيث هذا في قيمة التكوين "unendl_org". وأخيرًا، يكتب SnakeDisk تكوينه في ملف جديد على USB بالاسم الموجود في القيمة "unconf".
تبدأ سلسلة SnakeDisk المسؤولة عن نقل حمولته المضمنة وتنفيذها عند اكتشاف إزالة جهاز USB، أو في بداية تنفيذ SnakeDisk عبر وسيطة سطر الأوامر "-hope".
أولاً، تقرأ السلسلة ملف علامة "vm.ini" في مجلده وتقارن المحتوى بمساره الحالي. يُكتب هذا الملف أيضًا بعد نقل الحمولات وتنفيذها بنجاح ويشير إلى ما إذا كانت الضحية قد أصيبت بالفعل بحمولة SnakeDisk المضمنة. وفي حال تطابقت المسارات، لن تُنقل أية حمولات وتتوقف السلسلة.
بعد الفحص الأول، يبدأ SnakeDisk بإسقاط سلسلة من الحمولات في المجلد "C:\Users\Public\". يُنشأ كل ملف في الذاكرة من خلال قيم فورية في دوال كبيرة تتراوح بين 0.6 و3.3 ميغابايت.
ثم يُفك تشفير الحمولات عبر عملية XOR بسيطة قبل نقلها كملفات إلى:
تُدمج هذه الملفات معًا في مجموعات ثلاثية لإنتاج حمولتين نهائيتين عبر الأوامر التالية:
يُنشأ اسم ملف .EXE من 10 أحرف كبيرة وأرقام عشوائية. بعد الدمج، تُحذف الملفات.
وأخيرًا، يُشغل الملف التنفيذي في عملية جديدة باستخدام وسيطة سطر أوامر مشفرة ضمنيًا:
ومما لا يثير الدهشة أن ملف EXE (bb5bb82e5caf7d4dbbe878b75b23f793a5f3c5ca6dba70d8be447e8c004d26ce) هو ملف تنفيذي شرعي وموقّع (acwebbrowser.exe) يحمل ملف libcef.dll الخبيث جانبيًا في أثناء التنفيذ.
جرى التعرف على حمولة DLL على أنها باب Yokai الخلفي، كما ورد في تقرير Netskope في ديسمبر 2024. عند التنفيذ، يتحقق البرنامج الضار أولاً من الوسيطة "-project-mod" ثم يؤسس الاستمرارية عبر مهمة مجدولة إذا لم يكن المستخدم عضوًا في مجموعة المسؤولين:
وينتقل إلى إنشاء كائن الاستبعاد المتبادل التكيفي الجديد "k1tpddvivh74fo1et725okr1c1" ويهيئ بنية التكوين الداخلية. يحتوي الإصدار الذي ينقله SnakeDisk على سلسلة الإصدار "1.0.0" ويصل إلى خادم C2 مشفر ضمنيًا عبر طلبات HTTP POST:
كما هو موضح في تحليل Netskope، يُستخدم Yokai لإنشاء اتصال عكسي من خلال مسارات مجهولة، ما يسمح للمشغلين بتنفيذ أوامر عشوائية على الجهاز المصاب.
ومن المثير للاهتمام، أن Yokai يتداخل مع عائلات أخرى من الأبواب الخلفية المنسوبة إلى Hive0154، مثل Pubload/Pubshell وToneshell. وعلى الرغم من أن هذه العائلات هي أجزاء منفصلة من برنامج ضار، إلا أنها تتبع البنية نفسها تقريبًا وتستخدم تقنيات مماثلة لإنشاء اتصال عكسي مع خادم C2.
كشف تحليل X-Force أيضًا عن وجود تداخلات قوية بين SnakeDisk وTonedisk. على مر السنين، كانت هناك العديد من عائلات فيروسات USB المتنقلة التابعة لمجموعة Hive0154. تتابع X-Force عن كثب الإصدارات المرتبطة بعائلة Toneshell في تطبيقاتها تحت اسم Tonedisk. حتى الآن، جرى التعرف على 3 إصدارات رئيسية من Tonedisk (A، وB وC). كل إصدار من إصدارات Tonedisk هي مجموعة من العناصر الخبيثة المختلفة التي تشكل الوظائف الكاملة لفيروس USB المتنقل. تتضمن هذه العناصر أدوات تشغيل ومحملات وموزعات وملفات مشفرة وأدوات تثبيت وأبواب خلفية.
يتداخل SnakeDisk على وجه التحديد مع الإصدار ToneDisk A، والذي أُبلغ عنه أيضًا في منتصف عام 2023 من Checkpoint تحت اسم WispRider. تتشابه آليات انتشار كلا البرنامجين الضارين عبر USB، وتجزئة واجهة برمجة التطبيقات وملفات التكوين من عدة أوجه، الأمر الذي يتماشى مع ميل مجموعات Hive0154 الفرعية المعروفة لمشاركة وإعادة استخدام البرامج الضارة فيما بينها.
تتبع X-Force النشاط الوارد في هذا التقرير ضمن مجموعة Hive0154، والتي تتداخل جزئيًا مع الأنشطة المنشورة تحت اسم Mustang Panda، وStately Taurus، وCamaro Dragon، وTwill Typhoon، وPolaris، وTEMP.Hex، وEarth Preta. يبدو أن هذه المجموعة تدير نظامًا بنائيًا كبيرًا من البرامج الضارة مع تداخلات متكررة في الكود الخبيث، والتقنيات المستخدمة في أثناء الهجمات، بالإضافة إلى عمليات الاستهداف. داخل المجموعة الأكبر، تقسم X-Force ثلاث مجموعات فرعية على الأقل من النشاط منخفض الثقة، وترتبط كل مجموعة ببرنامج ضار من السلالات المركزية مثل PlugX وToneshell وPubload. من الجدير بالذكر أن كل سلالة من البرامج الضارة تقترن بإطار عمل مختلف لفيروس USB المتنقل وإصدار واحد أو أكثر من إصدارات برامج المحملات الضارة ذات الصلة والتي تتغير بشكل متكرر. يمكن استخدام المحمل نفسه لحمولات مختلفة، مثل Toneshell أو Pubload، في الإطار الزمني نفسه. ومع ذلك، من المهم ملاحظة أن تجميع الأنشطة لا يشير تلقائيًا إلى أنهم يعملون كمجموعات فرعية منفصلة.
ربما يشير النشاط المرتبط باستخدام SnakeDisk والباب الخلفي Yokai إلى وجود مجموعة فرعية أخرى تابعة لمجموعة Hive0154. الواضح حاليًا أنها تستهدف تايلاند بشكل أساسي، كما يتضح من فحوصات تحديد الموقع الجغرافي لعناوين IP في SnakeDisk وتقارير Netskope.
لا يزال Hive0154 عنصر تهديد فائق الإمكانات ولديه العديد من المجموعات الفرعية النشطة ودورات تطوير متكررة. تُقدّر X-Force بثقة عالية أن مجموعات موالية للصين مثل Hive0154 سوف تواصل تحسين ترسانتها الكبيرة من البرامج الضارة وستستهدف المؤسسات العامة والخاصة في جميع أنحاء العالم. ومن المرجح أن البرنامج الضار الذي نوقش في التقرير أعلاه لا يزال في مرحلة التطوير المبكر، ما يسمح لفرق الحماية بتبني آليات اكتشاف قبل استخدامه على نطاق واسع. يجب على الكيانات المعرضة لخطر تجسس Hive0154 أن تظل في حالة أمنية دفاعية عالية وأن تظل يقظة فيما يتعلق بالتقنيات المذكورة في هذا التقرير وأن تستعرض التوصيات التالية:
المؤشر | نوع المؤشر | السياق |
f8b28cae687bd55a148d363d58f1 | SHA256 | أرشيف مخترق ينشر Toneshell8 |
8132beeb25ce7baed0b561922d26 | SHA256 | أرشيف مخترق ينشر Toneshell8 |
d1466dca25e28f0b7fae71d5c2abc0 | SHA256 | أرشيف مخترق ينشر Toneshell8 |
1272a0853651069ed4dc505007e85 | SHA256 | أرشيف مخترق ينشر Toneshell8 |
b8c31b8d8af9e6eae15f30019e39c | SHA256 | أرشيف مخترق ينشر Toneshell7 |
7087e84f69c47910fd39c3869a70 | SHA256 | أرشيف مخترق ينشر Pubload |
38fcd10100f1bfd75f8dc0883b0c | SHA256 | أرشيف مخترق ينشر Pubload |
69cb87b2d8ee50f46dae791b5a0 | SHA256 | ملف PDF يحتوي على عنوان URL لتنزيل أرشيف مخترق |
564a03763879aaed4da8a8c1d60 | SHA256 | محمل يحقن Toneshell7 |
e4bb60d899699fd84126f9fa0df | SHA256 | محمل يحقن Pubload |
c2d1ff85e9bb8feb14fd015dceee1 | SHA256 | محمل يحقن Pubload |
188.208.141[.]196 | IPv4 | خادم Pubload C2 |
bdbc936ddc9234385317c4ee83 | SHA256 | باب Toneshell8 الخلفي |
f0fec3b271b83e23ed7965198f3b | SHA256 | باب Toneshell8 الخلفي |
e7b29611c789a6225aebbc9fee37 | SHA256 | باب Toneshell8 الخلفي |
9ca5b2cbc3677a5967c448d9d21 | SHA256 | باب Toneshell8 الخلفي |
146.70.29[.]229 | IPv4 | خادم Toneshell7/Toneshell8 C2 |
318a1ebc0692d1d012d20d306 | SHA256 | باب Toneshell9 الخلفي |
0d632a8f6dd69566ad98db56 | SHA256 | أرشيف مخترق ينشر Toneshell9 |
39e7bbcceddd16f6c4f2fc2335a | SHA256 | أرشيف مخترق ينشر Toneshell9 |
05eb6a06b404b6340960d7a6 | SHA256 | محمل يحتوي على نسخة من Toneshell والتي كانت بمثابة أساس Toneshell9 |
123.253.34[.]44 | IPv4 | خادم Toneshell9 C2 |
www.slickvpn[.]com | النطاق | خادم Toneshell9 C2 |
dd694aaf44731da313e4594d | SHA256 | فيروس SnakeDisk USB المتنقل |
bb5bb82e5caf7d4dbbe878b7 | SHA256 | تُستخدم حمولة EXE غير الخبيثة الخاصة ببرنامج SnakeDisk في التحميل الجانبي لمكتبة DLL الخاصة بالباب الخلفي Yokai |
35bec1d8699d29c27b66e564 | SHA256 | ملف DLL الخاص بباب Yokai الخلفي |
http://118.174.183[.]89/kptinfo | عنوان URL | خادم Yokai C2 |
IBM X-Force Premier Threat Intelligence أصبح الآن مدمجًا مع OpenCTI من Filigran، ما يوفر استعلامات تهديدات عملية حول نشاط التهديد هذا وغيره الكثير. اكتسب معارف حول عناصر التهديد والبرامج الضارة ومخاطر المجال. بادر بتثبيت OpenCTI Connector لتعزيز الكشف والاستجابة، ما يعزز الأمن الإلكتروني لديك بالاستعانة بخبرة IBM X-Force. احصل على نسخة تجريبية من IBM X-Force Premier Threat Intelligence لمدة 30 يومًا الآن!