Código de búsqueda

Tutorial de Sniffer USB de $34: Captura de Movimiento del Ratón y Pulsaciones del Teclado Usando Wireshark

Tutorial de Sniffer USB de $34: Captura de Movimiento del Ratón y Pulsaciones del Teclado Usando Wireshark

Tutorial de USB Sniffer: Captura de movimiento del mouse y pulsaciones del teclado utilizando Wireshark

En este proyecto, exploramos cómo se puede utilizar un dispositivo de captura de USB para monitorear y analizar la comunicación USB entre una computadora y dispositivos de entrada comunes, como un ratón y un teclado. Al colocar un dispositivo de captura de USB en línea entre el dispositivo USB y la computadora, todos los paquetes USB que pasan a través pueden ser capturados y analizados en tiempo real utilizando Wireshark.

usb_sniffter-12

Este tutorial demuestra cómo los movimientos del mouse, los clics de botones e incluso las pulsaciones de teclas del teclado (incluyendo contraseñas) pueden ser observados a nivel del protocolo USB. El proyecto está destinado a fines educativos para entender cómo funcionan internamente los Dispositivos de Interfaz Humana USB (HID) y por qué la seguridad física es igual de importante que la seguridad del software.

¿Qué es un sniffer USB?

Un sniffer USB es un dispositivo de hardware que se sitúa entre un periférico USB (como un ratón o un teclado) y una computadora anfitriona. Transmite los datos de forma transparente para que el dispositivo funcione normalmente, mientras captura y expone simultáneamente los paquetes de datos USB a través de una interfaz de monitoreo separada.

En este proyecto, el sniffer USB actúa como un dispositivo de paso:

  • El ratón o teclado USB se conecta al sniffer.
  • El sniffer se conecta al ordenador.
  • Una conexión USB separada del sniffer va a una computadora de monitoreo que ejecuta Wireshark.

Todo el tráfico USB que pasa entre el dispositivo y el ordenador puede ser capturado y decodificado sin afectar el funcionamiento normal :contentReference[oaicite:0]{index=0}.

Componentes principales utilizados

Hardware de Sniffer USB

El analizador USB utilizado en este proyecto se basa en un diseño FPGA creado por Alex Tarasov. El diseño completo incluye firmware, archivos de PCB y herramientas de software. La unidad comercial utilizada aquí viene precargada con firmware, por lo que no se requiere flasheo ni configuración antes de su uso.

Internamente, el sniffer se conecta a las líneas de datos diferenciales USB y refleja los paquetes a una interfaz USB separada que Wireshark puede monitorear.

usb_sniffter-4

Ratón y Teclado (Dispositivos HID USB)

Tanto el ratón como el teclado son Dispositivos de Interfaz Humana USB (HID). Estos dispositivos envían informes periódicos al ordenador anfitrión describiendo su estado:

  • Ratón: estados de botones, movimiento X, movimiento Y
  • Teclado: teclas modificadoras y códigos de escaneo de teclas

Estos informes se transmiten en forma clara y no encriptada a través de USB, por lo que pueden ser capturados por un sniffer.

Computadora con Wireshark

Wireshark se utiliza para capturar y analizar los paquetes USB. En Windows, la captura de USB requiere componentes adicionales para permitir el acceso al tráfico USB a nivel de controlador.

Cableado y Conexión

El sniffer USB está conectado en línea entre el dispositivo USB y la computadora.

cableado-sniffer-usb-teclado
usb-sniffer-wiring-mouse
  • Conecte el ratón o el teclado al puerto de entrada USB del sniffer.
  • Conecta el puerto de salida USB del sniffer al ordenador.
  • Conecte el puerto USB de monitoreo del sniffer a la misma computadora o a otra computadora que esté ejecutando Wireshark.

El dispositivo USB continúa funcionando normalmente mientras su tráfico se refleja en el puerto de monitoreo.

Instalando el software requerido

Instalación de Wireshark

Wireshark debe instalarse en el ordenador de monitoreo. Durante la instalación en Windows, es esencial activar el componente de soporte de captura USB. Sin este controlador, no se puede capturar el tráfico USB.

