
A Simple Ransomware Vaccine

एक सरल रैनसमवेयर सुरक्षा
हम अक्सर देखते हैं कि रैनसमवेयर vssadmin का उपयोग करके सभी शैडो कॉपी (shadow copies) को हटा देते हैं। क्या हो अगर हम उस अनुरोध को रोक सकें और उसे आमंत्रित करने वाली प्रक्रिया को समाप्त कर दें? आइए एक सरल वैक्सीन बनाने का प्रयास करें।

हम vssadmin.exe (और wmic.exe) के लिए एक डीबगर पंजीकृत करते हैं, जो हमारा संकलित raccine.exe है। Raccine एक बाइनरी है, जो पहले सभी पैरेंट प्रक्रियाओं के PID एकत्र करता है और फिर सभी पैरेंट प्रक्रियाओं को समाप्त करने का प्रयास करता है।
लाभ:
vssadmin.exe या wmic.exe) को बदलने की आवश्यकता नहीं है, जिससे अखंडता (integrity) संबंधी समस्याएँ उत्पन्न हो सकती हैं और हर पैच दिवस पर हमारा रैक्सीनेशन (raccination) टूट सकता हैनुकसान / ब्लाइंड स्पॉट:
vssadmin.exe delete shadows (या किसी अन्य ब्लैकलिस्टेड संयोजन) का वैध उपयोग अब संभव नहीं हैvssadmin.exe delete shadows को आमंत्रित करने का प्रयास किया था, जो एक बैकअप प्रक्रिया हो सकती हैvssadmin.exe को आमंत्रित किया है (जैसे schtasks के माध्यम से)vssadmin.exe (और wmic.exe) का आमंत्रण रोक लिया जाता है और डीबगर के रूप में raccine.exe को भेज दिया जाता है (vssadmin.exe delete shadows बन जाता है raccine.exe vssadmin.exe delete shadows)दुर्भावनापूर्ण संयोजन:
delete और shadows (vssadmin, diskshadow)resize और shadowstorage (vssadmin)delete और shadowstorage (vssadmin)delete और shadowcopy (wmic)delete और catalog और -quiet (wbadmin)win32_shadowcopy या एन्कोडेड कमांडों की सूची में से एक तत्व (powershell)recoveryenabled (bcedit)ignoreallfailures (bcedit)^ पुरानी सूची: संबंधित YARA नियम देखें
Powershell एन्कोडेड कमांडों की सूची: JAB, SQBFAF, SQBuAH, SUVYI, cwBhA, aWV4I, aQBlAHgA और कई अन्य
Emotet बिना Raccine के - लिंक

Emotet Raccine के साथ - लिंक (Raccine स्थापना से संबंधित प्रक्रिया गतिविधि को अनदेखा करें)

