
ओपन-सोर्स विंडोज कर्नेल-स्तरीय ईडीआर लैब जो प्रक्रिया इंजेक्शन, क्रेडेंशियल डंपिंग और अन्य टीटीपी के खिलाफ सिस्टम कॉल इंटरसेप्शन, कर्नेल कॉलबैक और यारा नियमों के माध्यम से पता लगाने के तरीकों को समझने और परीक्षण करने के लिए है।
Best Edr Of The Market एक ओपन-सोर्स लैब है जिसे निम्न-स्तरीय दृष्टिकोण से एंडपॉइंट डिटेक्शन और रिस्पॉन्स (EDR) सुरक्षा उत्पादों द्वारा उपयोग किए जाने वाले डिटेक्शन विधियों और उनके बायपास को लागू करने और समझने के लिए डिज़ाइन किया गया है। ये तकनीकें मुख्य रूप से विंडोज NT की टेलीमेट्रिक क्षमताओं के दोहन पर आधारित हैं ताकि प्रक्रिया व्यवहार का गतिशील विश्लेषण किया जा सके।
इस प्रकार, यह तीसरा संस्करण PPID स्पूफिंग (T1134.004), क्रेडेंशियल डंपिंग (T1003.001), प्रोसेस हॉलोइंग/घोस्टिंग/टैम्परिंग (T1055.012), मेमोरी कोड इंजेक्शन (T1055) के तरीके जिनमें APC क्यूइंग (T1055.004) और थ्रेड हाइजैकिंग (T1055.003), असामान्य सिस्टम कॉल (T1106), रजिस्ट्री पर्सिस्टेंस संचालन (T1547.001) और कई अन्य TTPs का पता लगाने में सक्षम बनाता है।
यह प्रोजेक्ट Yara नियम प्रदान करने के लिए @Elastic के protection-artifacts रिपॉजिटरी का क्लोन शामिल करता है।
📁 beotmv3
⚙️ beotm.sys
📄 beotm.exe
📁 protection-artifacts/
📁 rules/
📁 yara/
📄 Windows_Trojan_Metasploit.yar
📄 Windows_Hacktool_Mimikatz.yar
📄 Windows_Hacktool_Rubeus.yar
📄 ...
📄 libcrypto-3-x64.dll
beotm.exe <path to driver> <path to Yara rules folder>
उदाहरण protection-artifacts के साथ:
.\beotm.exe .\beotm.sys .\protection-artifacts\yara\rules\
beotm.exe अपने आप सिस्टम पर beotm.sys ड्राइवर इंस्टॉल करता है, और शुरू करने से पहले एडमिनिस्ट्रेटर मोड में चलाने का अनुरोध करता है। एक बार ड्राइवर इंस्टॉल हो जाने के बाद, यह अपने पैरामीटर में निर्दिष्ट पथ में दिए गए Yara नियमों को प्राप्त करता है और संकलित करता है:

सभी Yara नियमों के संकलित हो जाने के बाद, कोई भी कुंजी दबाएं और आप UI पैनल पर रीडायरेक्ट हो जाएंगे:

