
تحليل هندسة عكسية لمتغير من برنامج Remcos RAT الخالي من الملفات والذي يحقن في svchost.exe عبر استدعاءات Native API. يغطي استخراج الحمولة المشوشة، الثبات في التسجيل، مراقبة الحافظة، ربط API، وتقنيات تجاوز UAC.
يوضح مقتطف Binary Ninja التالي آلية الحقن الأساسية التي يستخدمها Remcos لحقن حمولته في svchost.exe.
CreateProcessW مع العلم CREATE_SUSPENDED يبدأ عملية svchost جديدة في حالة معلقة.VirtualAlloc يخصص ذاكرة داخل العملية المستهدفة باستخدام علامات MEM_COMMIT و PAGE_READWRITE، مما يسمح بكتابة الحمولة مباشرة في ذاكرة العملية.WriteProcessMemory يكتب الحمولة في منطقة الذاكرة المخصصة من عملية svchost المعلقة.ReadProcessMemory يقرأ ذاكرة العملية المستهدفة، على الأرجح لاسترداد نقطة الدخول الأصلية أو للتحقق من الحقن.TerminateProcess يُستخدم لإنهاء عملية svchost المعلقة إذا فشل الحقن، لمنع تركها في حالة غير مستقرة.
عرض Binary Ninja لروتين حقن Remcos باستخدام Native APIs، يظهر MEM_COMMIT، PAGE_READWRITE، ReadProcessMemory، و TerminateProcess.
يضيف Remcos مفتاحًا إلى سجل Windows لإنشاء وجود دائم على النظام. يضمن هذا المفتاح إعادة تنفيذ البرنامج الضار في كل مرة يبدأ فيها النظام.
HKEY_USERS\S-1-5-21-3807688912-2840792520-522192237-1001\Software\kamolprf-CFKPWC
exepath مخزنة كـ REG_BINARY، لا يمكن قراءتها مباشرة. هذا يجعل الكشف أكثر صعوبة.UID و licence للمهاجم بتحديد الضحية وإجراء فحص الترخيص.time معلومات حول وقت تثبيت البرنامج الضار أو آخر تنفيذ له.
مفاتيح السجل والقيم exepath، licence، time، و UID بداخلها.
يظهر مقتطف WinDbg التالي دالة trampoline موجودة داخل عملية svchost.exe المحقونة. يبدو أن هذا الكود جزء من آلية خطاف API أو تنفيذ الحمولة في Remcos.
jmp qword ptr [svchost+0x9758] – على الأرجح خطاف أو trampoline يقفز إلى API أو دالة.mov / movdqa – حفظ واستعادة السجلات (xmm0-xmm3، rcx، rdx، r8، r9) للحفاظ على سياق الاستدعاء.call svchost+0x3e50 – استدعاء دالة أساسية، ربما تكون جزءًا من الحمولة أو معالج الخطاف.jmp rax – القفزة النهائية إلى الدالة الأصلية أو المرحلة التالية.INT3 – تعليمات مضادة للتصحيح لتعطيل التنفيذ في حالة وجود مصحح أخطاء.هذا الهيكل نموذجي لـ خطاف API أو دوال التحويل، حيث يعترض Remcos استدعاءات واجهات برمجة التطبيقات الحرجة في Windows. استخدام سجلات xmm (للعمليات ذات الفاصلة العائمة أو SIMD) يشير إلى أن هذا الخطاف قد يكون موضوعًا على دوال تستخدم تعليمات SSE.
عرض WinDbg لدالة trampoline داخل svchost.exe، يظهر تعليمات jmp و call مع فخاخ INT3.
تم استخراج التفريغ السداسي العشري التالي من منطقة ذاكرة PAGE_READWRITE داخل عملية svchost.exe المحقونة. لا تحتوي هذه المنطقة على أي تعليمات call أو jmp مباشرة، مما يؤكد أن البيانات ليست كودًا قابلًا للتنفيذ بل هي حمولة مبهمة أو مشفرة.
RPC Control و PC- مضمنة في البيانات.ctk، m، و mafasakaaam على أنها جزء من تكوين منظم، ربما تحتوي على مفاتيح تشفير أو أسماء API أو مسارات سجل.
عرض Binary Ninja للتفريغ السداسي العشري المبهم من منطقة PAGE_READWRITE في svchost.exe، يظهر سلاسل مضمنة مثل RPC Control و PC-.
تم تحليل الحمولة السداسية العشرية المبهمة المستخرجة من منطقة PAGE_READWRITE بشكل أكبر باستخدام عرض السلاسل النصية في Binary Ninja. على الرغم من الإبهام الشديد، ظهرت عدة سلاسل وأنماط قابلة للقراءة.
PC- (مثل PC-475ce3d749612b، PC-4a757962f31b84) – على الأرجح MachineGuid أو معرفات نظام فريدة تستخدم لتتبع الضحية.svchost.exe – اسم العملية المستهدفة، مما يؤكد ناقل الحقن..dll – تشير إلى أن Remcos إما يقوم بتحميل أو البحث عن DLLs محددة، ربما لخطاف API أو الثبات.ontroll\ – على الأرجح جزء من مسار سجل (Control\)، يشير إلى الثبات أو تخزين التكوين.EEF931 و 1AA81C6FD0CF04A816B – يبدو أنها GUIDs أو مفاتيح تشفير، ربما تُستخدم لفك تشفير الحمولة باستخدام XOR/AES.TEMP – يشير إلى إنشاء ملفات مؤقتة أو تنفيذ من المجلد المؤقت.
عرض السلاسل النصية في Binary Ninja للحمولة السداسية العشرية المبهمة، يظهر أجزاء قابلة للقراءة مثل PC-، svchost.exe، .dll، و EEF931.
كشف هذا التحليل عن متغير متطور للغاية وبدون ملفات من Remcos RAT يعمل ببصمة قرص ضئيلة وتقنيات مراوغة متقدمة. يقوم البرنامج الضار بحقن حمولته الأساسية في svchost.exe باستخدام استدعاءات Native API مثل ZwCreateSection و ZwMapViewOfSection، مما يضمن الثبات والتخفي.
PC-، svchost.exe، .dll، و EEF931.HKEY_USERS\...\Software\kamolprf-CFKPWC، مخزنًا قيم exepath، licence، time، و UID المشفرة.svchost.exe بحثًا عن مناطق ذاكرة غير طبيعية (PAGE_READWRITE).Software\kamolprf-CFKPWC.ZwCreateSection و ZwMapViewOfSection القادمة من عمليات غير نظامية.PC- و EEF931.يظهر هذا المتغير من Remcos مستوى عاليًا من الاحترافية ومن الواضح أنه مصمم لتجنب حلول الأمان التقليدية. إن الجمع بين التنفيذ بدون ملفات وحقن العمليات والثبات القائم على السجل يجعله تهديدًا كبيرًا يتطلب استراتيجيات كشف متقدمة.
الأدوات المستخدمة: Ghidra، Binary Ninja، WinDbg، Process Hacker
عينة Remcos RAT التي تم تحليلها متاحة على MalwareBazaar لمن يرغب في إجراء تحليله الخاص:
| API | الغرض في Remcos |
|---|
| CreateProcessW | يبدأ svchost في حالة معلقة للحقن. |
| VirtualAlloc | يخصص ذاكرة باستخدام MEM_COMMIT و PAGE_READWRITE للحمولة. |
| WriteProcessMemory | يكتب الحمولة في الذاكرة المخصصة. |
| ReadProcessMemory | يقرأ ذاكرة العملية المستهدفة (تُستخدم للتحقق أو استرداد نقطة الدخول). |
| TerminateProcess | يُنهي العملية المعلقة إذا فشل الحقن. |
| اسم القيمة | النوع | القيمة | الوصف |
|---|
| exepath | REG_BINARY | بيانات ثنائية مشفرة | مسار الملف المشفر لـ Remcos أو حمولته المحقونة. من المحتمل أن يكون محميًا عبر XOR أو AES. |
| licence | REG_SZ | DA8E22D4CD8D349953DF1FAD364CAB05 | مفتاح ترخيص Remcos. قد يكون قيمة ثابتة في الإصدارات المقرصنة أو التجريبية. |
| time | REG_DWORD | 0x6a53ac27 (1783868455) | وقت التثبيت أو آخر تنفيذ بتنسيق الطابع الزمني Unix. |
| UID | REG_DWORD | 0xfeb60bd4 (4273343444) | معرف مستخدم فريد. يُستخدم لتحديد الضحية. |