
Windows rootkit for Intel x64, 25+ सुविधाओं के साथ, सभी Windows 10 और Windows 11 संस्करणों के साथ संगत rootkit तकनीकों का प्रदर्शन।
Nidhogg एक बहु-कार्यात्मक रूटकिट है जो कर्नेल स्पेस से किए जा सकने वाले विभिन्न ऑपरेशनों को प्रदर्शित करता है। Nidhogg का लक्ष्य एक ऑल-इन-वन और उपयोग में आसान रूटकिट प्रदान करना है जिसमें ऑपरेशनों के लिए कई उपयोगी कार्यक्षमताएँ हों। इसके अलावा, इसे आपके C2 फ्रेमवर्क के साथ आसानी से एकीकृत किया जा सकता है।
Nidhogg x64 Windows 10 और Windows 11 के किसी भी संस्करण पर काम कर सकता है।
इस रिपॉजिटरी में एक कर्नेल ड्राइवर है जिसके साथ संवाद करने के लिए एक C++ प्रोग्राम है।
यदि आप अधिक जानना चाहते हैं, तो विस्तृत विवरण के लिए विकी देखें।
[!IMPORTANT]
सभी सुविधाओं का Windows 11 25H2 तक पूरी तरह से परीक्षण किया गया है। यदि आपको कोई समस्या आती है, तो कृपया यह जाँचने के बाद एक मुद्दा खोलें कि पहले से कोई खुला मुद्दा नहीं है।
[!WARNING]
रिफ्लेक्टिव लोडिंग करते समय, कुछ सुविधाएँ डिफ़ॉल्ट रूप से अक्षम हो जाएँगी और छिपे हुए मॉड्यूल का स्वचालित अनलोड और कॉलबैक को अनहुक करना भी काम नहीं करेगा। यह उपयोगकर्ता की ज़िम्मेदारी है कि वह प्रक्रिया समाप्त होने पर छिपे हुए मॉड्यूल को मैन्युअल रूप से अनलोड करे और यदि लक्ष्य ड्राइवर अनलोड हो रहा है तो किसी भी कॉलबैक को अनहुक करे। ऐसा करने में विफलता से सिस्टम अस्थिरता या क्रैश हो सकता है।
v0.3 से, Nidhogg को kdmapper के साथ रिफ्लेक्टिवली लोड किया जा सकता है लेकिन क्योंकि PatchGuard स्वचालित रूप से ट्रिगर हो जाएगा यदि ड्राइवर कॉलबैक पंजीकृत करता है, Nidhogg कोई कॉलबैक पंजीकृत नहीं करेगा। इसका मतलब है कि यदि आप ड्राइवर को रिफ्लेक्टिवली लोड कर रहे हैं तो ये सुविधाएँ डिफ़ॉल्ट रूप से अक्षम होंगी:
v2.0 से, Nidhogg में "Nidhogg Object File" (NOF) नामक एक नई क्षमता है जो कर्नेल-मोड COFF निष्पादन के लिए है। इसका मतलब है कि आप अपना स्वयं का कर्नेल-मोड कोड लिख सकते हैं और इसे COFF फ़ाइल में संकलित कर सकते हैं जिसमें निम्नलिखित तक पहुँच है:
यह सुविधा वर्चुअलाइजेशन-आधारित सुरक्षा (VBS) के साथ संगत नहीं है क्योंकि यह HVCI और kCFG दोनों का उल्लंघन करती है।
v1.0 से, Nidhogg NidhoggScripts को निष्पादित कर सकता है - एक उपकरण जो एक के बाद एक कई कमांड निष्पादित करने की अनुमति देता है, इस प्रकार Nidhogg के लिए प्लेबुक बनाता है। कैसे लिखें यह देखने के लिए विकी देखें।
कठोर रखरखाव और इस तथ्य के कारण कि यह एक लोकप्रिय सुविधा नहीं है, इसे v2.0 में अप्रचलित कर दिया गया है और अगले प्रमुख रिलीज़ में हटा दिया जाएगा। इसके स्थान पर "Nidhogg Object File" (NOF) नामक एक अन्य क्षमता आएगी जो कर्नेल-मोड COFF निष्पादन के लिए है, जिसमें Nidhogg के API तक पहुँच होगी।
v1.0 से, Nidhogg प्रारंभिक संचालन के रूप में NidhoggScripts को भी निष्पादित कर सकता है। इसका मतलब है कि यदि यह प्रोजेक्ट निर्देशिका के मूल में (पायथन फ़ाइल के समान निर्देशिका) फ़ाइल out.ndhg देखता है, तो यह प्रत्येक बार ड्राइवर चलने पर फ़ाइल को निष्पादित करेगा।
कठोर रखरखाव और इस तथ्य के कारण कि यह एक लोकप्रिय सुविधा नहीं है, इसे v2.0 में अप्रचलित कर दिया गया है और अगले प्रमुख रिलीज़ में हटा दिया जाएगा। इसके स्थान पर "Nidhogg Object File" (NOF) नामक एक अन्य क्षमता आएगी जो कर्नेल-मोड COFF निष्पादन के लिए है, जिसमें Nidhogg के API तक पहुँच होगी।
[!CAUTION]
निम्नलिखित सुविधाएँ PatchGuard को ट्रिगर करने के लिए जानी जाती हैं, आप फिर भी अपने जोखिम पर उनका उपयोग कर सकते हैं।
उपलब्ध कमांड देखने के लिए आप NidhoggClient.exe चला सकते हैं या प्रत्येक कमांड का उपयोग करने के तरीके, इसके पैरामीटर और यह कैसे काम करता है, इस बारे में विस्तृत जानकारी के लिए विकी देखें।
NidhoggClient.exe
# सरल उपयोग: किसी प्रक्रिया को छिपाना
NidhoggClient.exe process hide 3110
क्लाइंट को संकलित करने के लिए, आपके पास Visual Studio 2022 स्थापित होना चाहिए और फिर प्रोजेक्ट को किसी अन्य Visual Studio प्रोजेक्ट की तरह बनाएँ।
प्रोजेक्ट को संकलित करने के लिए, आपको निम्नलिखित उपकरणों की आवश्यकता होगी:
रिपॉजिटरी को क्लोन करें और प्रोजेक्ट बनाएँ:
git clone https://github.com/Idov31/Nidhogg.git --recurse-submodules
अपने परीक्षण वातावरण में इसका परीक्षण करने के लिए, उन्नत cmd के साथ ये कमांड चलाएँ:
bcdedit /set testsigning on
रीबूट करने के बाद, एक सेवा बनाएँ और ड्राइवर चलाएँ:
sc create nidhogg type= kernel binPath= C:\Path\To\Driver\Nidhogg.sys
sc start nidhogg
अपने परीक्षण वातावरण में ड्राइवर को डीबग करने के लिए, उन्नत cmd के साथ यह कमांड चलाएँ और अपने कंप्यूटर को रीबूट करें:
bcdedit /debug on
रीबूट के बाद, आप DebugView जैसे उपकरणों में डीबगिंग संदेश देख सकते हैं।
इस प्रोजेक्ट में योगदान देने वाले लोगों का बहुत-बहुत धन्यवाद: