
نواصل الحديث عن أنشطة مجموعة القراصنة TA505. إن العبارة المعروفة "الجديد هو النسيان القديم" هي الأنسب كرسالة مكتوبة على الفصل التالي من القصة حول المجموعة TA505. صحيح ، هذه المرة "القديم" ليس "منسيًا" بقدر ما يتم إعادة صياغته وتحسينه.
في أوائل شهر سبتمبر ، اكتشفنا العديد من برامج التنزيل الضارة التي تم تعبئتها مع برنامج PE-packer الخاص للمجموعة التي
كتبنا عنها سابقًا . للوهلة الأولى ، بدوا وكأنهم مشجعي مستتر FlawedAmmyy المعروفة. لكن التحليل الأعمق أظهر أن هذا ليس كذلك. لم تكن التقنيات الأكثر تقدمًا في كتابة الكود هي التي دفعتنا إلى عكس الحمولات بشكل جذري من حيث جودة التنفيذ.
في هذه المقالة ، سوف نلقي نظرة فاحصة على الأدوات التي تم العثور عليها ونرسم أوجه الشبه مع ما هو معروف بالفعل.
بووتلوأدر twein
بادئ ذي بدء ، فيما يلي فضوليين: من بين جميع نماذج أداة تحميل التشغيل التي تمكنا من جمعها ، واحدة فقط لها توقيع رقمي:
التين. 1. التوقيع الرقمي لل بووتلوأدرشهادة صادرة باسم PEAR SOLUTIONS LTD. بالمناسبة ، ليست هذه هي المرة الأولى التي توقع فيها مجموعة أدواتها ، لتمريرها كبرنامج شرعي للمنظمات الوهمية. فيما يلي بعض الأسماء الأخرى التي استخدمت TA505 لعائلات البرامج الضارة الأخرى:
- وآخرون هومز ،
- صالح و فليكس محدودة ،
- ميشا لندن المحدودة ،
- SATOJI KAIDA MB ،
- محدودة للغاية.
نظرًا لأن برامج تحميل التمهيد التي تم اكتشافها لا تختلف فيما بينها ، فإننا نختار أداة التوقيع المذكورة أعلاه ونتحدث عنها بمزيد من التفاصيل.
خلال عمل البرامج الضارة ، يكون كل إجراء تقريبًا مصحوبًا بالكتابة إلى ملف السجل وإخراج تصحيح كل ما يحدث:
التين. 2. تصحيح الإخراج وتسجيللا يؤدي هذا التتبع إلى تبسيط التحليل الثابت للملف فحسب ، ولكنه يساعد أيضًا في اكتشاف الأخطاء في أنظمة التحليل الديناميكي:
التين. 3. تصحيح الإخراج في محلل ANY.RUN عبر الإنترنتيتحقق Troyan من تخطيط لغة لوحة المفاتيح - ولا يعمل في روسيا والبلدان المجاورة:
التين. 4. التحقق من تخطيط لغة لوحة المفاتيحبعد ذلك ، يقوم بإنشاء mutex
Global\system32_mutant_service
والتحقق من توفر الإنترنت باستخدام طلب HTTP GET إلى google.com. بعد ذلك ، تحدد طريقة الوصول إلى الشبكة (عنوان مخصص أو
NAT ) من خلال تحديد عنوان IP الخارجي من خلال خدمات myexternalip.com و ipecho.net و ifconfig.me ومقارنة القيمة التي تم الحصول عليها مع تلك المحددة في معلمات شبكة النظام:
التين. 5. مقارنة عناوين IP الداخلية والخارجيةبعد ذلك ، تحدد البرامج الضارة إصدار المكتبة
%SystemRoot%\system32\crypt32.dll
، وإذا كان رقم
18741
ورقم المراجعة أقل من
7601
و
18741
على التوالي ، يقوم بتحميل وتثبيت التحديث
KB3033929
وفقًا لإصدار نظام التشغيل:
التين. 6. قم بتنزيل وتثبيت تحديثات النظامالمهاجمون TA505 تعتني الضحية وتصحيح النظام حسب الحاجة؟ لا على الإطلاق. يرتبط تثبيت التحديث بإنهاء الدعم لشهادات أمان الكود الموقعة باستخدام SHA-1 والتخلي عنه لصالح خوارزمية SHA-2. على الأرجح ، واجه المتسللون بالفعل صعوبة في تشغيل الحمولات الموقعة على الأنظمة غير المحدثة. ومن المثير للاهتمام ، بعد تثبيت التحديث ، يرسل طروادة سجل الإجراء الذي تم إنشاؤه إلى خادم الإدارة ، ويتوقف عن عمله ويمسح نفسه ، محو الآثار المتبقية.
التين. 7. إيقاف التشغيل بعد تثبيت تحديث النظامإذا لم يكن تثبيت التحديث مطلوبًا ، يقوم أداة تحميل التشغيل بجمع وإرسال المعلومات التالية إلى خادم الإدارة:
- معلومات النظام
- معلومات حول البرامج المثبتة ،
- معلومات حول البرامج الموقعة في الدلائل٪ ProgramFiles٪ و٪ ProgramFiles (x86)٪ (إن وجدت) ،
- معلومات حول برامج التشغيل الموقعة في الدليل٪ SystemRoot٪ \ drivers.
لاحظ أنه تم استخدام
رمز شرعي للحصول على معلومات حول التوقيعات.
التين. 8. الحصول على معلومات الشهادةبعد ذلك ، يقوم أداة تحميل التشغيل بإنشاء الدليل
C:\Windows\Logs\diag
ويبدأ سلسلة
C:\Windows\Logs\diag
التي يتتبع بها التغييرات في الدليل ، وإرسال الإشعارات إلى خادم الإدارة:
التين. 9. رصد التغييرات الدليلثم تقوم بإعداد المعلومات الموجودة والمفقودة حول النظام (اسم المستخدم أو إصدار النظام أو المجال أو عنوان IP أو معلومات بطاقة الفيديو أو اتصال الشبكة - NAT أم لا NAT) وتقوم بإنشاء ملف JSON من هذا النوع:
{ "adm": "0", "bid": "M3xwwhqLH/AUOhmU2+W55A==", "bit": "1", "bnet": "ldr", "cam": "0", "cis": "0", "dmn": "WORKGROUP", "hash_r": "0", "lip": "192.168.100.153", "lvl": "0", "nat": "1", "osb": "0", "osv": "Windows 7 Professional", "pc": "USER-PC", "proc_c": "0", "proc_n": "cpu", "rep": 0, "tmt": "0", "ver": "163", "video": "Standard VGA Graphics Adapter," }
في وقت لاحق ، سيتم تشفير هذه البيانات باستخدام RC4 (
gJypA9RWUlYpnBbzujVqE6fDcEAk0zoz
تشفير مفتاح التشفير
gJypA9RWUlYpnBbzujVqE6fDcEAk0zoz
في نص تروجان) ، وسيتم تشفيره باستخدام Base64 وإرساله بواسطة طلب HTTP POST إلى خادم الإدارة:
التين. 10. طلب HTTP POST لخادم الإدارة
التين. 11. قائمة خوادم التحكم في محمل الإقلاعيتم فك تشفير الاستجابة من الخادم بواسطة RC4 (مفتاح التشفير هو نفسه المستخدم لإرسال البيانات) ويتم التحقق منه: يجب أن تتوافق أول وحدتي بايت مع خط MZ ، والذي يعد علامة على ملف PE. لقد التقينا بالفعل بهذا التسلسل في وقت سابق عندما قمنا بتحليل محمل مجموعة آخر قام بتسليم FlawedAmmyy RAT:
التين. 12. رمز مشابه لفك تشفير وفحص الملف الذي تم تنزيله من أجل محمل الإقلاع المعني (يسار) ومحمل الإقلاع FlawedAmmyy RAT (يمين)يحدث تحميل الحمولة الصافية ليس فقط في الخيط الرئيسي ، ولكن أيضًا في خيط تم إنشاؤه بشكل منفصل. بمعنى آخر ، هناك نوعان من الحمولات. في إحدى الحالات ، يتم التحقق المسبق من كائن المزامنة العمومية \ system32_host_service ، وفي حالة غيابه ، يتم تحميل المكون ، والذي يشار إليه في معلومات التصحيح على أنه حمولة أو برنامج روبوت. ومن المثير للاهتمام ، بعد تلقي استجابة من الخادم ، لا يبدأ ملف PE بأي شكل من الأشكال. بدلاً من ذلك ، تتم كتابة جسمه إلى التسجيل في قسم
HKEY_LOCAL_MACHINE\SYSTEM
في المفتاح
0x228028
. ثم يقوم أداة تحميل التشغيل بتعطيل إعادة توجيه نظام الملفات WoW64 للتطبيقات ذات 32 بت باستخدام
Wow64DisableWow64FsRedirection
ويبدأ عملية
%SystemRoot%\System32\services.exe
مع المعلمة -ww. لا يعتبر استخدام هذه المعلمة منطقيًا ، لكن هذا يكمل سلسلة تثبيت الحمولة الناتجة.
التين. 13. تحديد الحمولةسنتحدث عن الحمولة الثانية لاحقًا.
الإضافات توين
عند فحص طروادة التي تمت مناقشتها أعلاه ، لاحظنا وجود وظيفة تزيل ملفين من دليل
%SystemRoot%
-
twein_32.dll
و
twein_64.dll
:
التين. 14. إزالة ملفات twein_32.dll و twein_64.dllلم يتم العثور على هذه الملفات في أي مكان آخر ، فهي لا تظهر في منطق أداة تحميل التشغيل. ومع ذلك ، ذكّرتنا أسماء المكتبات بمجموعة أخرى من البرامج الضارة ، والتي سننظر فيها الآن.
قبل شهرين ، وجدنا طروادة من المجموعة TA505 ، حوالي 9 ميغابايت في الحجم. يتم حزم الملف بواسطة
UPX . يتم تثبيت طروادة في النظام كخدمة
WMDICToss
. تحتوي الموارد على ثلاثة ملفات:
systemdiron.bat
و
twein__32.dll
و
twein__64.dll
، والتي يتم تشفيرها باستخدام XOR الخطي.
التين. 15. فك تشفير أحد موارد القطارةلاحظ أن أسماء الملفين تتوافق تقريبًا مع تلك المذكورة سابقًا: الفرق هو فقط في عدد الشرطة السفلية.
من المتوقع أن يكون أحد الموارد التي تم فك تشفيرها باسم
systemdiron.bat
برنامج نصي للأوامر يوفر بدء تشغيل مكونات أخرى وفقًا لسعة النظام:
@echo off if defined PROCESSOR_ARCHITEW6432 (goto LABEL_X64) if %PROCESSOR_ARCHITECTURE%==IA64 (goto LABEL_X64) if %PROCESSOR_ARCHITECTURE%==AMD64 (goto LABEL_X64) if %PROCESSOR_ARCHITECTURE%==x86 (goto LABEL_X86) goto LABEL_NON :LABEL_X64 echo OS type: x64 copy c:\temp\tmp.log c:\i.txt rundll32.exe C:\Windows\twein__64.dll,Install copy c:\temp\tmp.log c:\i.txt rundll32.exe C:\Windows\twein__32.dll,Install del c:\temp\tmp.log del c:\i.txt shutdown.exe -r -t 00 goto LABEL_END :LABEL_X86 echo OS type: x86 copy c:\temp\tmp.log c:\i.txt rundll32.exe C:\Windows\twein__32.dll,Install del c:\temp\tmp.log del c:\i.txt shutdown.exe -r -t 00 goto LABEL_END :LABEL_NON echo OS type: undefined goto LABEL_END :LABEL_END pause
كلا المكتبات twein تتصرف بالمثل. معبأة مع باكر مميزة من المجموعة TA505. أسماء المكتبات الأصلية:
av_block.dll
. التحليل معقد بشكل كبير عن طريق استخدام obfuscator ، ونسبة الشفرة المبهمة حوالي 80 ٪. نتيجة لذلك ، يتم تنفيذ البرنامج مع العديد من التحولات ، فك تشفير خطوات التعليمات البرمجية التالية ، استدعاءات الوظائف غير الخطية.
تحتوي المكتبات على قائمة رائعة من السلاسل التي تشبه Base64 ، والتي يتم فك تشفيرها على النحو التالي:
1. تنقسم سلسلة الإدخال إلى كتل من 4 بايت ؛
2. يتم فك تشفير كل كتلة باستخدام خوارزمية الاستبدال والانتقال:
import binascii def block_decode(input_str, len_of_block): alphabet = '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3E\x00\x00\x00\x3F\x34\x35\x36\x37\x38\x39\x3A\x3B\x3C\x3D\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x00\x00\x00\x00\x00\x00\x1A\x1B\x1C\x1D\x1E\x1F\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2A\x2B\x2C\x2D\x2E\x2F\x30\x31\x32\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' int_result = 0 for i in range(len_of_block): alph = ord(alphabet[ord(input_str[i])]) alph <<= 0x6 * i int_result += alph str_result = hex(int_result)[2:] if len(str_result) % 2 != 0: str_result = '0' + str_result return binascii.unhexlify(str_result).decode('latin1')[::-1]
3) يتم جمع الكتل في سطر واحد ؛
4) يتم فك تشفير النتيجة بواسطة خوارزمية
eexec باستخدام مفتاح مزدوج البايت ، يتم تمريره كمعلمة:
التين. 16. تنفيذ خوارزمية eexecمعظم الأسطر هي أسماء ومسارات ملفات منتجات مكافحة الفيروسات ، لكن بعضها لا ينتمي إلى أدوات الأمان على الإطلاق: MS Exchange Server ، و MySQL Server ، و SAP ، و Apache ، و PostgreSQL ، و Elasticsearch ، وما إلى ذلك.
- C: \ Users \ tislam \ Desktop \ salik app \ Aye_salik_data \ Aye_salik_data \ bin \ Debug \ Aye_salik_data.exe
- C: \ oem13c \ agent13c \ agent_13.2.0.0.0 \ perl \ bin \ perl.exe
- C: \ Users \ adadmin \ Ubiquiti UniFi \ bin \ mongod.exe
- C: \ Users \ sakella \ AppData \ Local \ Microsoft \ OneDrive \ OneDrive.exe
- D: \ Add-ons \ IMI_CREDIT_POLICY Test v 02.01 \ IMI_CREDIT_POLICY.exe
إذا تم العثور على البرنامج في النظام من القائمة ، يتم حذف الملفات والدلائل.
لتأمين أنفسهم في النظام ، وضعت المكتبات نفسها كواجهة
Windows Sockets Service Provider (SPI) ، والمشار إليها باسم Intel و IntelFiltr. بالإضافة إلى ذلك ، يغيرون ترتيب معالجات في سلسلة البروتوكول ليكون SPI الأول لمعالجة طلب العميل.
في عام 2015 ، قدم زملاؤنا في
FireEye تحليل روبوت
LatentBot . من الغريب أن خوارزمية تشفير السلسلة في LatentBot ومكتبات twein التي تمت مراجعتها متماثلة تمامًا. بالإضافة إلى ذلك ، يستخدم LatentBot وحدة أمان واحدة من المكونات الإضافية ، التي تبحث عن أدوات الأمان في النظام باستخدام المسارات المحددة وأسماء المنتجات ، على الرغم من أنها تقتصر على التحقق من توافرها.
رووتكيت توين
العودة إلى أداة تحميل التشغيل ، وهي الحمولة الثانية. من خطوط التصحيح لمحاولة فتح برنامج rootkit ... وتثبيت Driver٪ S ، من السهل تخمين تنسيق الحمولة التالية. بعد التحميل الناجح ، سيتم كتابة برنامج التشغيل إلى دليل
%SystemRoot%\System32\drivers
باسم مكون بطريقة عشوائية زائفة من أسماء الملفات الشرعية الأخرى. ثم سيتم إنشاء الخدمة وإطلاقها:
التين. 17. تثبيت وبدء الخدمةفي المرحلة الأخيرة من عمله ، سيقوم المحمل بتكوين برنامج التشغيل ليتم إدراجه في مفاتيح التسجيل: سيتم إدخال أسماء عمليات مكافحة الفيروسات وأدوات التحليل وبائعي الحماية في توقيعات الملفات الرقمية في القيم الرقمية المحددة لمفاتيح فرع
HKEY_LOCAL_MACHINE\SYSTEM
:
التين. 18. تكوين سائق القائمة السوداءفي عملية البحث عن أداة تحميل التشغيل ، لم نتمكن من الحصول على عينة برنامج تشغيل من خادم الإدارة. ومع ذلك ، وجدنا
إشارة إلى الجذور الخفية التي تم ضخها بواسطة
أداة تحميل أخرى مماثلة.
تم توقيع برنامج التشغيل رقميًا باسم
Lizas Limited
مع
Lizas Limited
إلكتروني:
التين. 19. سائق موقع رقمياخلال البحث ، وجدنا الكثير من
القواسم المشتركة مع الجذور الخفية المعروفة من الروبوتات Necurs ، والتي كانت تستخدم بنشاط من قبل مجموعة TA505 لإرسال البريد المزعج ونشر البرامج الضارة. دعونا نفكر بمزيد من التفصيل في السمات الأكثر إثارة للاهتمام في عمله.
يسجل برنامج التشغيل معالجات الأحداث لبدء العمليات وتحميل صور PE باستخدام
PsSetCreateProcessNotifyRoutine
و
PsSetLoadImageNotifyRoutine
. بمعنى آخر ، يسمح هذا للسائق بالتحكم في إطلاق جميع العمليات والخدمات الجديدة. باستخدام القوائم السوداء التي ذكرناها سابقًا ، يقوم برنامج الجذور الخفية بإنهاء العمليات غير المرغوب فيها باستخدام ZwTerminateProcess ويمنع برامج التشغيل الأخرى التي يحتمل أن تكون خطرة عليه من التحميل ، الكتابة فوق قيمة نقطة الإدخال في التعليمات:
mov eax, 0C0000001 retn 8
نتيجة لذلك ، سيتم إلغاء تحميل الخدمة بسبب الخطأ
STATUS_UNSUCCESSFULL
.
التين. 20. الانتهاء من العملية
التين. 21. استبدال نقاط دخول السائقعن طريق CmRegisterCallback ، يعترض برنامج التشغيل أحداث الوصول إلى سجل النظام. على وجه الخصوص ، يتم توصيف عمله الإضافي بالقيم العددية للمفاتيح التي يتم الوصول إليها في الأحداث التي تم اعتراضها.
التين. 22. إدارة الجذر من الوصول إلى مفتاح التسجيلومن المثير للاهتمام ، في بعض إصدارات rootkit Necurs ، تم استخدام نفس القيم العددية كرموز طلب ioctl.
التين. 23. إدارة الجذور الخفية Necurs باستخدام استفسارات ioctlيمكن اعتبار هذه الخدعة كخطوة نحو مزيد من السرية: يؤدي الوصول إلى السجل إلى وجود شكوك أقل من طلبات ioctl إلى DeviceObject.
يحتوي جسم الجذور الخفية على مكتبة DLL مساعدة مشفرة مع XOR أحادية البايت. عند إنشاء عملية جديدة ، يقوم برنامج التشغيل بحقن المكتبة إلى جانب ملف PE آخر ، يتم استخراجه من السجل وفك تشفيره مرة أخرى باستخدام XOR أحادي البايت.
التين. 24. فك التشفير وحقن المكتبة المساعدة في العملية التي تم إنشاؤهاالمكون الإضافي هو أداة تحميل
عاكسة مخصصة تضع بشكل صحيح ملف PE الثاني في الذاكرة ، والذي يعمل كحمولة ، وينقل التحكم إليه. الآن يصبح من الواضح كيف بالضبط الحمولة التي تم كتابتها إلى السجل من قبل محمل الإقلاع من الجزء الأول من المقالة تبدأ في العمل.
التين. 25. ملء جدول الاستيراد مع مكتبة مساعدةاستنتاج
في المقالة ، تعرفنا على ميزات عمل العديد من أحصنة طروادة المزدوجة. لماذا التوائم؟ يشبه محمل الإقلاع الخبيث الذي بدأنا به بحثنا إلى جانب مُحمل الإقلاع الخلفي المعروف FlawedAmmyy في جودة كتابة التعليمات البرمجية والفروق الدقيقة في التنفيذ. غالبًا ما تكون المكتبات التي يحاول إزالتها من النظام هي المكتبات التي ننظر إليها بعد ذلك. تشبه المكتبات إلى حد كبير مكون أمان LatentBot. أحد الحمولات النافعة لمحمل الإقلاع هو محرك مشتق من الجذور الخفية Necurs الشعبية.
يزيد عمر بعض البرامج الضارة عن 5 سنوات ، ومع ذلك ، يواصل المهاجمون تحديثها وتحسينها ، مع مراعاة تطوير أنظمة التشغيل وأدوات الأمان.
المؤلفون : أليكسي فيشناكوف ودانييل كولوسوف ، تقنيات إيجابية
شركات النفط العالميةa28a54abc30805cc6ea2ce0732989287 - محمل الإقلاع
f6b6526b8d494dce14568e3703368432 - قطرة المكونات الإضافية twein
983dd279722154a12093410067fe070e - rootkit Twein
المقالات السابقة في السلسلة: