Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/shard77/blackpill
تصعيد الامتيازاتآليات الاستمراريةالتهرب من IDS/IPSالحركة الجانبيةشيل كودما بعد الاستغلالالقيادة والسيطرةالفريق الأحمرتطوير الحمولاتاستغلال الملفات الثنائيةArchived
GitHub
34045منذ 5 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
shard77/blackpill

blackpill

روتكيت نواة لينكس مكتوب بلغة Rust يعتمد على هايبرفايزر مخصص من النوع الثاني (type-2)، وبرامج eBPF XDP وTC

عرض المستودع

BlackPill

BlackPill هو روتكيت خفي لنظام لينكس مكتوب بلغة Rust.

Open issues Commit activity License

الميزات

يتكوّن الروتكيت من وحدات متعددة (نتحدث عن وحدات Rust، وليس وحدات النواة):

  • تجنب الدفاعات: إخفاء الملفات والعمليات واتصالات الشبكة، إلخ.
  • الربط (Hooking): ربط استدعاءات النظام وIDT.
  • الهايبرفايزر: إنشاء آلة افتراضية لتنفيذ كود خبيث.
  • الاستمرارية: جعل الروتكيت دائمًا بعد إعادة التشغيل ومقاومًا للإزالة.
  • الأدوات المساعدة: أدوات متنوعة.

تبدو البنية المعمارية على النحو التالي:

مخطط بسيط لبنية الروتكيت

وفيما يلي كيفية تنفيذ الكود الخبيث من C2 إلى الضيف الافتراضي:

مخطط تسلسل تنفيذ كود الروتكيت

يرسل C2 تعليمات x86_64 مُجمَّعة ومصمَّمة بعناية إلى الروتكيت، والذي يرسلها بدوره إلى الضيف الافتراضي لتنفيذها. ويكون الضيف الافتراضي معزولًا عن المضيف ويمكن استخدامه لتنفيذ كود خبيث.

لا ترى النواة الحزم الخبيثة الواردة لأنها تُصفّى بواسطة برنامج eBPF XDP وتُرسل إلى وحدة LKM، ويتم تعديل الحزم الصادرة بواسطة برنامج eBPF TC.

[!IMPORTANT]
هذا المشروع لا يزال قيد التطوير. ليست جميع الميزات تعمل بعد!
لا تتردد في تقديم المشكلات (issues) أو طلبات السحب (pull requests).

الربط

الربط هو قدرة أساسية للروتكيت، ويتم تنفيذه باستخدام kprobes في نواة لينكس. تعترض هذه التقنية تنفيذ دوال النظام وتعيد توجيهه لمراقبة سلوكها أو تعديله. وفي سياق هذا الروتكيت، توفر kprobes آلية قوية للتفاعل مع دوال النواة دون تعديل الكود المصدري مباشرة.

تجنب الدفاعات

لضمان التخفي، يستخدم الروتكيت آليتين رئيسيتين لمكافحة الاكتشاف:

  1. إزالة الوحدة من قائمة وحدات النواة
    عند تحميل وحدة نواة، تُضاف إلى قائمة وحدات النواة، وتكون مرئية عبر أدوات مثل lsmod أو /proc/modules. ولمنع اكتشافها:

    • يزيل الروتكيت نفسه يدويًا من هذه القائمة.
    • وعلى الرغم من إزالتها من القائمة، تظل الوحدة تعمل، مما يتيح استمرار تنفيذ وظائفها.
  2. ربط دالة filldir64 لإخفاء دليل محدد
    لإخفاء الملفات التي يستخدمها الروتكيت، يتم تنفيذ ربط على دالة filldir64. تُستدعى هذه الدالة عند قراءة عملية لمحتويات دليل (مثلًا عبر استدعاءات النظام getdents أو readdir).

    • عملية الربط:
      • يعترض الروتكيت دالة filldir64 باستخدام kprobes.
      • أثناء التنفيذ، يفحص المعالج إدخالات الدليل التي تُعاد إلى المستخدم.
      • إذا طابق إدخال ما دليل /BLACKPILL-BLACKPILL (المستخدم لتخزين ملفات الروتكيت الحرجة)، يتم تصفيته وعدم إعادته إلى المستخدم.
      • تُعاد جميع إدخالات الدليل الأخرى بشكل طبيعي، مما يضمن الشفافية لأدوات مساحة المستخدم.
  3. استخدام برنامجي eBPF XDP وTC لتعديل حركة الشبكة الواردة والصادرة
    لتطبيع اتصالاتنا الشبكية الخبيثة، نستخدم برنامجي eBPF XDP (مسار البيانات السريع) وTC (التحكم في الحركة). وبهذا يمكننا:

