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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
eBPF-hid_guard — كاشف هجمات حقن HID في مساحة نواة لينكس باستخدام eBPF. يراقب أجهزة USB وBluetooth HID بحثًا عن توقيت ضغط مفاتيح شاذ ويفصل الأجهزة الضارة تلقائيًا قبل اكتمال الهجوم. | Kitploit
أدوات/GitHubGitHub/fusion1110/ebpf-hid_guard
أدوات دفاعيةأمن البلوتوثأمن الأجهزةكشف التسللكشف الشذوذArchived
GitHubfusion1110/ebpf-hid_guard

eBPF-hid_guard

كاشف هجمات حقن HID في مساحة نواة لينكس باستخدام eBPF. يراقب أجهزة USB وBluetooth HID بحثًا عن توقيت ضغط مفاتيح شاذ ويفصل الأجهزة الضارة تلقائيًا قبل اكتمال الهجوم.

عرض المستودع
4منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

eBPF-hid_guard

انظر لماذا تمت أرشفة هذا أدناه.

أداة مراقبة أمنية تعمل في مساحة نواة لينكس لكشف ومنع هجمات حقن HID (Rubber Ducky، كابل O.MG، محاكيات لوحة المفاتيح المستندة إلى ESP32) باستخدام eBPF HID-BPF struct_ops.

ما تقوم به هذه الأداة

أجهزة HID الضارة تحاكي لوحات المفاتيح وتحقن ضغطات لوحة مفاتيح أسرع بكثير من أي كاتب بشري. تكتشف هذه الأداة ذلك الشذوذ الزمني وتفصل الجهاز المخالف عن مشغل HID للنواة قبل اكتمال الهجوم.

عند بدء التشغيل، تلتقط الأداة لقطة لجميع أجهزة HID المتصلة حالياً وتتجاهلها — يتم مراقبة الأجهزة المتصلة حديثاً فقط. تدعم كل من أجهزة USB و Bluetooth HID.

هيكل الفرع

main — إثبات مفهوم عامل

خط أنابيب شامل عامل، تم اختباره مقابل محاكي لوحة مفاتيح قائم على ESP32:

  • يلتقط الأجهزة الموجودة مسبقاً عند بدء التشغيل؛ ويتجاهلها
  • سلاسل بحث متوازية لـ USB و BLE — الأول في اكتشاف جهاز جديد يفوز
  • يرفق برنامج struct_ops HID-BPF بالجهاز المكتشف
  • جانب BPF يلتقط بايتات تقرير HID الخام، الطابع الزمني، البائع/المنتج/الناقل عبر المخزن الحلقي
  • مساحة المستخدم تحسب دلتات الفواصل الزمنية بين ضغطات المفاتيح، وتتبع عداد شبهة، وتفصل الجهاز عبر sysfs عند تجاوز العتبة

قيود معروفة أدت إلى إعادة الكتابة:

  • حجم التقرير مقنن بـ 8 أو 9 بايت (لوحات مفاتيح بروتوكول الإقلاع القياسي فقط) — يتعطل على الواصفات غير القياسية
  • لا يوجد تحليل لواصف تقرير HID — يُفترض نوع الجهاز، وليس التحقق؛ سيطلق إنذاراً خاطئاً على الفئران، أو لوحات اللمس، أو الأجهزة المركبة
  • منطق الكشف يعيش بالكامل في مساحة المستخدم — يُستخدم BPF فقط كأنبوب بيانات خام
  • hid_id مشتق من رقم sysfs الثانوي، وهو غير ثابت عبر عمليات إعادة التشغيل

v0.1 — إعادة كتابة نظيفة (متوقفة)

أساس محمول تم بناؤه قبل إعادة توصيل طبقة BPF:

  • يسرد جميع أجهزة HID عبر /sys/bus/hid/devices/
  • يقرأ ويُنتج تفريغاً سداسياً لواصفات التقارير الخام من sysfs
  • محلل واصف تقرير HID قيد التطوير (hid_desc_parse.c) — تعريف نوع الجهاز لم يكتمل
  • نظيف من ناحية الذاكرة (تم التحقق باستخدام AddressSanitizer)

لماذا تمت أرشفة هذا

كلا الفرعين اصطدما بنفس الجدار: HID-BPF يعمل على مصفوفات بايت خام، لذا يجب أن يعيش كل تحليل الواصفات والتحقق من نوع الجهاز في مساحة المستخدم بغض النظر عن كيفية تقسيم منطق الكشف. بدلاً من الاستمرار في بناء تلك السقالات من الصفر، انتقلت إلى [udev-hid-bpf].

ما تقوم به هذه الأداة

أجهزة HID الضارة تحاكي لوحات المفاتيح وتحقن ضغطات لوحة مفاتيح أسرع بكثير من أي كاتب بشري. تكتشف هذه الأداة ذلك الشذوذ الزمني وتفصل الجهاز المخالف عن مشغل HID للنواة قبل اكتمال الهجوم.

عند بدء التشغيل، تلتقط الأداة لقطة لجميع أجهزة HID المتصلة حالياً وتتجاهلها — يتم مراقبة الأجهزة المتصلة حديثاً فقط. تدعم كل من أجهزة USB و Bluetooth HID.

هيكل الفرع

main — إثبات مفهوم عامل