संक्रमण को कली में ही कुचल दिया जाता है।
इसे अपने जोखिम पर उपयोग करें!
आप एक रैक्सीनेटेड (raccinated) मशीन पर ब्लैकलिस्टेड कमांडों का उपयोग करने वाले कमांड नहीं चला पाएँगे, जब तक कि आप अनइंस्टॉल पैच raccine-reg-patch-uninstall.reg लागू नहीं करते। यह विभिन्न बैकअप समाधानों को तोड़ सकता है जो अपने कार्य के दौरान उस विशिष्ट कमांड को चलाते हैं। यह न केवल उस अनुरोध को ब्लॉक करेगा बल्कि उस ट्री की सभी प्रक्रियाओं को भी समाप्त कर देगा, जिसमें बैकअप समाधान और इसे आमंत्रित करने वाली प्रक्रिया शामिल है।
यदि आपके पास एक ठोस सुरक्षा निगरानी है जो सभी प्रक्रिया निष्पादनों को लॉग करती है, तो आप अपने लॉग की जाँच कर सकते हैं कि क्या vssadmin.exe delete shadows, vssadmin.exe resize shadowstorage ... या अन्य अवरुद्ध कमांड लाइनें वैध उद्देश्यों के लिए बार-बार या कभी-कभार उपयोग की जाती हैं, ऐसी स्थिति में आपको Raccine का उपयोग करने से बचना चाहिए।
delete और shadows होता है और अन्यथा सभी पैरामीटरों को एक नई प्रक्रिया में भेज देता है जो vssadmin को उसके मूल पैरामीटरों के साथ आमंत्रित करती हैexplorer.exe हटाया गयाdelete shadowcopy कॉल करने वाली wmic विधि का समर्थन करता है, व्हाइटलिस्टेड प्रक्रिया प्रारंभों के लिए कोई आउटपुट नहीं (wmic आउटपुट प्रोसेसिंग के साथ समस्याओं से बचता है)delete shadowstorage के लिए अतिरिक्त जाँच, @_hillu द्वारा कोड समीक्षा, एप्लिकेशन आइकनbcdedit.exe /set {default} bootstatuspolicy ignoreallfailures और bcdedit.exe /set {default} recoveryenabled no के लिए अतिरिक्त जाँचVisual C++ Redistributable पैकेज और .NET Framework दोनों install-raccine.bat चलाने पर स्वचालित रूप से स्थापित हो जाएँगे।
Raccine.zip डाउनलोड करेंraccine-installer.bat को व्यवस्थापक के रूप में चलाएँ
बैच इंस्टॉलर में एक "अनइंस्टॉल" विकल्प शामिल है।
व्यवस्थापक के रूप में:
raccine-reg-patch-uninstall.reg चलाएँ%ProgramFiles%\Raccine और %ProgramData%\Raccine फ़ोल्डरों को हटाएँreg delete HKCU\Software\Raccine /F चलाएँtaskkill /F /IM RaccineSettings.exe चलाएँreg delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "Raccine Tray" /F चलाएँschtasks /DELETE /TN "Raccine Rules Updater" /F चलाएँहम अपग्रेड के लिए अनइंस्टॉल और पुनः स्थापना की सलाह देते हैं। अनइंस्टॉल कॉन्फ़िगरेशन वाली सभी रजिस्ट्री कुंजियों को हटा देता है।
Raccine में संस्करण 1.2 के बाद से एक एकीकृत सिग्नेचर-अपडेटर है। यह प्रोग्राम RaccineRulesSync.exe अनुसूचित कार्य के माध्यम से दिन में एक बार चलने के लिए कॉन्फ़िगर किया गया है। आप ट्रे आइकन मेनू में विकल्प का उपयोग करके मैन्युअल रूप से सिग्नेचर अपडेट चला सकते हैं।
संस्करण 1.0 के बाद से, Raccine यह निर्धारित करने के लिए अतिरिक्त रूप से YARA नियमों का उपयोग करता है कि कोई प्रक्रिया कमांड लाइन या पैरेंट प्रक्रिया दुर्भावनापूर्ण है या नहीं। Raccine दो अलग-अलग उद्देश्यों के लिए नियमों के 2 सेट का उपयोग करता है।
./yara - ऐसे नियम जो सभी पैरामीटरों के साथ कमांड लाइन पर लागू होते हैं, जैसे WMIC.exe delete justatest./yara/in-memory - ऐसे नियम जो हमारी रोकी गई प्रक्रिया की पैरेंट प्रक्रिया की प्रक्रिया मेमोरी पर लागू होते हैं, जैसे ransomware.exe हमारी रोकी गई प्रक्रिया vssadmin.exe को चला रहा हैसंस्करण 1.1 के बाद से हम YARA मिलान प्रक्रिया में बाहरी चरों की एक सूची भेजते हैं ताकि अधिक जटिल और बुद्धिमान YARA नियमों की अनुमति मिल सके जो प्रक्रिया और उसके पैरेंट की विशेषताओं को ध्यान में रखते हैं।
मिलान प्रक्रिया कमांड लाइन पर इस प्रकार दिखती है:
"C:\Program Files\Raccine\yara64.exe" -d FromRaccine="true" -d Name="WMIC.exe" -d ExecutablePath="C:\Windows\System32\wbem\WMIC.exe" -d CommandLine="WMIC.exe delete justatest" -d Priority=32 -d FromRaccine="true" -d ParentName="cmd.exe" -d ParentExecutablePath="C:\Windows\System32\cmd.exe" -d ParentCommandLine="'C:\WINDOWS\system32\cmd.exe' " -d ParentPriority=32 C:\ProgramData\Raccine\yarayara\mal_emotet.yar C:\ProgramData\Raccine\yara\Rac1C6A.tmp
निम्नलिखित सूची एक उदाहरण YARA नियम दिखाती है जो अपनी शर्त में बाहरी चरों का उपयोग करता है।
rule env_vars_test {
condition:
Name contains "WMIC.exe"
and CommandLine contains "delete justatest"
and ParentPriority >= 8
and (
ParentCommandLine contains "cmd"
or ParentCommandLine contains "powershell"
)
}
फ़ोल्डर GPO में Raccine.ADMX और Raccine.ADML शामिल हैं। तैनाती में Raccine.ADMX फ़ाइल C:\Windows\PolicyDefinitions में जाती है। साथ में Raccine.ADML फ़ाइल C:\Windows\PolicyDefinitions\en-US में जाती है।
उपयोग करने के लिए: GPEDIT.MSC खोलें > कंप्यूटर कॉन्फ़िगरेशन > प्रशासनिक टेम्पलेट > सिस्टम > Raccine
कॉन्फ़िगरेशन करने के बाद, आपको gpupdate.exe चलाकर gpo को अपडेट करने की आवश्यकता हो सकती है।
सभी रोकथामों और किए गए कार्यों के साथ एक लॉग फ़ाइल C:\ProgramData\Raccine\Raccine_log.txt में लिखी जाती है

