Search Code

$34 USB-sniffer-tutorial: muisbewegingen en toetsaanslagen vastleggen met Wireshark

$34 USB-sniffer-tutorial: muisbewegingen en toetsaanslagen vastleggen met Wireshark

USB-sniffer-zelfstudie: muisbewegingen en toetsaanslagen vastleggen met Wireshark

In dit project onderzoeken we hoe een USB-snifferapparaat kan worden gebruikt om USB-communicatie tussen een computer en veelvoorkomende invoerapparaten zoals een muis en een toetsenbord te bewaken en analyseren. Door een USB-sniffer inline te plaatsen tussen het USB-apparaat en de computer, kunnen alle USB-pakketten die passeren in realtime worden vastgelegd en geanalyseerd met Wireshark.

usb_sniffter-12

Deze zelfstudie laat zien hoe muisbewegingen, knopklikken en zelfs toetsaanslagen (inclusief wachtwoorden) kunnen worden waargenomen op USB-protocolniveau. Het project is bedoeld voor educatieve doeleinden om te begrijpen hoe USB Human Interface Devices (HID) intern werken en waarom fysieke beveiliging net zo belangrijk is als softwarebeveiliging.

Wat is een USB-sniffer?

Een USB-sniffer is een hardwareapparaat dat zich tussen een USB-randapparaat (zoals een muis of toetsenbord) en een hostcomputer bevindt. Het geeft gegevens transparant door zodat het apparaat normaal werkt, terwijl het tegelijkertijd de USB-gegevenspakketten vastlegt en blootstelt via een aparte bewakingsinterface.

In dit project fungeert de USB-sniffer als een doorvoerapparaat:

  • De USB-muis of het USB-toetsenbord wordt op de sniffer aangesloten
  • De sniffer wordt op de computer aangesloten
  • Een aparte USB-verbinding van de sniffer gaat naar een bewakingscomputer waarop Wireshark draait

Al het USB-verkeer dat tussen het apparaat en de computer passeert, kan worden vastgelegd en gedecodeerd zonder de normale werking te beïnvloeden :contentReference[oaicite:0]{index=0}.

Belangrijkste gebruikte componenten

USB-snifferhardware

De USB-sniffer die in dit project wordt gebruikt, is gebaseerd op een FPGA-ontwerp van Alex Tarasov. Het volledige ontwerp omvat firmware, PCB-bestanden en softwaretools. Het hier gebruikte commerciële apparaat wordt geleverd met vooraf geladen firmware, zodat er geen flashen of configuratie nodig is vóór gebruik.

Intern tapt de sniffer de differentiële USB-datalijnen af en spiegelt de pakketten naar een aparte USB-interface die Wireshark kan bewaken.

usb_sniffter-4

Muis en toetsenbord (USB HID-apparaten)

Zowel de muis als het toetsenbord zijn USB Human Interface Devices (HID). Deze apparaten sturen periodieke rapporten naar de hostcomputer die hun status beschrijven:

  • Muis: knopstatussen, X-beweging, Y-beweging
  • Toetsenbord: modificatortoetsen en scancodes van toetsen

Deze rapporten worden in duidelijke, niet-versleutelde vorm via USB verzonden, daarom kunnen ze door een sniffer worden vastgelegd.

Computer met Wireshark

Wireshark wordt gebruikt om de USB-pakketten vast te leggen en te analyseren. Op Windows vereist USB-captuur extra componenten om toegang tot USB-verkeer op stuurprogrammaniveau mogelijk te maken.

Bedrading en aansluiting

De USB-sniffer wordt inline aangesloten tussen het USB-apparaat en de computer.

usb-sniffer-wiring-mouse
usb-sniffer-wiring-keyboard
usb-sniffer-wiring-mouse
  • Sluit de muis of het toetsenbord aan op de USB-ingangspoort van de sniffer
  • Sluit de USB-uitgangspoort van de sniffer aan op de computer
  • Sluit de bewakings-USB-poort van de sniffer aan op dezelfde of een andere computer waarop Wireshark draait

Het USB-apparaat blijft normaal werken terwijl het verkeer naar de bewakingspoort wordt gespiegeld.

Vereiste software installeren

Wireshark installeren

Wireshark moet op de bewakingscomputer worden geïnstalleerd. Tijdens de installatie op Windows is het essentieel om de component voor USB-captuurondersteuning in te schakelen. Zonder dit stuurprogramma kan USB-verkeer niet worden vastgelegd.

Eenmaal geïnstalleerd, toont Wireshark USB-captuurinterfaces naast netwerkinterfaces.

USB-snifferstuurprogramma (Windows)

Een klein hulpprogramma is vereist op Windows om Wireshark toegang te geven tot USB-sniffergegevens van de hardware. Dit uitvoerbare bestand moet in het systeempad worden geplaatst (bijvoorbeeld direct onder C:\Program Files\Wireshark\extcap  of waar je Wireshark ook hebt geïnstalleerd), zodat Wireshark met de sniffer kan communiceren.

