
روتكيت لنظام ويندوز لمعمارية إنتل x64 مع أكثر من 25 ميزة، تعرض تقنيات الروتكيت المتوافقة مع جميع إصدارات ويندوز 10 وويندوز 11.
Nidhogg هو روت كيت متعدد الوظائف لعرض مجموعة متنوعة من العمليات التي يمكن تنفيذها من مساحة النواة. الهدف من Nidhogg هو توفير روت كيت شامل وسهل الاستخدام مع وظائف مساعدة متعددة للعمليات. بالإضافة إلى ذلك، يمكن دمجه بسهولة مع إطار عمل C2 الخاص بك.
يمكن لـ Nidhogg العمل على أي إصدار من نظام x64 Windows 10 و Windows 11.
يحتوي هذا المستودع على مشغل نواة (kernel driver) مع برنامج C++ للتواصل معه.
إذا كنت تريد معرفة المزيد، اطّلع على الويكي للحصول على شرح مفصل.
[!IMPORTANT]
تم اختبار جميع الميزات بالكامل حتى Windows 11 25H2. إذا واجهت مشكلة، يُرجى فتح issue بعد التحقق من عدم وجود issue مفتوح بالفعل.
[!WARNING]
عند التحميل الانعكاسي، سيتم تعطيل بعض الميزات افتراضياً ولن يعمل التفريغ التلقائي الأنيق للوحدات المخفية وإعادة تثبيت الاستدعاءات بشكل صحيح. من مسؤولية المستخدم التأكد من تفريغ أي وحدات مخفية يدوياً عند إنهاء العملية وإعادة تثبيت أي استدعاءات إذا كان المشغل المستهدف يتم تفريغه. قد يؤدي عدم القيام بذلك إلى عدم استقرار النظام أو تعطله.
منذ الإصدار v0.3، يمكن تحميل Nidhogg انعكاسياً باستخدام kdmapper ولكن نظراً لأن PatchGuard سيتم تشغيله تلقائياً إذا سجل المشغل استدعاءات، فإن Nidhogg لن يسجل أي استدعاء. وهذا يعني أنه إذا كنت تقوم بتحميل المشغل انعكاسياً، فسيتم تعطيل هذه الميزات افتراضياً:
منذ الإصدار v2.0، أصبح لدى Nidhogg قدرة جديدة تسمى "ملف كائن Nidhogg" (NOF) لتنفيذ COFF في وضع النواة. وهذا يعني أنه يمكنك كتابة الكود الخاص بك في وضع النواة وتجميعه إلى ملف COFF يمكنه الوصول إلى:
هذه الميزة غير متوافقة مع الأمان القائم على المحاكاة الافتراضية (VBS) لأنها تخالف كلاً من HVCI و kCFG.
منذ الإصدار v1.0، يمكن لـ Nidhogg تنفيذ NidhoggScripts - وهي أداة تسمح بتنفيذ عدة أوامر واحداً تلو الآخر، وبالتالي إنشاء خطط عمل (playbooks) لـ Nidhogg. لمعرفة كيفية كتابة واحد، اطّلع على الويكي.
بسبب صعوبة الصيانة وحقيقة أنها ليست ميزة شائعة، تم إهمالها في الإصدار v2.0 وستتم إزالتها في الإصدار الرئيسي التالي. سيتم استبدالها بقدرة أخرى تسمى "ملف كائن Nidhogg" (NOF) لتنفيذ COFF في وضع النواة، والذي سيكون لديه إمكانية الوصول إلى واجهة برمجة تطبيقات Nidhogg.
منذ الإصدار v1.0، يمكن لـ Nidhogg تنفيذ NidhoggScripts كعمليات أولية أيضاً. وهذا يعني أنه إذا اكتشف الملف out.ndhg في جذر دليل المشروع (نفس الدليل الذي يحتوي على ملف Python)، فسيقوم بتنفيذ الملف في كل مرة يعمل فيها المشغل.
بسبب صعوبة الصيانة وحقيقة أنها ليست ميزة شائعة، تم إهمالها في الإصدار v2.0 وستتم إزالتها في الإصدار الرئيسي التالي. سيتم استبدالها بقدرة أخرى تسمى "ملف كائن Nidhogg" (NOF) لتنفيذ COFF في وضع النواة، والذي سيكون لديه إمكانية الوصول إلى واجهة برمجة تطبيقات Nidhogg.
[!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.
شكر جزيل للأشخاص الذين ساهموا في هذا المشروع: