
एक फ़ाइलरहित Remcos RAT वेरिएंट का रिवर्स इंजीनियरिंग विश्लेषण जो Native API कॉल्स के माध्यम से svchost.exe में इंजेक्ट होता है। इसमें अस्पष्ट पेलोड निष्कर्षण, रजिस्ट्री स्थिरता, क्लिपबोर्ड मॉनिटरिंग, API हुकिंग और UAC बाइपास तकनीकों को शामिल किया गया है।
निम्नलिखित Binary Ninja स्निपेट Remcos द्वारा svchost.exe में अपने पेलोड को इंजेक्ट करने के लिए उपयोग किए जाने वाले मुख्य इंजेक्शन तंत्र को प्रकट करता है।
CreateProcessW CREATE_SUSPENDED फ्लैग के साथ एक नई svchost प्रक्रिया को निलंबित अवस्था में शुरू करता है।VirtualAlloc MEM_COMMIT और PAGE_READWRITE फ्लैग का उपयोग करके लक्ष्य प्रक्रिया के अंदर मेमोरी आवंटित करता है, जिससे पेलोड को सीधे प्रक्रिया मेमोरी में लिखा जा सकता है।WriteProcessMemory पेलोड को निलंबित svchost प्रक्रिया के आवंटित मेमोरी क्षेत्र में लिखता है।ReadProcessMemory लक्ष्य प्रक्रिया की मेमोरी को पढ़ता है, संभवतः मूल प्रवेश बिंदु को पुनः प्राप्त करने या इंजेक्शन को मान्य करने के लिए।TerminateProcess इंजेक्शन विफल होने पर निलंबित svchost प्रक्रिया को समाप्त करने के लिए उपयोग किया जाता है, जिससे यह अस्थिर अवस्था में न रहे।
Binary Ninja में Remcos के इंजेक्शन रूटीन का दृश्य, जिसमें MEM_COMMIT, PAGE_READWRITE, ReadProcessMemory, और TerminateProcess दिख रहे हैं।
Remcos सिस्टम पर स्थायी उपस्थिति स्थापित करने के लिए विंडोज रजिस्ट्री में एक कुंजी जोड़ता है। यह कुंजी सुनिश्चित करती है कि मैलवेयर हर बार सिस्टम शुरू होने पर फिर से निष्पादित हो।
HKEY_USERS\S-1-5-21-3807688912-2840792520-522192237-1001\Software\kamolprf-CFKPWC
exepath मान REG_BINARY के रूप में संग्रहीत है, इसे सीधे नहीं पढ़ा जा सकता। इससे पता लगाना अधिक कठिन हो जाता है।UID और licence मान हमलावर को पीड़ित की पहचान करने और लाइसेंस जांच करने की अनुमति देते हैं।time मान यह जानकारी प्रदान करता है कि मैलवेयर कब स्थापित या अंतिम बार निष्पादित हुआ।
रजिस्ट्री कुंजियाँ और उनके अंदर exepath, licence, time, और UID मान।
निम्नलिखित WinDbg स्निपेट इंजेक्टेड svchost.exe प्रक्रिया के अंदर पाए गए एक ट्रैम्पोलिन फ़ंक्शन को दिखाता है। यह कोड Remcos के API हुकिंग या पेलोड निष्पादन तंत्र का हिस्सा प्रतीत होता है।
jmp qword ptr [svchost+0x9758] – संभवतः एक हुक या ट्रैम्पोलिन जो किसी API या फ़ंक्शन पर कूदता है।mov / movdqa निर्देश – कॉलिंग संदर्भ को संरक्षित करने के लिए रजिस्टरों (xmm0-xmm3, rcx, rdx, r8, r9) को सहेजें और पुनर्स्थापित करें।call svchost+0x3e50 – एक मुख्य फ़ंक्शन को कॉल करता है, जो संभवतः पेलोड या हुक हैंडलर का हिस्सा है।jmp rax – मूल फ़ंक्शन या अगले चरण के लिए अंतिम कूद।INT3 ट्रैप – एंटी-डीबगिंग निर्देश जो डीबगर संलग्न होने पर निष्पादन को तोड़ देते हैं।यह संरचना API हुकिंग या डिटोर फ़ंक्शन की विशिष्ट है, जहाँ Remcos महत्वपूर्ण विंडोज APIs के कॉल को इंटरसेप्ट करता है। xmm रजिस्टरों का उपयोग (फ्लोटिंग-पॉइंट या SIMD ऑपरेशन के लिए) सुझाव देता है कि यह हुक उन फ़ंक्शनों पर रखा जा सकता है जो SSE निर्देशों का उपयोग करते हैं।
WinDbg में svchost.exe के अंदर ट्रैम्पोलिन फ़ंक्शन का दृश्य, जिसमें INT3 ट्रैप के साथ jmp और call निर्देश दिख रहे हैं।
निम्नलिखित हेक्स डंप इंजेक्टेड svchost.exe प्रक्रिया के अंदर PAGE_READWRITE मेमोरी क्षेत्र से निकाला गया था। इस क्षेत्र में कोई सीधे call या jmp निर्देश नहीं हैं, जो पुष्टि करता है कि डेटा निष्पादन योग्य कोड नहीं है बल्कि एक अस्पष्टीकृत या एन्क्रिप्टेड पेलोड है।
RPC Control और PC- डेटा के अंदर एम्बेडेड हैं।ctk, m, और mafasakaaam एक संरचित कॉन्फ़िगरेशन का हिस्सा प्रतीत होते हैं, जिसमें संभवतः एन्क्रिप्शन कुंजियाँ, API नाम, या रजिस्ट्री पथ शामिल हैं।
Binary Ninja में svchost.exe के PAGE_READWRITE क्षेत्र से अस्पष्टीकृत हेक्स डंप का दृश्य, जिसमें RPC Control और PC- जैसी एम्बेडेड स्ट्रिंग्स दिख रही हैं।
PAGE_READWRITE क्षेत्र से निकाले गए अस्पष्टीकृत हेक्स पेलोड का Binary Ninja के स्ट्रिंग्स दृश्य का उपयोग करके और विश्लेषण किया गया। भारी अस्पष्टीकरण के बावजूद, कई पठनीय स्ट्रिंग्स और पैटर्न उभर कर आए।
PC- उपसर्ग वाली स्ट्रिंग्स (जैसे, PC-475ce3d749612b, PC-4a757962f31b84) – संभवतः MachineGuid या पीड़ित ट्रैकिंग के लिए उपयोग किए जाने वाले अद्वितीय सिस्टम पहचानकर्ता।svchost.exe – लक्ष्य प्रक्रिया का नाम, इंजेक्शन वेक्टर की पुष्टि करता है।.dll एक्सटेंशन – इंगित करता है कि Remcos विशिष्ट DLLs को लोड या खोजता है, संभवतः API हुकिंग या स्थायित्व के लिए।ontroll\ – संभवतः रजिस्ट्री पथ का एक टुकड़ा (Control\), जो स्थायित्व या कॉन्फ़िगरेशन भंडारण को इंगित करता है।EEF931 और 1AA81C6FD0CF04A816B – ये GUID या एन्क्रिप्शन कुंजियाँ प्रतीत होते हैं, संभवतः पेलोड के XOR/AES डिक्रिप्शन के लिए उपयोग किए जाते हैं।TEMP – अस्थायी फ़ाइल निर्माण या टेम्प निर्देशिका से निष्पादन का सुझाव देता है।
Binary Ninja स्ट्रिंग्स दृश्य में अस्पष्टीकृत हेक्स पेलोड, जिसमें PC-, svchost.exe, .dll, और EEF931 जैसे पठनीय टुकड़े दिख रहे हैं।
इस विश्लेषण ने Remcos RAT के एक अत्यधिक परिष्कृत, फ़ाइल-रहित वेरिएंट का पता लगाया जो न्यूनतम डिस्क फ़ुटप्रिंट और उन्नत चोरी तकनीकों के साथ काम करता है। मैलवेयर ZwCreateSection और ZwMapViewOfSection जैसे नेटिव API कॉल का उपयोग करके अपने मुख्य पेलोड को svchost.exe में इंजेक्ट करता है, जिससे स्थायित्व और चोरी सुनिश्चित होती है।
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) | अद्वितीय उपयोगकर्ता आईडी। पीड़ित की पहचान के लिए उपयोग किया जाता है। |