検索コード

$34 USBスニファー tutorial: Wiresharkを使用してマウスの動きとキーボードのキー入力をキャプチャする

$34 USBスニファー tutorial: Wiresharkを使用してマウスの動きとキーボードのキー入力をキャプチャする

USBスニファーチュートリアル:Wiresharkを使用してマウスの動きとキーボードの入力をキャプチャする

このプロジェクトでは、USBスニファーデバイスを使用して、コンピュータとマウスやキーボードなどの一般的な入力デバイスとの間のUSB通信を監視し分析する方法を探ります。USBデバイスとコンピュータの間にUSBスニファーを配置することで、通過するすべてのUSBパケットをリアルタイムでキャプチャし、Wiresharkを使用して分析することができます。

usb_sniffter-12

このチュートリアルでは、マウスの動き、ボタンのクリック、さらにはキーボードのキー入力(パスワードを含む)がUSBプロトコルレベルでどのように観察できるかを示します。このプロジェクトは、USBヒューマンインターフェースデバイス(HID)が内部でどのように機能するか、そして物理的セキュリティがソフトウェアセキュリティと同様に重要である理由を理解するための教育目的を意図しています。

USBスニファーとは何ですか?

USBスニファーは、USB周辺機器(マウスやキーボードなど)とホストコンピュータの間に接続されるハードウェアデバイスです。デバイスは通常どおりに動作しながら、データを透過的に通過させる一方で、別の監視インターフェースを通じてUSBデータパケットを捕捉して公開します。

このプロジェクトでは、USBスニファーはパススルーデバイスとして機能します。

  • USBマウスまたはキーボードはスニッファーに接続されます。
  • スニッファーはコンピュータに接続します。
  • スニファーからの別のUSB接続が、Wiresharkを実行している監視コンピュータに接続されます。

デバイスとコンピュータ間を通過するすべてのUSBトラフィックは、通常の操作に影響を与えることなくキャプチャおよびデコードできます :contentReference[oaicite:0]{index=0}。

主な使用コンポーネント

USBスニファーハードウェア

このプロジェクトで使用されるUSBスニファーは、アレックス・タラスオフによって作成されたFPGAデザインに基づいています。完全なデザインにはファームウェア、PCBファイル、ソフトウェアツールが含まれています。ここで使用される商用ユニットはファームウェアがプリロードされているため、使用前にフラッシュや設定は必要ありません。

内部で、スニファーはUSB差動データラインに接続し、パケットをWiresharkが監視できる別のUSBインターフェースにミラーリングします。

usbスニファー-4

マウスとキーボード(USB HIDデバイス)

マウスとキーボードはどちらもUSBヒューマンインターフェイスデバイス(HID)です。これらのデバイスは、状態を説明する定期的な報告をホストコンピュータに送信します。

  • マウス: ボタンの状態、X移動、Y移動
  • キーボード:修飾キーとキー スキャン コード

これらのレポートはUSBを通じて平文で暗号化されずに送信されるため、スニッファーによってキャプチャされる可能性があります。

Wiresharkを搭載したコンピュータ

WiresharkはUSBパケットをキャプチャして分析するために使用されます。Windowsでは、USBキャプチャにはドライバーレベルでUSBトラフィックへのアクセスを可能にする追加コンポーネントが必要です。

配線と接続

USBスニファーは、USBデバイスとコンピューターの間にインラインで接続されています。

usbスニファーワイヤリングキーボード
usb-sniffer-wiring-mouse
  • スニッファーのUSB入力ポートにマウスまたはキーボードを接続してください。
  • スニファーのUSB出力ポートをコンピュータに接続します。
  • スニファーのモニタリングUSBポートを同じコンピュータまたはWiresharkを実行している別のコンピュータに接続します。

USBデバイスは、そのトラフィックが監視ポートにミラーリングされている間も正常に動作し続けます。

必要なソフトウェアのインストール

Wiresharkのインストール

Wiresharkは監視コンピュータにインストールする必要があります。Windowsにインストールする際は、USBキャプチャサポートコンポーネントを有効にすることが重要です。このドライバーがないと、USBトラフィックをキャプチャすることができません。

