Search Code

Poradnik sniffera USB za 34 USD: Przechwytywanie ruchu myszy i naciśnięć klawiszy za pomocą Wireshark

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.

usb_sniffter-12

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.

usb_sniffter-4

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.

usb-sniffer-wiring-mouse
usb-sniffer-wiring-keyboard
usb-sniffer-wiring-mouse
  • 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.

usb_sniffter-11

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:

  • 0xC3
  • 0x4B

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 A
  • 0x05 → Litera B
  • 0x0E → 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.

Obrazy

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
Brak załączonego kodu.

Rzeczy, których możesz potrzebować

Zasoby i odniesienia

Pliki📁

Instrukcja obsługi

Inne pliki