shadow-rs 🦀

shadow-rs هو روتكيت نواة ويندوز مكتوب بلغة Rust، يوضح تقنيات متقدمة للتلاعب بالنواة مع الاستفادة من ميزات الأمان والأداء في Rust. هذا المشروع مخصص للأغراض التعليمية والبحثية.
جدول المحتويات
إشعار
[!IMPORTANT]
هذا المشروع قيد التطوير.
الميزات
العملية
- ✅ إخفاء وإظهار العمليات.
- ✅ تعديل مستويات توقيع العملية للتعامل مع
Protected Processes (PP) و Protected Process Light (PPL).
- ✅ حماية العمليات من الإنهاء وتفريغ الذاكرة.
- ✅ رفع امتيازات العملية إلى SYSTEM، مما يمنح وصول إداري كامل.
- ✅ إنهاء العمليات المستهدفة.
- ✅ سرد جميع العمليات المحمية والمخفية.
الخيط
- ✅ إخفاء وإظهار الخيوط.
- ✅ حماية الخيوط من الإنهاء أو التعليق.
- ✅ سرد جميع الخيوط المحمية والمخفية.
السائق
- ✅ إخفاء وإظهار برامج تشغيل وضع النواة.
- ✅ تعداد جميع برامج التشغيل المحملة.
- ✅ تمكين أو تعطيل تطبيق توقيع السائق (
DSE) للسماح بتحميل برامج التشغيل غير الموقعة.
- ✅ حظر تحميل برامج التشغيل.
الاستدعاء
- ✅ سرد الاستدعاءات المسجلة لإنشاء العمليات، إنشاء الخيوط، تحميل الصور، وعمليات السجل.
- ✅ إزالة أو استعادة استدعاءات محددة.
- ✅ سرد جميع الاستدعاءات التي تمت إزالتها.
متنوع
- ✅ التقاط ضغطات المفاتيح من إدخال المستخدم في الوقت الفعلي باستخدام اعتراض على مستوى النواة.
- ✅ تعطيل Microsoft-Windows-Threat-Intelligence (
EtwTi).
- ✅ تنظيف آثار برامج التشغيل من تفريغات الذاكرة في حالة حدوث شاشة زرقاء (BSOD).
- ✅ تجميع سلسلة التشفير.
- ✅ دعم تحميل برنامج التشغيل الانعكاسي.
تنفيذ كود وضع المستخدم
- ✅ حقن شيل كود أو مكتبات DLL في العمليات باستخدام
ZwCreateThreadEx.
- ✅ حقن استدعاء الإجراء غير المتزامن (
APC) لتنفيذ شيل كود أو مكتبات DLL في الخيوط القابلة للتنبيه.
- ✅ تنفيذ شيل كود في العمليات باستخدام
اختطاف الخيط.
الوحدة
- ✅ إخفاء الوحدات من قوائم ذاكرة العملية.
- ✅ تعداد جميع الوحدات المحملة.
السجل
- ✅ إخفاء وإظهار مفاتيح وقيم السجل لمنع الكشف والتلاعب.
- ✅ تطبيق حماية السجل لمنع حذف أو استبدال المفاتيح أو القيم.
الشبكة
- ✅ إخفاء وإظهار منافذ الشبكة من netstat وأدوات المراقبة المماثلة.
التثبيت
المنصات المدعومة
- ✅ ويندوز 10 / 11 (x64 فقط)
تعليمات البناء
السائق
انتقل إلى دليل driver وقم ببناء سائق النواة:
cargo make default --release
[!IMPORTANT]
يجب تنفيذ أول بناء كمسؤول. لا تتطلب البنيات اللاحقة صلاحيات مرتفعة.
لتمكين دعم التعيين لأدوات مثل kdmapper، قم بالتجميع باستخدام:
cargo make default --release --features mapper
العميل
انتقل إلى دليل client وقم ببناء العميل في وضع المستخدم:
للتوافق مع برامج التشغيل المعينة:
cargo build --release --features mapper
تعليمات الإعداد
تمكين وضع الاختبار أو وضع التوقيع الاختباري
bcdedit /set testsigning on
إنشاء / بدء الخدمة
يمكنك استخدام مدير خدمات ويندوز أو محمل سائق OSR لتحميل السائق الخاص بك.
التصحيح
استخدم Windbg للاتصال بالنواة ومراقبة نشاط السائق.
bcdedit /debug on
bcdedit /dbgsettings net hostip:<IP> port:<PORT>
المساهمة في shadow-rs
للمساهمة في shadow-rs، اتبع الخطوات التالية:
- قم بعمل fork لهذا المستودع.
- أنشئ فرعاً:
git checkout -b <branch_name>.
- قم بإجراء تغييراتك وتأكيدها:
git commit -m '<commit_message>'.
- أرسل إلى الفرع الأصلي:
git push origin <project_name> / <local>.
- أنشئ طلب سحب.
بدلاً من ذلك، استشر وثائق GitHub حول كيفية إنشاء طلب سحب.
إخلاء المسؤولية
هذا المشروع للأغراض التعليمية والبحثية. الاستخدام الخبيث للبرنامج محظور تماماً ومثبط للإقبال. لست مسؤولاً عن أي ضرر ناتج عن الاستخدام غير السليم للبرنامج.
المراجع
أود أن أعرب عن امتناني لهذه المشاريع التي ألهمتني لإنشاء shadow-rs والمساهمة ببعض الميزات:
موارد أساسية أخرى:
كانت هذه المواد والأبحاث لا تقدر بثمن في تعميق فهمي لتطوير نواة ويندوز:
الترخيص
هذا المشروع مرخص بموجب رخصة MIT. راجع ملف LICENSE للتفاصيل.
المساهمون