जब beotm.exe समाप्त होता है, तो ड्राइवर से जुड़ी सेवा सिस्टम पर सक्रिय रहती है, इसलिए यदि आप beotm.exe को फिर से चलाते हैं, तो ड्राइवर को पुनः इंस्टॉल करने की आवश्यकता नहीं है। सेवा को "BeotmDrv" कहा जाता है:
C:\Windows\system32>sc.exe query type=driver | findstr /i "beotm"
SERVICE_NAME: BeotmDrv
DISPLAY_NAME: BeotmDrv
यदि आप चाहें तो सेवा को इस प्रकार रोक सकते हैं:
C:\Windows\system32> sc.exe stop BeotmDrv
आपको एक परीक्षण वातावरण जैसे विंडोज वर्चुअल मशीन की आवश्यकता होगी। मशीन को TESTSIGNING मोड में कॉन्फ़िगर किया जाना चाहिए।
मैं विंडोज 10 22H2 VM सुझाता हूं (यह वह संस्करण है जिस पर BEOTM का परीक्षण किया गया था)।
यदि आप अपने परिवर्तनों का परीक्षण करना चाहते हैं तो आप रिमोट VM कर्नेल को डिबग भी कर सकते हैं। जब BEOTM लॉन्च होता है तो एक डिबग संदेश प्रदर्शित होता है जो बताता है कि कॉलबैक सफलतापूर्वक पंजीकृत हुए हैं या नहीं:
1: kd> g
____ _ _____ ____ ____ ___ __ _____ _
| __ ) ___ ___| |_ | ____| _ \| _ \ / _ \ / _| |_ _| |__ ___
| _ \ / _ \/ __| __| | _| | | | | |_) | | | | | |_ | | | '_ \ / _ \
| |_) | __/\__ \ |_ | |___| |_| | _ < | |_| | _| | | | | | | __/
|____/_\___||___/\__| |_____|____/|_| \_\ \___/|_| |_| |_| |_|\___| v3
| \/ | __ _ _ __| | _____| |_
| |\/| |/ _` | '__| |/ / _ \ __|
| | | | (_| | | | < __/ |_ Yazidou - github.com/Xacone
|_| |_|\__,_|_| |_|\_\___|\__|
[+] Win Kernel Structs offsets initialized
[+] Altsyscall handler registered !
[+] PsSetCreateThreadNotifyRoutine success
[+] PsSetCreateProcessNotifyRoutineEx success
[+] PsSetLoadImageNotifyRoutine success
[+] ObRegisterCallbacks 1 success
[+] CmRegisterCallbackEx success
[+] Driver loaded
यह प्रोजेक्ट विज़ुअल स्टूडियो 2022 में डिज़ाइन किया गया था। सुनिश्चित करें कि आपके पास WDK अपस्ट्रीम और सभी पूर्वापेक्षाएँ हैं, जैसे x64 स्पेक्ट्रम मिटिगेशन लाइब्रेरी। विंडोज हार्डवेयर दस्तावेज़ बताता है कि कैसे आगे बढ़ना है।
प्रोजेक्ट C++20 का उपयोग करता है।
प्रोजेक्ट में NDIS पर आधारित अभी तक लागू नहीं की गई TCP/IP फ़िल्टरिंग कार्यक्षमता शामिल है। यदि आपको "Symbol not found"-जैसी त्रुटियाँ मिलती हैं, तो BestEdrOfTheMarketDriver -> Project Properties -> Linker -> Entry -> Additional Dependencies में निम्नलिखित लाइब्रेरीज़ को लिंक करना सुनिश्चित करें:
$(DDK_LIB_PATH)\fwpkclnt.lib
$(DDK_LIB_PATH)\ndis.lib
$(SDK_LIB_PATH)\uuid.lib
उपयोगकर्ता पक्ष पर, yara को vcpkg के साथ इंस्टॉल करना सुनिश्चित करें:
.\vcpkg\vcpkg.exe install yara
vcpkg.exe एक्जीक्यूटेबल प्राप्त करने का तरीका यहाँ दिया गया है:
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat
किसी भी क्रैश/बग/BSOD या किसी अत्यधिक झूठी सकारात्मकता के लिए बेझिझक एक मुद्दा खोलें।
कृपया मुझे त्रुटि के कारण का पता लगाने में मदद करने के लिए यथासंभव अधिक जानकारी प्रदान करें। ऐसा करने के लिए, मुझे वे परिस्थितियाँ बताने से बेहतर कुछ नहीं जिनमें बग को दोहराया गया था, और साथ ही वह आर्टिफैक्ट जिसके कारण यह हुआ + analyze -v का आउटपुट (यदि संभव हो तो) WinDbg पर कर्नेल डिबगिंग मोड में।
यदि यह आपके किसी आर्टिफैक्ट के कारण क्रैश/बग/BSOD हुआ था, तो अच्छा होगा यदि मुझे इसका स्रोत कोड भी मिल सके।
इस प्रोजेक्ट का दायरा पूरी तरह से शैक्षिक है। ड्राइवर का उपयोग केवल नियंत्रित परीक्षण वातावरण में किया जाना है।