Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
eBPF-hid_guard — eBPF का उपयोग करके Linux कर्नेल-स्पेस HID इंजेक्शन हमला डिटेक्टर। USB और ब्लूटूथ HID उपकरणों को संदिग्ध कीस्ट्रोक टाइमिंग के लिए मॉनिटर करता है और हमला पूरा होने से पहले स्वचालित रूप से दुर्भावनापूर्ण उपकरणों को अनबाइंड करता है। | Kitploit
उपकरण/GitHubGitHub/fusion1110/ebpf-hid_guard
रक्षात्मक उपकरणब्लूटूथ सुरक्षाहार्डवेयर सुरक्षाघुसपैठ का पता लगानाविसंगति का पता लगानाArchived
GitHubfusion1110/ebpf-hid_guard

eBPF-hid_guard

eBPF का उपयोग करके Linux कर्नेल-स्पेस HID इंजेक्शन हमला डिटेक्टर। USB और ब्लूटूथ HID उपकरणों को संदिग्ध कीस्ट्रोक टाइमिंग के लिए मॉनिटर करता है और हमला पूरा होने से पहले स्वचालित रूप से दुर्भावनापूर्ण उपकरणों को अनबाइंड करता है।

रिपॉजिटरी देखें
41 महीना पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

eBPF-hid_guard

नीचे यह क्यों संग्रहित किया गया देखें।

eBPF HID-BPF struct_ops का उपयोग करके HID इंजेक्शन हमलों (रबर डकी, O.MG केबल, ESP32-आधारित कीबोर्ड एमुलेटर) का पता लगाने और उन्हें अवरुद्ध करने के लिए एक Linux कर्नेल-स्पेस सुरक्षा मॉनिटर।

यह क्या करता है

दुर्भावनापूर्ण HID उपकरण कीबोर्ड का अनुकरण करते हैं और किसी भी मानव टाइपिस्ट की तुलना में कहीं अधिक तेज़ी से कीस्ट्रोक्स इंजेक्ट करते हैं। यह उपकरण उस समय विसंगति का पता लगाता है और हमला पूरा होने से पहले दोषपूर्ण उपकरण को कर्नेल HID ड्राइवर से अनबाइंड कर देता है।

स्टार्टअप पर, उपकरण वर्तमान में जुड़े सभी HID उपकरणों का स्नैपशॉट लेता है और उन्हें अनदेखा करता है — केवल नए जुड़े उपकरणों की निगरानी की जाती है। यह USB और ब्लूटूथ दोनों HID उपकरणों का समर्थन करता है।

शाखा संरचना

main — कार्यशील प्रूफ ऑफ कॉन्सेप्ट

कार्यात्मक एंड-टू-एंड पाइपलाइन, ESP32-आधारित कीबोर्ड एमुलेटर के विरुद्ध परीक्षण किया गया:

  • स्टार्टअप पर पूर्व-मौजूदा उपकरणों का स्नैपशॉट लेता है; उन्हें अनदेखा करता है
  • समानांतर USB और BLE डिस्कवरी थ्रेड — नए उपकरण का पता लगाने वाला पहला जीतता है
  • खोजे गए उपकरण में एक HID-BPF struct_ops प्रोग्राम संलग्न करता है
  • BPF पक्ष रिंग बफर के माध्यम से कच्चे HID रिपोर्ट बाइट्स, टाइमस्टैम्प, विक्रेता/उत्पाद/बस को कैप्चर करता है
  • यूज़रस्पेस इंटर-कीस्ट्रोक डेल्टा की गणना करता है, एक संदेह काउंटर ट्रैक करता है, और जब सीमा पार हो जाती है तो sysfs के माध्यम से उपकरण को अनबाइंड कर देता है

ज्ञात सीमाएँ जिन्होंने पुनर्लेखन को प्रेरित किया:

  • रिपोर्ट का आकार 8 या 9 बाइट्स (केवल मानक बूट-प्रोटोकॉल कीबोर्ड) पर हार्डकोड किया गया — गैर-मानक डिस्क्रिप्टर पर टूट जाता है
  • कोई HID रिपोर्ट डिस्क्रिप्टर पार्सिंग नहीं — उपकरण प्रकार मान लिया जाता है, सत्यापित नहीं किया जाता; माइस, टचपैड या कम्पोजिट उपकरणों पर गलत फायर करेगा
  • डिटेक्शन लॉजिक पूरी तरह से यूज़रस्पेस में रहता है — BPF का उपयोग केवल कच्चे डेटा पाइप के रूप में किया जाता है
  • hid_id sysfs माइनर नंबर से लिया गया है, जो रीबूट के दौरान स्थिर नहीं है

v0.1 — स्वच्छ पुनर्लेखन (रोका गया)

BPF परत को फिर से तार करने से पहले बनाया गया पोर्टेबल फाउंडेशन:

  • /sys/bus/hid/devices/ के माध्यम से सभी HID उपकरणों की गणना करता है
  • sysfs से कच्चे रिपोर्ट डिस्क्रिप्टर पढ़ता और हेक्स-डंप करता है
  • HID रिपोर्ट डिस्क्रिप्टर पार्सर प्रगति पर है (hid_desc_parse.c) — उपकरण प्रकार पहचान पूर्ण नहीं हुई
  • मेमोरी-क्लीन (AddressSanitizer के साथ सत्यापित)

