Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 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
4183 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

┌─────────────────────────────────────────────────────┐
│                    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

make

Utilizzo

# 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