Probablemente más de uno se haya extrañado con el título de esta entrada, pero no se trata de ninguna errata. Wireshark es una herramienta muy potente de la que ya he hablado con anterioridad para usarla sin ser root; un herramienta de fama mundial que se ha convertido en un referente a nivel de sniffing de redes. Pero esta herramienta puede hacer más cosas a parte de analizar tramas de red de nuestro PC o de aquellos elementos que se encuentren dentro de nuestra red; también puede analizar el tráfico generado por un dispositivo físico que se halle conectado a nuestro equipo, en este caso un USB.
El proceso puede parecer algo complejo, pero veréis que con las herramientas adecuadas el proceso es mucho más simple de lo que en un principio nos puede parecer; cabe destacar que este procedimiento solo es válido en Linux y que en caso de querer aplicarlo en Windows, habrá al menos una parte que habrá que realizar de otra forma...
Lo primero e indispensable que hemos de tener en cuenta son los requisitos para lograr este análisis. El primero, y obvio, es tener instalado la herramienta Wireshark. Esta herramienta es fácilmente descargable vía repositorios oficiales, si bien con lo que podemos usarlos para realizar la instalación exitosamente. El segundo requisito, más importante, es tener un módulo nativo de Linux que nos permite monitorizar el tráfico USB; un módulo cuyo equivalente habría que buscar en Windows en caso de querer aplicarlo allí y que se denomina usbmon. Para cumplir los dos requisitos, lo primero que habría que hacer sería instalar Wireshark tal que así:
apt-get install wireshark
El segundo requisito afortunadamente también es sencillo de cumplir, pues el módulo usbmon, si bien está deshabilitado por defecto en Linux, existe y puede ser activado en cualquier momento. Su activación es tan sencilla como escribir en la terminal:
modprobe usbmon
El problema de este método es que es temporal y que el módulo se desactivaría de nuevo al reiniciar el equipo lo cual tiene sus ventajas y desventajas como todo. Se trata de una ventaja a nivel de seguridad, pues cuantos menos módulos estén cargado, menor la cantidad de objetivos hackeables, si bien tiene como pega el hecho de que en caso de usar muy a menudo dicho módulo habría que activarlo a mano tras cada reinicio. Imaginemos que deseamos usar este módulo con asiduidad en el futuro; podemos hacer que la carga de éste sea persistente con este simple comando:
echo usbmon >>/etc/modules
Con todos los preparativos listos, lo primero que necesitaríamos tener en cuenta sería que usbmon carga dos módulos usbmon, llamados usbmon1 y usbmon2; que estarían asociados cada uno a una entrada USB; con lo que lo primero (y muy importante) sería saber a qué usbmon estaría asociado nuestro USB; es decir, donde está siendo monitorizado nuestro USB. Esto afortunadamente se puede saber con facilidad gracias al comando lsusb.
En este caso podemos ver que el BUS USB número 1 tiene el dispositivo con ID numero 4; es decir que tendríamos que usar el módulo usbmon1 en Wireshark.
Ahora que sabemos eso, tendríamos que arrancar la aplicación Wireshark; allí, como probablemente más de uno sepa, podemos escoger en qué interfaz de red deseamos ponernos a "escuchar". Ahora, gracias a usbmon, también podremos escuchar lo procedente del USB, lo cual se logra simplemente seleccionando el módulo dentro de la lista de interfaces de red:
En caso de tener más de un USB conectados al mismo BUS, tras comenzar con la captura de red podemos escoger con precisión el dispositivo USB que queremos monitorizar dentro de usbmon... En este caso en concreto por ejemplo, el ID del dispositivo era el 4, con lo que podemos hacer:
usb.device_address==4
A partir de aquí solo quedaría observar el tráfico generado por el USB, si bien unos de los paquetes más importantes son los primeros, pues allí podremos ver con detalle la descripción de las características del USB, entre otras cosas. A partir de aquí, cualquier interacción con el USB no pasará desapercibida, pues toda actividad realizada con el USB quedará registrada en Wireshark.
Espero que os haya resultado útil.
Saludos.