Una vez instalado, Wireshark enumerará las interfaces de captura USB junto a las interfaces de red.

Controlador de USB Sniffer (Windows)

Se requiere un pequeño ejecutable auxiliar en Windows para permitir que Wireshark acceda a los datos de sondeo USB del hardware. Este ejecutable debe colocarse en la ruta del sistema (por ejemplo, directamente en la unidad C:) para que Wireshark pueda comunicarse con el sniffer.

Capturando datos USB en Wireshark

Después de iniciar Wireshark, selecciona la interfaz del analizador USB y comienza a capturar. Inicialmente, puede aparecer una gran cantidad de tráfico USB no relacionado.

usb_sniffter-11

Aplicando filtros USB

Para centrarse solo en los datos USB relevantes, se aplica un filtro de visualización:

usbll

Este filtro muestra solo paquetes de Capa de Enlace USB, que contienen las transacciones USB en bruto intercambiadas entre el dispositivo y el anfitrión.

Se requiere un filtrado adicional porque USB produce un volumen de datos muy alto.

Filtrado por ID de paquete (PID)

Los paquetes de datos del mouse y del teclado se pueden identificar por identificadores de paquete específicos (PID). En este proyecto, los PID relevantes observados son:

  • 0xC3
  • 0x4B

Estos se pueden filtrar en Wireshark usando:

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

Este filtro aísla los paquetes de informes HID que provienen del ratón o del teclado.

Entendiendo los datos del mouse

Cuando se mueve o se hace clic en el ratón, se envían informes HID de manera continua. Cada informe contiene varios bytes:

  • ID de reporte
  • Estados de los botones (izquierda, derecha, centro)
  • Movimiento en el eje X
  • Movimiento en el eje Y

Al observar los valores de byte cambiantes en Wireshark, se puede inferir la dirección y la velocidad del movimiento del ratón. Incluso sin hacer clic, el movimiento por sí solo genera actividad USB visible.

Comprender los datos del teclado

Los datos del teclado se envían como informes HID que contienen códigos de escaneo en lugar de valores ASCII. Cada tecla corresponde a un ID de uso HID específico.

Por ejemplo:

  • 0x04→ Letra A
  • 0x05→ Letra B
  • 0x0E→ Letra K

Las letras mayúsculas y minúsculas se determinan mediante teclas modificadoras como Shift, que aparecen en bytes separados del informe.

Las teclas de función como F12 también generan códigos de exploración únicos que se pueden observar directamente en los paquetes capturados.

Implicaciones de seguridad

Este proyecto demuestra claramente que el tráfico USB HID no está encriptado. Si un dispositivo malicioso se coloca físicamente entre un teclado y una computadora, puede capturar cada pulsación de tecla, incluidos nombres de usuario y contraseñas.

Por eso la seguridad USB, el hardware de confianza y el control de acceso físico son críticos en entornos sensibles.

Resumen de la demostración

En esta demostración, los siguientes elementos fueron capturados y decodificados con éxito:

  • Movimiento del ratón y actividad de botones
  • Presiones individuales de teclas del teclado
  • Teclas de función y teclas de modificación
  • Palabras completas escritas en el teclado

El sniffer USB opera de manera transparente, lo que dificulta la detección sin una inspección física.

Conclusión

Este proyecto de sniffing USB proporciona una poderosa demostración práctica de cómo funciona la comunicación USB a nivel más bajo. Al combinar hardware de sniffing dedicado con Wireshark, se hace posible ver exactamente cómo los dispositivos de entrada se comunican con las computadoras.

El proyecto es ideal para aprender sobre protocolos USB, estructuras de informes HID y consideraciones de seguridad en el mundo real. Aunque se demuestra con un ratón y un teclado, los mismos principios se aplican a muchos otros dispositivos USB.

Descarga de software

La aplicación de ayuda de Windows.usb_sniffer_win.exeRequerido para capturar datos USB con Wireshark está disponible para descargar debajo de este artículo.

Imágenes

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
Sin código adjunto.

Cosas que podrías necesitar

Recursos y referencias

Archivos📁

Manual del Usuario

Otros archivos