USB-gegevens vastleggen in Wireshark

Na het starten van Wireshark selecteer je de USB-snifferinterface en begin je met vastleggen. In eerste instantie kan een grote hoeveelheid niet-gerelateerd USB-verkeer verschijnen.

usb_sniffter-11

USB-filters toepassen

Om alleen op relevante USB-gegevens te focussen, wordt een weergavefilter toegepast:

usbll

Dit filter toont alleen USB Link Layer-pakketten, die de ruwe USB-transacties bevatten die tussen het apparaat en de host worden uitgewisseld.

Verdere filtering is nodig omdat USB een zeer hoog gegevensvolume produceert.

Filteren op pakket-ID (PID)

Muis- en toetsenbordgegevenspakketten kunnen worden geïdentificeerd aan de hand van specifieke pakket-ID's (PID). In dit project zijn de relevante waargenomen PID's:

  • 0xC3
  • 0x4B

Deze kunnen in Wireshark worden gefilterd met:

usbll.pid == 0xC3 || usbll.pid == 0x4B

Dit filter isoleert HID-rapportpakketten die afkomstig zijn van de muis of het toetsenbord.

Muisgegevens begrijpen

Wanneer de muis wordt bewogen of geklikt, worden er continu HID-rapporten verzonden. Elk rapport bevat verschillende bytes:

  • Rapport-ID
  • Knopstatussen (links, rechts, middel)
  • X-as beweging
  • Y-as beweging

Door de veranderende bytewaarden in Wireshark te observeren, kunnen de bewegingsrichting en snelheid van de muis worden afgeleid. Zelfs zonder te klikken genereert beweging alleen al zichtbare USB-activiteit.

Toetsenbordgegevens begrijpen

Toetsenbordgegevens worden verzonden als HID-rapporten die scancodes bevatten in plaats van ASCII-waarden. Elke toets komt overeen met een specifieke HID-usage-ID.

Bijvoorbeeld:

  • 0x04 → Letter A
  • 0x05 → Letter B
  • 0x0E → Letter K

Hoofdletters en kleine letters worden bepaald door modificatietoetsen zoals Shift, die in afzonderlijke bytes van het rapport verschijnen.

Functietoetsen zoals F12 genereren ook unieke scancodes die direct in de vastgelegde pakketten kunnen worden waargenomen.

Beveiligingsimplicaties

Dit project toont duidelijk aan dat USB HID-verkeer niet versleuteld is. Als een kwaadaardig apparaat fysiek tussen een toetsenbord en een computer wordt geplaatst, kan het elke toetsaanslag vastleggen, inclusief gebruikersnamen en wachtwoorden.

Dit is de reden waarom USB-beveiliging, vertrouwde hardware en fysieke toegangscontrole cruciaal zijn in gevoelige omgevingen.

Demonstratiesamenvatting

In deze demonstratie werden de volgende zaken succesvol vastgelegd en gedecodeerd:

  • Muisbeweging en knopactiviteit
  • Individuele toetsaanslagen op het toetsenbord
  • Functietoetsen en modificatietoetsen
  • Volledige woorden die op het toetsenbord zijn getypt

De USB-sniffer werkt transparant, waardoor detectie zonder fysieke inspectie moeilijk is.

Conclusie

Dit USB-snifferproject biedt een krachtige praktische demonstratie van hoe USB-communicatie op het laagste niveau werkt. Door speciale sniffinghardware te combineren met Wireshark, wordt het mogelijk om precies te zien hoe invoerapparaten met computers communiceren.

Het project is ideaal voor het leren van USB-protocollen, HID-rapportstructuren en praktische beveiligingsoverwegingen. Hoewel gedemonstreerd met een muis en toetsenbord, gelden dezelfde principes voor veel andere USB-apparaten.

Softwaredownload

De Windows-hulptoepassing usb_sniffer_win.exe die nodig is voor het vastleggen van USB-gegevens met Wireshark, is beschikbaar voor download onderaan dit artikel.

Afbeeldingen

usb_sniffter-3
usb_sniffter-3
usb_sniffter-4
usb_sniffter-4
usb_sniffter-5
usb_sniffter-5
usb_sniffter-6
usb_sniffter-6
USB Sniffer
USB Sniffer
usb_sniffter-10
usb_sniffter-10
usb_sniffter-11
usb_sniffter-11
usb_sniffter-12
usb_sniffter-12
usb_sniffter-8_software
usb_sniffter-8_software
usb_sniffter-9
usb_sniffter-9
usb-sniffer-wiring-keyboard
usb-sniffer-wiring-keyboard
usb-sniffer-wiring-mouse
usb-sniffer-wiring-mouse
Geen code bijgevoegd.

Dingen die je misschien nodig hebt

Hulpmiddelen en referenties

Bestanden📁

Gebruikershandleiding

Andere bestanden