Search Code

Hướng dẫn USB Sniffer giá 34 đô la: Bắt chuyển động chuột và phím bàn phím bằng Wireshark

Hướng dẫn USB Sniffer giá 34 đô la: Bắt chuyển động chuột và phím bàn phím bằng Wireshark

Hướng dẫn USB Sniffer: Bắt chuyển động chuột và phím bấm bàn phím bằng Wireshark

Trong dự án này, chúng ta khám phá cách một thiết bị USB sniffer có thể được sử dụng để giám sát và phân tích giao tiếp USB giữa máy tính và các thiết bị đầu vào phổ biến như chuột và bàn phím. Bằng cách đặt một USB sniffer nối tiếp giữa thiết bị USB và máy tính, tất cả các gói tin USB đi qua có thể được bắt và phân tích theo thời gian thực bằng Wireshark.

usb_sniffter-12

Hướng dẫn này minh họa cách chuyển động chuột, nhấp nút và thậm chí cả phím bấm bàn phím (bao gồm cả mật khẩu) có thể được quan sát ở cấp độ giao thức USB. Dự án này nhằm mục đích giáo dục để hiểu cách các Thiết bị Giao diện Người dùng USB (HID) hoạt động bên trong và tại sao bảo mật vật lý cũng quan trọng như bảo mật phần mềm.

USB Sniffer là gì?

USB sniffer là một thiết bị phần cứng nằm giữa một thiết bị ngoại vi USB (như chuột hoặc bàn phím) và máy tính chủ. Nó truyền dữ liệu một cách trong suốt để thiết bị hoạt động bình thường, đồng thời bắt và hiển thị các gói dữ liệu USB thông qua một giao diện giám sát riêng biệt.

Trong dự án này, USB sniffer hoạt động như một thiết bị chuyển tiếp:

  • Chuột hoặc bàn phím USB kết nối với sniffer
  • Sniffer kết nối với máy tính
  • Một kết nối USB riêng từ sniffer đi đến máy tính giám sát đang chạy Wireshark

Tất cả lưu lượng USB đi qua giữa thiết bị và máy tính có thể được bắt và giải mã mà không ảnh hưởng đến hoạt động bình thường :contentReference[oaicite:0]{index=0}.

Các thành phần chính được sử dụng

Phần cứng USB Sniffer

USB sniffer được sử dụng trong dự án này dựa trên thiết kế FPGA do Alex Tarasov tạo ra. Thiết kế hoàn chỉnh bao gồm firmware, tệp PCB và các công cụ phần mềm. Thiết bị thương mại được sử dụng ở đây được nạp sẵn firmware, vì vậy không cần flash hoặc cấu hình trước khi sử dụng.

Bên trong, sniffer chạm vào các đường dữ liệu vi sai USB và phản chiếu các gói tin đến một giao diện USB riêng mà Wireshark có thể giám sát.

usb_sniffter-4

Chuột và Bàn phím (Thiết bị USB HID)

Cả chuột và bàn phím đều là Thiết bị Giao diện Người dùng USB (HID). Các thiết bị này gửi các báo cáo định kỳ đến máy tính chủ mô tả trạng thái của chúng:

  • Chuột: trạng thái nút, chuyển động X, chuyển động Y
  • Bàn phím: các phím bổ trợ và mã quét phím

Các báo cáo này được truyền ở dạng rõ ràng, không mã hóa qua USB, đó là lý do tại sao chúng có thể bị sniffer bắt được.

Máy tính với Wireshark

Wireshark được sử dụng để bắt và phân tích các gói tin USB. Trên Windows, việc bắt USB yêu cầu các thành phần bổ sung để cho phép truy cập lưu lượng USB ở cấp độ trình điều khiển.

Đấu dây và Kết nối

USB sniffer được kết nối nối tiếp giữa thiết bị USB và máy tính.

usb-sniffer-wiring-mouse
usb-sniffer-wiring-keyboard
usb-sniffer-wiring-mouse
  • Kết nối chuột hoặc bàn phím với cổng đầu vào USB của sniffer
  • Kết nối cổng đầu ra USB của sniffer với máy tính
  • Kết nối cổng USB giám sát của sniffer với cùng hoặc một máy tính khác đang chạy Wireshark

Thiết bị USB tiếp tục hoạt động bình thường trong khi lưu lượng của nó được phản chiếu đến cổng giám sát.

Cài đặt Phần mềm Cần thiết

Cài đặt Wireshark

Wireshark phải được cài đặt trên máy tính giám sát. Trong quá trình cài đặt trên Windows, điều quan trọng là phải bật thành phần hỗ trợ bắt USB. Nếu không có trình điều khiển này, lưu lượng USB không thể được bắt.

Sau khi cài đặt, Wireshark sẽ liệt kê các giao diện bắt USB cùng với các giao diện mạng.

Trình điều khiển USB Sniffer (Windows)

