Poradnik sniffera USB za 34 USD: Przechwytywanie ruchu myszy i naciśnięć klawiszy za pomocą Wireshark
Samouczek dotyczący sniffera USB: przechwytywanie ruchu myszy i naciśnięć klawiszy za pomocą Wireshark
W tym projekcie badamy, w jaki sposób urządzenie sniffer USB może być użyte do monitorowania i analizowania komunikacji USB między komputerem a typowymi urządzeniami wejściowymi, takimi jak mysz i klawiatura. Umieszczając sniffer USB w linii między urządzeniem USB a komputerem, wszystkie pakiety USB przechodzące przez to połączenie mogą być przechwytywane i analizowane w czasie rzeczywistym za pomocą Wireshark.
Ten samouczek pokazuje, w jaki sposób ruchy myszy, kliknięcia przycisków, a nawet naciśnięcia klawiszy (w tym hasła) mogą być obserwowane na poziomie protokołu USB. Projekt ma charakter edukacyjny i ma na celu zrozumienie, jak działają wewnętrznie urządzenia interfejsu człowiek-maszyna (HID) USB oraz dlaczego bezpieczeństwo fizyczne jest równie ważne jak bezpieczeństwo oprogramowania.

Co to jest sniffer USB?
Sniffer USB to urządzenie sprzętowe, które znajduje się pomiędzy urządzeniem peryferyjnym USB (takim jak mysz lub klawiatura) a komputerem hosta. Przekazuje ono dane w sposób przezroczysty, dzięki czemu urządzenie działa normalnie, jednocześnie przechwytując i udostępniając pakiety danych USB przez osobny interfejs monitorujący.
W tym projekcie sniffer USB działa jako urządzenie typu pass-through:
- Mysz lub klawiatura USB podłączana jest do sniffera
- Sniffer podłączany jest do komputera
- Osobne połączenie USB ze sniffera prowadzi do komputera monitorującego z uruchomionym Wireshark
Cały ruch USB przechodzący między urządzeniem a komputerem może być przechwytywany i dekodowany bez wpływu na normalne działanie :contentReference[oaicite:0]{index=0}.

Główne użyte komponenty
Sprzęt sniffera USB
Sniffer USB użyty w tym projekcie oparty jest na projekcie FPGA stworzonym przez Alexa Tarasova. Kompletny projekt obejmuje oprogramowanie układowe, pliki PCB i narzędzia programowe. Używane tutaj urządzenie komercyjne jest dostarczane z wgranym oprogramowaniem układowym, więc nie wymaga flashowania ani konfiguracji przed użyciem.
Wewnętrznie sniffer podsłuchuje różnicowe linie danych USB i lustruje pakiety do osobnego interfejsu USB, który może monitorować Wireshark.
Mysz i klawiatura (urządzenia HID USB)
Zarówno mysz, jak i klawiatura to urządzenia interfejsu człowiek-maszyna (HID) USB. Urządzenia te wysyłają do komputera hosta okresowe raporty opisujące ich stan:
- Mysz: stany przycisków, ruch X, ruch Y
- Klawiatura: klawisze modyfikujące i kody skanowania klawiszy
Raporty te są przesyłane przez USB w postaci jawnej, niezaszyfrowanej, dlatego mogą być przechwytywane przez sniffer.
Komputer z programem Wireshark
Wireshark jest używany do przechwytywania i analizowania pakietów USB. W systemie Windows przechwytywanie USB wymaga dodatkowych komponentów, aby umożliwić dostęp do ruchu USB na poziomie sterownika.
Okablowanie i podłączenie
Sniffer USB jest podłączany w linii pomiędzy urządzeniem USB a komputerem.