الهايبرفايزر

تم تنفيذ الهايبرفايزر البسيط الخاص بنا وفقًا لما يلي:

  1. التهيئة الأولية للنظام

    • تفعيل امتدادات المحاكاة الافتراضية للأجهزة (Intel VT-x أو AMD-V) في BIOS/UEFI (الروتكيت لا يفعل ذلك، بل يجب تفعيلها مسبقًا).
    • ضبط سجلات التحكم (CR0 وCR4 وIA32_EFER) للتبديل إلى وضع VMX (امتدادات الآلة الافتراضية من Intel) أو SVM (الآلة الافتراضية الآمنة من AMD).
  2. الدخول إلى وضع VMX أو SVM

    • تهيئة هياكل البيانات الخاصة بالمحاكاة الافتراضية (VMCS في Intel أو VMCB في AMD).
    • برمجة ميزات المعالج، مثل مخارج VM، للتعامل مع التفاعلات بين الضيف والمضيف.
  3. إدارة التحولات بين المضيف والضيف

    • ضبط نقاط الدخول والخروج للآلات الافتراضية (دخول/خروج VM).
    • تنفيذ منطق لاعتراض استدعاءات النظام الحساسة التي يقوم بها الضيف وتحليل تأثيراتها.
  4. إنشاء نظام الضيف

    • تخصيص ذاكرة للضيف وتهيئة موارده (السجلات، المكدس، إلخ).
  5. الاتصال

    • استخدام قنوات اتصال بين الروتكيت والهايبرفايزر لنقل الأوامر أو البيانات.

الاستمرارية

الاستمرارية هي قدرة حرجة لأي روتكيت، إذ تمكنه من الحفاظ على السيطرة على النظام المستهدف حتى بعد إعادة التشغيل.
في تنفيذه الحالي، تُظهر آلية الاستمرارية وظيفتها من خلال إنشاء ملف اختبار في نظام الملفات باستخدام الأمر /bin/touch. يعرض هذا الإجراء المؤقت قدرة الروتكيت على تنفيذ عمليات مميزة ويمكن توسيعه لتنفيذ استراتيجيات استمرارية أكثر تقدمًا.

لم يعد مفيدًا الآن، لأن إنشاء روتكيت بمستوى APT ليس أولويتنا، بل إجراء المزيد من الأبحاث حول مفاهيم أقل شيوعًا.

إعداد بيئة التطوير

يجب تنفيذ عدة خطوات قبل تجميع الروتكيت. تتكون بيئة التطوير من :

  • صورة Alpine Linux توفر الأدوات الأساسية
  • نواة مُجمَّعة مخصصة مع تفعيل Rust
  • آلة افتراضية QEMU مسرَّعة بواسطة KVM

ابدأ باستنساخ المستودع ووحداته الفرعية الضحلة (shallow submodules) :

root@kitploit:~
git clone [email protected]:DualHorizon/blackpill.git --recursive --depth 1

التبعيات المهمة

على توزيعة مبنية على Arch :

root@kitploit:~
sudo pacman -S qemu-base qemu-desktop docker grub

نواة لينكس

على توزيعة لينكس مبنية على Arch، ثبّت Rust والتبعيات الأخرى :

root@kitploit:~
sudo pacman -S rust rust-src rust-bindgen
sudo pacman -S clang lld llvm

ثم سنحتاج إلى مصادر Rust وأداة bindgen :

root@kitploit:~
rustup component add rust-src clippy rustfmt
cargo install --locked bindgen-cli