خط أنابيب شامل عامل، تم اختباره مقابل محاكي لوحة مفاتيح قائم على ESP32:

  • يلتقط الأجهزة الموجودة مسبقاً عند بدء التشغيل؛ ويتجاهلها
  • سلاسل بحث متوازية لـ USB و BLE — الأول في اكتشاف جهاز جديد يفوز
  • يرفق برنامج struct_ops HID-BPF بالجهاز المكتشف
  • جانب BPF يلتقط بايتات تقرير HID الخام، الطابع الزمني، البائع/المنتج/الناقل عبر المخزن الحلقي
  • مساحة المستخدم تحسب دلتات الفواصل الزمنية بين ضغطات المفاتيح، وتتبع عداد شبهة، وتفصل الجهاز عبر sysfs عند تجاوز العتبة

قيود معروفة أدت إلى إعادة الكتابة:

  • حجم التقرير مقنن بـ 8 أو 9 بايت (لوحات مفاتيح بروتوكول الإقلاع القياسي فقط) — يتعطل على الواصفات غير القياسية
  • لا يوجد تحليل لواصف تقرير HID — يُفترض نوع الجهاز، وليس التحقق؛ سيطلق إنذاراً خاطئاً على الفئران، أو لوحات اللمس، أو الأجهزة المركبة
  • منطق الكشف يعيش بالكامل في مساحة المستخدم — يُستخدم BPF فقط كأنبوب بيانات خام
  • hid_id مشتق من رقم sysfs الثانوي، وهو غير ثابت عبر عمليات إعادة التشغيل

v0.1 — إعادة كتابة نظيفة (تطوير نشط)

أساس محمول يُبنى حالياً قبل إعادة توصيل طبقة BPF:

  • يسرد جميع أجهزة HID عبر /sys/bus/hid/devices/
  • يقرأ ويُنتج تفريغاً سداسياً لواصفات التقارير الخام من sysfs
  • محلل واصف تقرير HID قيد التطوير (hid_desc_parse.c) — سيعرف نوع الجهاز قبل الرفع
  • نظيف من ناحية الذاكرة (تم التحقق باستخدام AddressSanitizer)

الهيكل المعماري المقصود

root@kitploit:~
┌─────────────────────────────────────────────────────┐
│                    مساحة المستخدم                    │
│                                                      │
│  شاشة udev → تحليل الواصف → لوحة مفاتيح؟            │
│       ↓                                              │
│  ملء خرائط تكوين BPF (العتبات، معلومات الجهاز)      │
│       ↓                                              │
│  رفع HID-BPF struct_ops إلى hid_id                 │
│       ↓                                              │
│  مستهلك المخزن الحلقي → فصل sysfs عند الهجوم        │
└──────────────────────────┬──────────────────────────┘
                           │
┌──────────────────────────▼──────────────────────────┐
│             BPF (جانب النواة)                       │
│                                                      │
│  hid_device_event → حساب زمني (تباين ويلفورد عبر     │
│  الإنترنت، نقطة ثابتة) → خرائط زمنية لكل مفتاح     │
│  → إرسال المخزن الحلقي عند الشذوذ                  │
└─────────────────────────────────────────────────────┘

منطق الكشف ينتقل إلى BPF. مساحة المستخدم تتعامل مع تحليل الواصف، ملء خرائط التكوين، واستجابة الفصل. نافذة التعداد بين اتصال الجهاز ورفع BPF هي قيد موثق ومحدود — أدوات حقن HID في العالم الحقيقي تتضمن تأخيرات متعمدة بعد التعداد تقع هذه النافذة ضمنها.

المتطلبات

  • نواة لينكس ≥ 6.3 (HID-BPF struct_ops مستقرة)
  • رؤوس تطوير libbpf
  • LLVM/Clang (لتجميع BPF)
  • رؤوس تطوير libelf و zlib
  • صلاحيات الجذر

البناء

root@kitploit:~
make

الاستخدام

root@kitploit:~
# كشف تلقائي: قم بتوصيل أو إقران الجهاز عند المطالبة
sudo ./hid_guard

# تجاوز يدوي باستخدام hid_id معروف
sudo ./hid_guard <hid_id>

# قائمة أجهزة HID المتاحة
ls /sys/bus/hid/devices/

معلمات الكشف القابلة للتعديل (main.c)

Parameter (المعامل)Default (الافتراضي)Meaning (المعنى)

الحالة

الاختبار

تم استخدام ESP32-S2 للإرسال عبر BLE. التالي، اختبار مع أجهزة مثل rubber ducky أو ESP32-S3، مع استهداف منافذ USB.

الترخيص

GPL v2

تنزيل الأداة
ATTACK_MAX_MS
5 ms
الفاصل الزمني بين ضغطات المفاتيح الذي يشير إلى الحقن
HUMAN_MIN_MS30 msالحد الأدنى للفاصل الزمني للكتابة البشرية
ALERT_THRESHOLD3الأحداث المشبوهة المتتالية قبل الحظر
Component (المكون)State (الحالة)
تعداد الجهازمكتمل
قراءة واصف التقريرمكتمل
محلل الواصف (تعريف لوحة المفاتيح)قيد التطوير
ملء خرائط تكوين BPFمخطط له
رفع HID-BPF struct_opsمكتمل (فرع main)
كشف التوقيت (تباين ويلفورد، جانب BPF)مخطط له
حظر الفصل عبر sysfsمكتمل (فرع main)