- Podłącz mysz lub klawiaturę do portu wejściowego USB sniffera
- Podłącz port wyjściowy USB sniffera do komputera
- Podłącz port monitorujący USB sniffera do tego samego lub innego komputera z uruchomionym Wireshark
Urządzenie USB działa normalnie, podczas gdy jego ruch jest lustrowany do portu monitorującego.
Instalacja wymaganego oprogramowania
Instalacja Wireshark
Wireshark musi być zainstalowany na komputerze monitorującym. Podczas instalacji w systemie Windows niezbędne jest włączenie komponentu obsługi przechwytywania USB. Bez tego sterownika ruch USB nie może być przechwytywany.
Po zainstalowaniu Wireshark wyświetli interfejsy przechwytywania USB obok interfejsów sieciowych.
Sterownik sniffera USB (Windows)
W systemie Windows wymagany jest mały plik wykonywalny pomocniczy, aby umożliwić Wireshark dostęp do danych ze sniffera USB ze sprzętu. Ten plik wykonywalny musi być umieszczony w ścieżce systemowej (na przykład bezpośrednio w folderze C:\Program Files\Wireshark\extcap lub w miejscu, gdzie zainstalowano Wireshark), aby Wireshark mógł komunikować się ze snifferem.
Przechwytywanie danych USB w Wireshark
Po uruchomieniu Wireshark wybierz interfejs sniffera USB i rozpocznij przechwytywanie. Początkowo może pojawić się duża ilość niezwiązanych z tematem pakietów USB.
Stosowanie filtrów USB
Aby skupić się tylko na istotnych danych USB, stosowany jest filtr wyświetlania:
usbll
Ten filtr pokazuje tylko pakiety warstwy łącza USB, które zawierają surowe transakcje USB wymieniane między urządzeniem a hostem.
Konieczne jest dalsze filtrowanie, ponieważ USB generuje bardzo dużą ilość danych.
Filtrowanie według identyfikatora pakietu (PID)
Pakiety danych myszy i klawiatury można zidentyfikować po określonych identyfikatorach pakietów (PID). W tym projekcie zaobserwowano następujące istotne PID:
0xC30x4B
Można je filtrować w Wiresharku za pomocą:
usbll.pid == 0xC3 || usbll.pid == 0x4B
Ten filtr izoluje pakiety raportów HID pochodzące z myszy lub klawiatury.
Zrozumienie danych myszy
Gdy mysz jest przesuwana lub klikana, raporty HID są wysyłane w sposób ciągły. Każdy raport zawiera kilka bajtów:
- Identyfikator raportu
- Stany przycisków (lewy, prawy, środkowy)
- Ruch w osi X
- Ruch w osi Y
Obserwując zmieniające się wartości bajtów w Wiresharku, można wywnioskować kierunek i prędkość ruchu myszy. Nawet bez klikania sam ruch generuje widoczną aktywność USB.
Zrozumienie danych klawiatury
Dane klawiatury są wysyłane jako raporty HID zawierające kody skanowania, a nie wartości ASCII. Każdemu klawiszowi odpowiada określony identyfikator użycia HID.
Na przykład:
0x04→ Litera A0x05→ Litera B0x0E→ Litera K
Wielkie i małe litery są określane przez klawisze modyfikujące, takie jak Shift, które pojawiają się w oddzielnych bajtach raportu.
Klawisze funkcyjne, takie jak F12, również generują unikalne kody skanowania, które można bezpośrednio zaobserwować w przechwyconych pakietach.
Konsekwencje dla bezpieczeństwa
Ten projekt wyraźnie pokazuje, że ruch HID USB nie jest szyfrowany. Jeśli złośliwe urządzenie zostanie fizycznie umieszczone między klawiaturą a komputerem, może przechwycić każde naciśnięcie klawisza, w tym nazwy użytkownika i hasła.
Dlatego bezpieczeństwo USB, zaufany sprzęt i kontrola dostępu fizycznego są kluczowe w wrażliwych środowiskach.
Podsumowanie demonstracji
W tej demonstracji pomyślnie przechwycono i zdekodowano:
- Ruch myszy i aktywność przycisków
- Pojedyncze naciśnięcia klawiszy klawiatury
- Klawisze funkcyjne i modyfikujące
- Pełne słowa wpisane na klawiaturze
Sniffer USB działa w sposób przezroczysty, co utrudnia wykrycie bez fizycznej inspekcji.
Wnioski
Ten projekt sniffera USB zapewnia praktyczną demonstrację działania komunikacji USB na najniższym poziomie. Łącząc dedykowany sprzęt do przechwytywania z Wiresharkiem, można dokładnie zobaczyć, jak urządzenia wejściowe komunikują się z komputerami.
Projekt jest idealny do nauki protokołów USB, struktur raportów HID i rzeczywistych zagadnień bezpieczeństwa. Chociaż został zademonstrowany na myszy i klawiaturze, te same zasady dotyczą wielu innych urządzeń USB.
Pobieranie oprogramowania
Aplikacja pomocnicza dla systemu Windows usb_sniffer_win.exe wymagana do przechwytywania danych USB za pomocą Wiresharka jest dostępna do pobrania poniżej tego artykułu.
Rzeczy, których możesz potrzebować
-
AmazonPurchase USB sniffer from Amazonamzn.to
-
AllegroPurchase USB sniffer from eBayebay.us
-
AliExpressPurchase USB sniffer from AliExpresss.click.aliexpress.com
-
BanggoodPurchase USB sniffer from Banggoodbanggood.com
Zasoby i odniesienia
-
PobierzDownload Wiresharkwireshark.org
Pliki📁
Instrukcja obsługi
-
USB Sniffer User's manual_english
usb_sniffer_manual_english-1.pdf1.06 MB -
USB Sniffer Manual EnglishUser manual for a USB sniffer device. It explains how to set up and use the sniffer to capture and analyze USB traffic between a host and a device.
usb_sniffer_manual_english.pdf1.06 MB
Inne pliki
-
usb_sniffer_win.exe
usb_sniffer_win.zip0.29 MB