Application इवेंटलॉग में प्रत्येक अवरोधन घटना द्वारा एक प्रविष्टि उत्पन्न होती है।

Raccine द्वारा उत्पन्न IDs
संस्करण 0.10.0 के बाद से, Raccine को "सिमुलेशन मोड" में स्थापित किया जा सकता है, जो सभी ट्रिगर्स को सक्रिय करता है, सभी कार्यों को लॉग करता है लेकिन कुछ भी समाप्त नहीं करता है। इस मोड का उपयोग उन वातावरणों में किया जाना चाहिए जिनमें बैकअप समाधान या अन्य वैध सॉफ़्टवेयर उचित अवधि के लिए चलते हैं, ताकि यह जाँचा जा सके कि Raccine अन्य सॉफ़्टवेयर के साथ हस्तक्षेप करेगा या नहीं। विचार यह है कि Raccine को सिमुलेशन मोड में स्थापित करें, इसे एक सप्ताह या एक महीने तक लॉग करने दें और फिर लॉग की जाँच करें कि क्या यह संगठन में उपयोग किए जाने वाले वैध सॉफ़्टवेयर को अवरुद्ध करता।

raccine.exe चलाएँ और पैरेंट प्रक्रिया ट्री को समाप्त होते देखें (v0.1 का स्क्रीनशॉट)

संस्करण 1 के बाद से उपलब्ध और आवश्यक।



यदि आप जिस रैनसमवेयर से निपट रहे हैं वह किसी विशिष्ट प्रक्रिया नाम का उपयोग करता है, जैसे taskdl.exe, तो आप उस नाम पर कॉल रोकने के लिए .reg पैच को बदल सकते हैं और Raccine को आमंत्रित करने वाली प्रक्रिया ट्री की सभी पैरेंट प्रक्रियाओं को समाप्त करने दे सकते हैं।
मैं Raccine का विस्तार करना चाहता हूँ लेकिन मेरे पास C++ कोडिंग कौशल की कमी है, विशेष रूप से Windows प्लेटफ़ॉर्म पर।
यदि आपकी स्थापना के साथ कुछ भी होता है, जैसे अचानक त्रुटि संदेश, टूटी हुई सेवाएँ या प्रोग्राम जो अब प्रारंभ नहीं होते, तो reg-patches उप-फ़ोल्डर में raccine-reg-patch-uninstall.reg फ़ाइल चलाएँ। यह सब कुछ सामान्य स्थिति में वापस लाना चाहिए।
उसके बाद आपको install-raccine.bat का उपयोग करके पूर्ण अनइंस्टॉलेशन चलाने में भी सक्षम होना चाहिए।
सही उच्चारण "Rax-Een" है।
powershell.exe और win32_shadowcopy या एन्कोडेड कमांडों की सूची के लिए अतिरिक्त जाँचC:\ProgramData\Raccine_log.txt बनाता हैdiskshadow.exe delete shadows कमांड शामिल करता है| Variable | विवरण | उदाहरण मान |
|---|
| FromRaccine | true | |
| Name | छवि फ़ाइल का नाम | WMIC.exe |
| ExecutablePath | बाइनरी का पूर्ण पथ | C:\Windows\System32\wbem\WMIC.exe |
| CommandLine | पैरामीटरों के साथ पूर्ण कमांड लाइन | WMIC.exe delete justatest |
| Priority | प्रक्रिया प्राथमिकता | 32 |
| ParentName | पैरेंट छवि फ़ाइल का नाम | cmd.exe |
| ParentExecutablePath | पैरेंट निष्पादन योग्य का पूर्ण पथ | C:\Windows\System32\cmd.exe |
| ParentCommandLine | पैरामीटरों के साथ पूर्ण पैरेंट कमांड लाइन | C:\WINDOWS\system32\cmd.exe |
| ParentPriority | पैरेंट प्रक्रिया प्राथमिकता | 32 |