Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
eBPF-hid_guard — Rilevatore di attacchi di iniezione HID nello spazio kernel Linux tramite eBPF. Monitora i dispositivi HID USB e Bluetooth per rilevare tempistiche anomale di digitazione e scollega automaticamente i dispositivi malevoli prima del completamento dell'attacco. | Kitploit
Strumenti/GitHubGitHub/fusion1110/ebpf-hid_guard
Strumenti DifensiviSicurezza BluetoothSicurezza HardwareRilevamento IntrusioniRilevamento di AnomalieArchived
GitHubfusion1110/ebpf-hid_guard

eBPF-hid_guard

Rilevatore di attacchi di iniezione HID nello spazio kernel Linux tramite eBPF. Monitora i dispositivi HID USB e Bluetooth per rilevare tempistiche anomale di digitazione e scollega automaticamente i dispositivi malevoli prima del completamento dell'attacco.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Vedi Repository
492 mesi faNon ancora revisionato
Condividi

eBPF-hid_guard

Vedi Perché questo è stato archiviato più in basso.

Un monitor di sicurezza nello spazio kernel Linux per rilevare e bloccare attacchi di iniezione HID (Rubber Ducky, O.MG Cable, emulatori di tastiera basati su ESP32) utilizzando eBPF HID-BPF struct_ops.

Cosa fa

I dispositivi HID malevoli emulano tastiere e iniettano sequenze di tasti molto più velocemente di qualsiasi umano. Questo strumento rileva l'anomalia temporale e scollega il dispositivo incriminato dal driver HID del kernel prima che l'attacco sia completato.

All'avvio, lo strumento esegue un'istantanea di tutti i dispositivi HID attualmente connessi e li ignora — vengono monitorati solo i dispositivi appena collegati. Supporta dispositivi HID sia USB che Bluetooth.

Struttura dei rami

main — Proof of Concept funzionante

Pipeline end-to-end funzionante, testata contro un emulatore di tastiera basato su ESP32:

  • Effettua l'istantanea dei dispositivi preesistenti all'avvio; li ignora
  • Thread di scoperta USB e BLE paralleli — il primo che rileva un nuovo dispositivo vince
  • Collega un programma HID-BPF struct_ops al dispositivo scoperto
  • Il lato BPF cattura i byte grezzi del report HID, il timestamp, vendor/prodotto/bus tramite ring buffer
  • Userspace calcola i delta tra le pressioni dei tasti, tiene traccia di un contatore di sospetto e scollega il dispositivo tramite sysfs quando la soglia viene superata
  • Limitazioni note che hanno portato alla riscrittura:

    • Dimensione del report hardcodata a 8 o 9 byte (solo tastiere standard con protocollo boot) — si rompe su descrittori non standard
    • Nessuna analisi del descrittore del report HID — il tipo di dispositivo è assunto, non verificato; scatterà erroneamente su mouse, touchpad o dispositivi compositi
    • La logica di rilevamento risiede interamente nell'userspace — BPF è usato solo come un tubo dati grezzi
    • hid_id derivato dal numero minore sysfs, che non è stabile tra riavvii

    v0.1 — Riscrittura pulita (Sviluppo attivo)

    Base portabile in fase di costruzione prima di ri-cablaggio del layer BPF:

    • Enumera tutti i dispositivi HID tramite /sys/bus/hid/devices/
    • Legge e stampa in esadecimale i descrittori di report grezzi da sysfs
    • Analizzatore del descrittore di report HID in corso (hid_desc_parse.c) — identificherà il tipo di dispositivo prima di collegare
    • Pulito dalla memoria (verificato con AddressSanitizer)

    Architettura prevista

    root@kitploit:~
    ┌─────────────────────────────────────────────────────┐
    │                    Userspace                         │
    │                                                      │
    │  monitor udev → analisi descrittore → tastiera?     │
    │       ↓                                              │
    │  popola mappe di configurazione BPF (soglie, info)   │
    │       ↓                                              │
    │  collega HID-BPF struct_ops su hid_id                │
    │       ↓                                              │
    │  consumatore ring buffer → scollegamento sysfs       │
    └──────────────────────────┬──────────────────────────┘
                               │
    ┌──────────────────────────▼──────────────────────────┐
    │                  BPF (kernel side)                   │
    │                                                      │
    │  hid_device_event → calcolo temporale (varianza      │
    │  online di Welford) → mappe timestamp per tasto      │
    │  → invio ring buffer su anomalia                     │
    └─────────────────────────────────────────────────────┘
    

    La logica di rilevamento si sposta nel BPF. L'userspace gestisce l'analisi dei descrittori, il popolamento delle mappe di configurazione e la risposta di scollegamento. La finestra di enumerazione tra la connessione del dispositivo e il collegamento BPF è una limitazione documentata e delimitata — gli strumenti reali di iniezione HID includono ritardi deliberati post-enumerazione che rientrano in questa finestra.

    Requisiti

    • Kernel Linux ≥ 6.3 (HID-BPF struct_ops stabile)
    • Headers di sviluppo libbpf
    • LLVM/Clang (per la compilazione BPF)
    • Headers di sviluppo libelf e zlib
    • Privilegi di root

    Build

    root@kitploit:~
    make
    

    Utilizzo

    root@kitploit:~
    # Rilevamento automatico: connetti o accoppia il dispositivo quando richiesto
    sudo ./hid_guard
    
    # Override manuale con hid_id noto
    sudo ./hid_guard <hid_id>
    
    # Elenca i dispositivi HID disponibili
    ls /sys/bus/hid/devices/
    

    Parametri di rilevamento (main.c)

    ParametroPredefinitoSignificato
    ATTACK_MAX_MS5 msIntervallo tra pressioni che indica iniezione
    HUMAN_MIN_MS30 msIntervallo minimo per digitazione umana
    ALERT_THRESHOLD3Eventi sospetti consecutivi prima del blocco

    Stato

    ComponenteStato
    Enumerazione dispositiviFatto
    Lettura descrittori di reportFatto
    Analizzatore descrittori (identificazione tastiera)In corso
    Popolamento mappe di configurazione BPFPianificato
    Collegamento HID-BPF struct_opsFatto (ramo main)
    Rilevamento temporale (varianza di Welford, lato BPF)Pianificato
    Blocco scollegamento sysfsFatto (ramo main)

    Test

    È stato utilizzato ESP32-S2 per la trasmissione di sequenze di tasti via BLE. Prossimo passo: testare con hardware come rubber ducky o ESP32-S3, mirando a porte USB.

    Licenza

    GPL v2

    Scarica lo strumento