Cần có một tệp thực thi trợ giúp nhỏ trên Windows để cho phép Wireshark truy cập dữ liệu USB sniffing từ phần cứng. Tệp thực thi này phải được đặt trong đường dẫn hệ thống (ví dụ: trực tiếp dưới C:\Program Files\Wireshark\extcap  hoặc bất cứ nơi nào bạn đã cài đặt Wireshark) để Wireshark có thể giao tiếp với sniffer.

Bắt Dữ liệu USB trong Wireshark

Sau khi khởi chạy Wireshark, hãy chọn giao diện USB sniffer và bắt đầu bắt. Ban đầu, một lượng lớn lưu lượng USB không liên quan có thể xuất hiện.

usb_sniffter-11

Áp dụng Bộ lọc USB

Để chỉ tập trung vào dữ liệu USB có liên quan, một bộ lọc hiển thị được áp dụng:

usbll

Bộ lọc này chỉ hiển thị các gói tin Lớp Liên kết USB, chứa các giao dịch USB thô được trao đổi giữa thiết bị và máy chủ.

Cần lọc thêm vì USB tạo ra lượng dữ liệu rất lớn.

Lọc theo ID Gói tin (PID)

Các gói dữ liệu chuột và bàn phím có thể được xác định bằng các ID Gói tin (PID) cụ thể. Trong dự án này, các PID có liên quan được quan sát là:

  • 0xC3
  • 0x4B

Những gói tin này có thể được lọc trong Wireshark bằng cách sử dụng:

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

Bộ lọc này cô lập các gói tin báo cáo HID đến từ chuột hoặc bàn phím.

Hiểu về dữ liệu chuột

Khi chuột được di chuyển hoặc nhấp, các báo cáo HID được gửi liên tục. Mỗi báo cáo chứa một số byte:

  • ID báo cáo
  • Trạng thái nút (trái, phải, giữa)
  • Chuyển động theo trục X
  • Chuyển động theo trục Y

Bằng cách quan sát các giá trị byte thay đổi trong Wireshark, có thể suy ra hướng và tốc độ di chuyển của chuột. Ngay cả khi không nhấp, chỉ riêng việc di chuyển cũng tạo ra hoạt động USB có thể quan sát được.

Hiểu về dữ liệu bàn phím

Dữ liệu bàn phím được gửi dưới dạng các báo cáo HID chứa mã quét thay vì giá trị ASCII. Mỗi phím tương ứng với một ID sử dụng HID cụ thể.

Ví dụ:

  • 0x04 → Chữ A
  • 0x05 → Chữ B
  • 0x0E → Chữ K

Chữ in hoa và chữ thường được xác định bởi các phím bổ trợ như Shift, xuất hiện trong các byte riêng biệt của báo cáo.

Các phím chức năng như F12 cũng tạo ra mã quét duy nhất có thể được quan sát trực tiếp trong các gói tin được thu thập.

Ý nghĩa bảo mật

Dự án này chứng minh rõ ràng rằng lưu lượng USB HID không được mã hóa. Nếu một thiết bị độc hại được đặt vật lý giữa bàn phím và máy tính, nó có thể thu thập mọi thao tác gõ phím, bao gồm cả tên người dùng và mật khẩu.

Đây là lý do tại sao bảo mật USB, phần cứng đáng tin cậy và kiểm soát truy cập vật lý là rất quan trọng trong các môi trường nhạy cảm.

Tóm tắt trình diễn

Trong buổi trình diễn này, những điều sau đây đã được thu thập và giải mã thành công:

  • Hoạt động di chuyển chuột và nhấp nút
  • Các lần nhấn phím riêng lẻ trên bàn phím
  • Các phím chức năng và phím bổ trợ
  • Các từ hoàn chỉnh được gõ trên bàn phím

Thiết bị bắt USB hoạt động một cách trong suốt, khiến việc phát hiện trở nên khó khăn nếu không kiểm tra vật lý.

Kết luận

Dự án bắt USB này cung cấp một trình diễn thực hành mạnh mẽ về cách giao tiếp USB hoạt động ở cấp độ thấp nhất. Bằng cách kết hợp phần cứng bắt chuyên dụng với Wireshark, có thể thấy chính xác cách các thiết bị đầu vào giao tiếp với máy tính.

Dự án này lý tưởng để học về giao thức USB, cấu trúc báo cáo HID và các cân nhắc bảo mật trong thế giới thực. Mặc dù được trình diễn với chuột và bàn phím, các nguyên tắc tương tự áp dụng cho nhiều thiết bị USB khác.

Tải phần mềm

Ứng dụng hỗ trợ Windows usb_sniffer_win.exe cần thiết để thu thập dữ liệu USB bằng Wireshark có sẵn để tải xuống bên dưới bài viết này.

Hình ảnh

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
Không có mã đính kèm.

Nghĩ bạn có thể cần

Tài nguyên & tài liệu tham khảo

Tập tin📁

Hướng dẫn Sử dụng

Các tập tin khác