코드 검색

$34 USB 스니퍼 튜토리얼: Wireshark를 사용하여 마우스 움직임과 키보드 키 입력 캡처하기

$34 USB 스니퍼 튜토리얼: Wireshark를 사용하여 마우스 움직임과 키보드 키 입력 캡처하기

USB 스니퍼 튜토리얼: Wireshark를 사용하여 마우스 움직임과 키보드 키 입력 캡처하기

이 프로젝트에서는 USB 스니퍼 장치를 사용하여 컴퓨터와 마우스, 키보드 같은 일반적인 입력 장치 간의 USB 통신을 모니터링하고 분석하는 방법을 살펴봅니다. USB 장치와 컴퓨터 사이에 USB 스니퍼를 인라인으로 배치하면 통과하는 모든 USB 패킷을 Wireshark를 사용하여 실시간으로 캡처하고 분석할 수 있습니다.

usb_sniffter-12

이 튜토리얼은 마우스 움직임, 버튼 클릭, 심지어 키보드 키 입력(비밀번호 포함)까지 USB 프로토콜 수준에서 관찰할 수 있는 방법을 보여줍니다. 이 프로젝트는 USB 휴먼 인터페이스 장치(HID)가 내부적으로 어떻게 작동하는지, 그리고 물리적 보안이 소프트웨어 보안만큼 중요한 이유를 이해하기 위한 교육 목적으로 제작되었습니다.

USB 스니퍼란 무엇인가?

USB 스니퍼는 USB 주변 장치(마우스나 키보드 등)와 호스트 컴퓨터 사이에 위치하는 하드웨어 장치입니다. 장치가 정상적으로 작동하도록 데이터를 투명하게 전달하면서, 동시에 별도의 모니터링 인터페이스를 통해 USB 데이터 패킷을 캡처하고 노출합니다.

이 프로젝트에서 USB 스니퍼는 통과형(pass-through) 장치로 작동합니다:

  • USB 마우스 또는 키보드가 스니퍼에 연결됩니다
  • 스니퍼가 컴퓨터에 연결됩니다
  • 스니퍼의 별도 USB 연결이 Wireshark를 실행하는 모니터링 컴퓨터로 연결됩니다

장치와 컴퓨터 사이를 통과하는 모든 USB 트래픽은 정상 작동에 영향을 주지 않고 캡처 및 디코딩될 수 있습니다 :contentReference[oaicite:0]{index=0}.

사용된 주요 구성 요소

USB 스니퍼 하드웨어

이 프로젝트에서 사용된 USB 스니퍼는 Alex Tarasov가 만든 FPGA 설계를 기반으로 합니다. 전체 설계에는 펌웨어, PCB 파일, 소프트웨어 도구가 포함됩니다. 여기서 사용된 상용 장치에는 펌웨어가 미리 로드되어 있어 사용 전에 플래싱이나 구성이 필요하지 않습니다.

내부적으로 스니퍼는 USB 차동 데이터 라인에 접근하여 패킷을 Wireshark가 모니터링할 수 있는 별도의 USB 인터페이스로 미러링합니다.

usb_sniffter-4

마우스 및 키보드(USB HID 장치)

마우스와 키보드는 모두 USB 휴먼 인터페이스 장치(HID)입니다. 이러한 장치는 호스트 컴퓨터에 자신의 상태를 설명하는 주기적인 보고서를 보냅니다:

  • 마우스: 버튼 상태, X 이동, Y 이동
  • 키보드: 수정자 키 및 키 스캔 코드

이러한 보고서는 USB를 통해 암호화되지 않은 평문으로 전송되므로 스니퍼로 캡처할 수 있습니다.

Wireshark가 설치된 컴퓨터

Wireshark는 USB 패킷을 캡처하고 분석하는 데 사용됩니다. Windows에서는 드라이버 수준에서 USB 트래픽에 접근할 수 있도록 추가 구성 요소가 필요합니다.

배선 및 연결

USB 스니퍼는 USB 장치와 컴퓨터 사이에 인라인으로 연결됩니다.

usb-sniffer-wiring-mouse
usb-sniffer-wiring-keyboard
usb-sniffer-wiring-mouse
  • 마우스 또는 키보드를 스니퍼의 USB 입력 포트에 연결합니다
  • 스니퍼의 USB 출력 포트를 컴퓨터에 연결합니다
  • 스니퍼의 모니터링 USB 포트를 Wireshark를 실행하는 동일하거나 다른 컴퓨터에 연결합니다

USB 장치는 트래픽이 모니터링 포트로 미러링되는 동안에도 정상적으로 계속 작동합니다.

필수 소프트웨어 설치

Wireshark 설치

모니터링 컴퓨터에 Wireshark를 설치해야 합니다. Windows에서 설치하는 동안 USB 캡처 지원 구성 요소를 활성화하는 것이 필수적입니다. 이 드라이버가 없으면 USB 트래픽을 캡처할 수 없습니다.

설치가 완료되면 Wireshark는 네트워크 인터페이스와 함께 USB 캡처 인터페이스를 나열합니다.

USB 스니퍼 드라이버(Windows)

Windows에서 Wireshark가 하드웨어의 USB 스니핑 데이터에 접근할 수 있도록 작은 헬퍼 실행 파일이 필요합니다. 이 실행 파일은 Wireshark가 스니퍼와 통신할 수 있도록 시스템 경로(예: C:\Program Files\Wireshark\extcap  또는 Wireshark를 설치한 위치)에 배치해야 합니다.

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 장치에도 적용됩니다.

소프트웨어 다운로드

Wireshark로 USB 데이터를 캡처하는 데 필요한 Windows 도우미 응용 프로그램 usb_sniffer_win.exe는 이 문서 아래에서 다운로드할 수 있습니다.

이미지

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
코드가 첨부되지 않았습니다.

필요할 수 있는 것들

자원 및 참고자료

파일📁

사용자 매뉴얼

다른 파일들