インストールされると、Wiresharkはネットワークインターフェースと並んでUSBキャプチャインターフェースを表示します。

USBスニファードライバー(Windows)

Windowsでは、WiresharkがハードウェアからUSBスニッフィングデータにアクセスできるように、少量のヘルパー実行ファイルが必要です。この実行ファイルは、Wiresharkがスニファーと通信できるように、システムパスに配置する必要があります(例えば、C:ドライブの直下など)。

WiresharkでUSBデータをキャプチャする

Wiresharkを起動したら、USBスニファーインターフェースを選択し、キャプチャを開始します。最初は、多くの無関係なUSBトラフィックが表示されることがあります。

usb_sniffter-11

USBフィルターの適用

関連するUSBデータのみに焦点を当てるため、表示フィルターが適用されます。

usbll

このフィルターは、デバイスとホスト間で交換される生のUSBトランザクションを含むUSBリンクレイヤーパケットのみを表示します。

さらなるフィルタリングが必要です。USBは非常に大量のデータを生成します。

パケットID(PID)によるフィルタリング

マウスとキーボードのデータパケットは、特定のパケットID(PID)によって識別できます。このプロジェクトで観察された関連するPIDは次のとおりです:

  • 0xC3
  • 0x4B

これらは、Wiresharkで次のようにフィルタリングできます:

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

このフィルターは、マウスやキーボードからのHIDレポートパケットを分離します。

マウスデータの理解

マウスが移動したりクリックされたりすると、HID レポートが継続的に送信されます。各レポートにはいくつかのバイトが含まれています。

  • 報告ID
  • ボタンの状態(左、右、中)
  • X軸の動き
  • Y軸の動き

Wiresharkで変化するバイト値を観察することで、マウスの動きの方向や速度を推測することができます。クリックせずに動くだけでも、USBのアクティビティが視認できます。

キーボードデータの理解

キーボードデータは、ASCII値ではなくスキャンコードを含むHIDレポートとして送信されます。各キーは特定のHID使用IDに対応しています。

例えば:

  • 0x04→ レターA
  • 0x05→ Bの手紙
  • 0x0E→ Kの手紙

大文字と小文字は、レポートの別のバイトに現れるShiftなどの修飾キーによって決定されます。

F12のようなファンクションキーは、キャプチャされたパケットに直接観察できるユニークなスキャンコードも生成します。

セキュリティの意味合い

このプロジェクトは、USB HIDトラフィックが暗号化されていないことを明確に示しています。もし悪意のあるデバイスがキーボードとコンピュータの間に物理的に配置されると、それはユーザー名やパスワードを含むすべてのキーストロークをキャプチャすることができます。

これが、USBセキュリティ、信頼できるハードウェア、そして物理アクセス制御が機密環境で重要である理由です。

デモンストレーションの概要

このデモでは、以下が正常にキャプチャされ、デコードされました:

  • マウスの動きとボタンの操作
  • 個別のキーボードキーの押下
  • ファンクションキーと修飾キー
  • キーボードで入力された完全な単語

USBスニファーは透過的に動作するため、物理的な検査なしでは検出が難しいです。

結論

このUSBスニファープロジェクトは、USB通信が最も低いレベルでどのように機能するかを示す強力なハンズオンデモを提供します。専用のスニッフィングハードウェアとWiresharkを組み合わせることで、入力デバイスがコンピューターとどのように通信するかを正確に見ることができます。

このプロジェクトは、USBプロトコル、HIDレポート構造、および現実世界のセキュリティに関する考慮事項を学ぶのに最適です。マウスとキーボードでデモが行われていますが、同じ原則は他の多くのUSBデバイスにも適用されます。

ソフトウェアダウンロード

Windowsヘルパーアプリケーションusb_sniffer_win.exeこの記事の下にあるUSBデータをWiresharkでキャプチャするために必要なものは、ダウンロード可能です。

画像

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
コードは添付されていません。

必要かもしれないもの

リソースと参考文献

ファイル📁

ユーザーマニュアル

他のファイル