यह क्यों संग्रहित किया गया

दोनों शाखाएं एक ही दीवार से टकराईं: HID-BPF कच्चे बाइट सरणियों पर काम करता है, इसलिए सभी डिस्क्रिप्टर पार्सिंग और डिवाइस-प्रकार सत्यापन को इस बात की परवाह किए बिना यूज़रस्पेस में रहना होगा कि डिटेक्शन लॉजिक कैसे विभाजित है। उस मचान को खरोंच से बनाते रहने के बजाय, मैं [udev-hid-bpf] पर चला गया।

यह क्या करता है

दुर्भावनापूर्ण HID उपकरण कीबोर्ड का अनुकरण करते हैं और किसी भी मानव टाइपिस्ट की तुलना में कहीं अधिक तेज़ी से कीस्ट्रोक्स इंजेक्ट करते हैं। यह उपकरण उस समय विसंगति का पता लगाता है और हमला पूरा होने से पहले दोषपूर्ण उपकरण को कर्नेल HID ड्राइवर से अनबाइंड कर देता है।

स्टार्टअप पर, उपकरण वर्तमान में जुड़े सभी HID उपकरणों का स्नैपशॉट लेता है और उन्हें अनदेखा करता है — केवल नए जुड़े उपकरणों की निगरानी की जाती है। यह USB और ब्लूटूथ दोनों HID उपकरणों का समर्थन करता है।

शाखा संरचना

main — कार्यशील प्रूफ ऑफ कॉन्सेप्ट

कार्यात्मक एंड-टू-एंड पाइपलाइन, ESP32-आधारित कीबोर्ड एमुलेटर के विरुद्ध परीक्षण किया गया:

  • स्टार्टअप पर पूर्व-मौजूदा उपकरणों का स्नैपशॉट लेता है; उन्हें अनदेखा करता है
  • समानांतर USB और BLE डिस्कवरी थ्रेड — नए उपकरण का पता लगाने वाला पहला जीतता है
  • खोजे गए उपकरण में एक HID-BPF struct_ops प्रोग्राम संलग्न करता है
  • BPF पक्ष रिंग बफर के माध्यम से कच्चे HID रिपोर्ट बाइट्स, टाइमस्टैम्प, विक्रेता/उत्पाद/बस को कैप्चर करता है
  • यूज़रस्पेस इंटर-कीस्ट्रोक डेल्टा की गणना करता है, एक संदेह काउंटर ट्रैक करता है, और जब सीमा पार हो जाती है तो sysfs के माध्यम से उपकरण को अनबाइंड कर देता है

ज्ञात सीमाएँ जिन्होंने पुनर्लेखन को प्रेरित किया:

  • रिपोर्ट का आकार 8 या 9 बाइट्स (केवल मानक बूट-प्रोटोकॉल कीबोर्ड) पर हार्डकोड किया गया — गैर-मानक डिस्क्रिप्टर पर टूट जाता है
  • कोई HID रिपोर्ट डिस्क्रिप्टर पार्सिंग नहीं — उपकरण प्रकार मान लिया जाता है, सत्यापित नहीं किया जाता; माइस, टचपैड या कम्पोजिट उपकरणों पर गलत फायर करेगा
  • डिटेक्शन लॉजिक पूरी तरह से यूज़रस्पेस में रहता है — BPF का उपयोग केवल कच्चे डेटा पाइप के रूप में किया जाता है
  • hid_id sysfs माइनर नंबर से लिया गया है, जो रीबूट के दौरान स्थिर नहीं है

v0.1 — स्वच्छ पुनर्लेखन (सक्रिय विकास)

BPF परत को फिर से तार करने से पहले बनाया जा रहा पोर्टेबल फाउंडेशन:

  • /sys/bus/hid/devices/ के माध्यम से सभी HID उपकरणों की गणना करता है
  • 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)

पैरामीटरडिफ़ॉल्टअर्थ
ATTACK_MAX_MS5 ms

स्थिति

परीक्षण

BLE कीस्ट्रोक ट्रांसमिशन के लिए ESP32-S2 का उपयोग किया गया। अगला, रबर डकी या ESP32-S3 जैसे हार्डवेयर के साथ परीक्षण करें, USB पोर्ट को लक्ष्य करते हुए

लाइसेंस

GPL v2

टूल डाउनलोड करें
इंजेक्शन का संकेत देने वाला इंटर-कीस्ट्रोक अंतराल
HUMAN_MIN_MS30 msमानव टाइपिंग के लिए न्यूनतम अंतराल
ALERT_THRESHOLD3ब्लॉक करने से पहले लगातार संदिग्ध घटनाएं
घटकस्थिति
डिवाइस एनुमरेशनपूर्ण
रिपोर्ट डिस्क्रिप्टर पढ़नापूर्ण
डिस्क्रिप्टर पार्सर (कीबोर्ड पहचान)प्रगति पर
BPF कॉन्फिग मैप पॉप्युलेशनयोजनाबद्ध
HID-BPF struct_ops अटैचमेंटपूर्ण (main शाखा)
टाइमिंग डिटेक्शन (वेलफोर्ड वेरियंस, BPF-पक्ष)योजनाबद्ध
Sysfs अनबाइंड ब्लॉकिंगपूर्ण (main शाखा)