USBQ is a Python-based programming framework for monitoring and modifying USB communications.
This work is MIT licensed.
pip install git+https://github.com/rbdixon/usbq.git#egg=usbq
I'm working on the Pypi package.
Right now USBQ requires the kernel module from USBiquitous. I've not modified the module at all and would like to replace this module with mainline kernel capabilities and support for other hardware.
- Clone usbq_core
- Modify
driver.c
line 47 with the IP address of the device that will be executing USBQ. - Build the kernel loadable module. The easiest way is to install development tools on your board and then modify the Makefile to be able to find your kernel headers.
- Install the kernel loadable module.
- Check your
dmesg
output and see if it is working.
If you have a Beaglebone Black running the 4.4.9-ti-r25
kernel and you want to use a pre-built kernel module configured for IP address 10.0.10.1
you can use the pre-built binary that I've got: ubq_core.ko
. If that pre-built binary breaks you get to keep both pieces.
- Install the loadable kernel module.
- Plug your MITM board into your host computer.
- Start USBQ on your MITM host:
usbq mitm
. - Plug your USB device into your MITM board.
- Give it a moment and you should see the USB device pop up on your host computer.
- Unplug the USB device.
- Control-C to terminate USBQ.
The tool was created for the edope.bike project and is an extensive rewrite of the userspace component of the USBiquitous USB Intrusion Toolkit.