تأكد من أنك تستطيع بدء تجميع النواة مع Rust بتشغيل الأمر في مجلد linux/ :

root@kitploit:~
$ cd blackpill
$ pushd linux
$ make LLVM=1 rustavailable
Rust is available!
$ popd

شغّل مهمة الإعداد لأول مرة والتي تقوم بإعداد النواة وتجميعها :

root@kitploit:~
make first-time-setup

[!IMPORTANT]
إذا طُلب منك تخصيص الخيارات، اضغط Enter في كل مرة.

الروتكيت

يمكنك تجميع وحدة نواة Rust (خارج الشجرة) باستخدام :

root@kitploit:~
make

شغّل الآلة الافتراضية باستخدام :

root@kitploit:~
make vm

داخل الآلة الافتراضية، يتم تسجيل الدخول تلقائيًا كمستخدم root. يمكنك تفعيل الوحدة:

root@kitploit:~
$ modprobe blackpill
# you can check kernel logs with
$ dmesg

الاستخدام

تصعيد الصلاحيات محليًا

بمجرد بدء تشغيل الآلة الافتراضية، يمكنك استخدام الأمر أعلاه لتصعيد صلاحياتك:

root@kitploit:~
mkdir ImFeelingRootNow_<PID>

استبدل <PID> بمعرف العملية التي تريد تصعيد الصلاحية إليها.

C2

الوصف

يرسل خادم القيادة والتحكم (C2) البسيط هذا أكواد تشغيل x86-64 إلى الجهاز المصاب عبر UDP ويستقبل حزم TCP. وظائفه الآن محدودة بالتفاعل منخفض المستوى مع الجهاز، لكنها قد تسمح بالكثير من الاستخدامات العملية مع المزيد من المغلفات.

الاستخدام

قم بإعداد عميل بايثون:

root@kitploit:~
cd blackpill-c2
poetry install
poetry shell
python client.py

بعد تشغيل العميل مع وسائطك ([ip] [port]) يجب أن تحصل على:

root@kitploit:~
$ python client.py 0.0.0.0 1339
Connected to rootkit!

ثم يمكنك استخدام الأمر help لعرض الأوامر المتاحة:

root@kitploit:~
blackpill: help
Available Commands
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Command                             ┃ Description                                             ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ read_virt_memory <address>          │ Read 4 bytes (32 bits) memory at 'address'              │
│ write_virt_memory <address> <value> │ Write 4 bytes (32 bits) memory at 'address'             │
│ launch_userland_binary <path>       │ Launch a userland binary at 'path'                      │
│ change_msr <msr> <value>            │ Change the value of a Model Specific Register (MSR)     │
│ read_phys_memory <address> <value>  │ Read 4 bytes (32 bits) of physical memory at 'address'  │
│ write_phys_memory <address> <value> │ Write 4 bytes (32 bits) of physical memory at 'address' │
│ stop_execution                      │ Stop the execution of the guest VM                      │
│ change_vmcs_field <field> <value>   │ Change a VMCS field to 'value'                          │
│ help                                │ Show this help message                                  │
└─────────────────────────────────────┴─────────────────────────────────────────────────────────┘

الاعتمادات

إعداد البيئة:

  • إعداد بيئة لكتابة وحدات نواة لينكس بلغة Rust - مؤسسة لينكس
  • تصحيح إعدادات النواة qemu-busybox-min.config
  • وحدة Rust خارج الشجرة
تنزيل الأداة
  • اعتراض حزم واردة محددة باستخدام برنامج XDP عند أدنى مستوى شبكي عبر مطابقة توقيع حمولة TCP المصمم من C2 الخاص بنا، ثم نعيد توجيهها إلى خريطة BPF مخصصة لمعالجتها بواسطة VM/LKM.
  • اعتراض حزم صادرة محددة باستخدام برنامج TC عبر مطابقة حزم TCP الناتجة عن VM/LKM، ثم نعدّلها بالكتابة فوق حمولتها ببيانات استجابة C2. وتُعاد إرسال الحزم الأصلية تلقائيًا عبر TCP، مما يحافظ على مظهر حركة مرور مشروعة.