
.NET प्रक्रिया मॉनिटर जो मूल परत पर CLR को हुक करता है, मेमोरी से रिफ्लेक्टिव असेंबलियों को डंप करता है, और डिस्क बाइनरी की तुलना में AMSI/ETW अखंडता की जाँच करता है।
windows टूल जो मैंने इसलिए बनाया क्योंकि मैं malware samples में jlaive forks को देखते-देखते थक गया था और runtime पर उन्हें वास्तव में अलग करने के लिए सार्वजनिक रूप से कुछ भी उपलब्ध नहीं था।
संक्षेप में, यह एक .net process monitor है जो native layer पर clr को hook करता है, reflective assembly loads को track करता है, और स्वचालित रूप से PEs को सीधे memory से dump करता है। यह disk पर मौजूद original binaries के विरुद्ध amsi और etw integrity की भी जाँच करता है, साथ ही clr.dll string patching और direct LoadFromBuffer usage जैसी bypass techniques का पता लगाता है।
samples कहाँ मिलेंगे? मैं https://tria.ge देखने की सलाह दूँगा (यह कोई विज्ञापन नहीं है) और आप अपनी पसंद का कोई भी sample download कर सकते हैं और family के आधार पर filter कर सकते हैं
आप सोच रहे होंगे, नाम nemesis क्यों?
क्योंकि यह टूल के सटीक उद्देश्य को दर्शाता है। nemesis वह चीज़ होती है जो किसी प्रतिद्वंद्वी के लिए एक निरंतर चुनौती या पतन के रूप में खड़ी होती है और यही इस प्रोजेक्ट के पीछे का विचार है।
ग्रीक पौराणिक कथाओं में nemesis दिव्य प्रतिशोध की आत्मा थी, वह जो हर उस व्यक्ति को बदला चुकाती थी जो बहुत अहंकारी हो जाता था या खुद को अछूता समझता था। अगर मुझसे पूछें तो यह उस malware के लिए बिल्कुल उपयुक्त है जो "fud" होने का दावा करता है।
मैं एक malware analyst हूँ। अगर आप यह काम (मेरे लिए शौक) काफी लंबे समय तक करते हैं तो आप वही loader chains बार-बार देखने लगते हैं, खासकर जबसे jlaive (जिसे crybat भी कहा जाता है) लोकप्रिय हुआ और हर script kiddie ने इसे fork कर लिया।
पैटर्न बेवकूफी भरा सरल है लेकिन इससे निपटना बेहद कष्टप्रद है:
something.bat → obfuscated powershell → csharp stub → your actual payload
आप एक .bat पर double-click करते हैं जो word salad जैसा दिखता है। cmd powershell को बेतुकी चीज़ों की दीवार के साथ शुरू करता है। powershell एक .net stub को decrypt/decompress करता है (aes, gzip, base64)। वह stub amsi + etw को patch करता है, असली exe/dll को memory में reflectively load करता है, और काम खत्म — कोई भी उपयोगी चीज़ कभी disk पर उपयोगी रूप में नहीं पहुँचती।
इसने मुझे परेशान किया। वास्तव में इस विशिष्ट chain से लड़ने के लिए कोई अच्छा सार्वजनिक टूल नहीं है — जहाँ .net payload वास्तव में materialize होता है उसे hook करना, process के खुद को खत्म करने से पहले उसे dump करना, और इन stubs द्वारा हमेशा किए जाने वाले amsi/etw patches को पकड़ना। इसलिए मैंने nemesis बनाया।
यह कोई रामबाण नहीं है। यह आपके sandbox की जगह नहीं लेगा। लेकिन यह आपको एक test box पर संदिग्ध .bat के विरुद्ध चलाने और वास्तव में artifacts निकालने के लिए कुछ वास्तविक देता है।
launcher (Launcher.exe)
Nemesis.dll inject करता हैnemesis dll (Nemesis.dll)
nLoadImagenLoadFileAssemblyNative::LoadFromBuffer (pattern nLoadImage से resolve किया गया)%TEMP%\Nemesis_dumps में dump queue करता हैamsi.dll / ntdll.dll exports की तुलना disk पर मौजूद copies से करता है (यह AmsiScanBuffer / EtwEventWrite पर classic ret patch को पकड़ता है).rdata strings को भी देखता है (कुछ bypasses इन्हें patch करते हैं, इस पर एक शानदार vxug paper है जिसका नाम है; 2024-11-21 - New AMSI Bypss Technique Modifying CLRDLL in Memory.pdf )%TEMP%\Nemesis.log में log करता है, इसमें ENABLE_VIRTUAL_TERMINAL_PROCESSING भी है ताकि console के थोड़ा अजीब होने जैसी समस्याओं से बचा जा सके :Dमूल रूप से: bat chain को चलने दें, payload को वहीं पकड़ें जहाँ crypter वास्तव में उसे load करता है, और रास्ते में evasion tricks को log करें।
visual studio 2022+ चाहिए c++ desktop + masm (x64) के साथ।
Nemesis.slnx खोलें, Release | x64 चुनें, solution build करें।
यह वास्तविक उपयोग का मामला है — इसे एक संदिग्ध bat पर इंगित करें और देखें क्या निकलता है:
cd x64\Release
.\Launcher.exe "C:\path\to\suspicious.bat"
-- के बाद के extra args target को pass किए जाते हैं:
.\Launcher.exe myapp.exe -- --some-flag
custom dll path:
.\Launcher.exe --dll C:\path\Nemesis.dll myapp.exe
artifacts:
%TEMP%\Nemesis.log%TEMP%\Nemesis_dumpsहै:
नहीं है:
LNK1104 के साथ fail हो रहा है? कुछ अभी भी nemesis.dll loaded रखे हुए है — target को kill करें और rebuild करेंpwsh.exe vcpkg noise हानिरहित है, इसे नज़रअंदाज़ करेंअगर आप समझना चाहते हैं कि आप किससे लड़ रहे हैं:
nemesis का उपयोग करके आप इसे स्वीकार करते हैं। यह as-is प्रदान किया गया है बिना किसी warranty के — सारा जोखिम आपका है।
कानूनी, अधिकृत उपयोग (lab vms, स्वामित्व वाले systems, स्पष्ट अनुमति) की ज़िम्मेदारी पूरी तरह आपकी है। कानून द्वारा अनुमत अधिकतम सीमा तक, authors और zypherion.tech उपयोग या दुरुपयोग से उत्पन्न किसी भी नुकसान, हानि, या कानूनी दावों के लिए सभी दायित्वों से इनकार करते हैं। पूरी शर्तें LICENSE में देखें।