-
Notifications
You must be signed in to change notification settings - Fork 55
umap documentation
umap is a tool which allows you to test the security of USB host implementations i.e. something you plug a USB device into, like a PC or a tablet. Its primary function at the moment is a fuzzer with test cases based on a combination of data from standards documentation and the author's experience of where USB bugs are commonly found. However, it also has additional functionality that will be expanded further in future versions, for example:
- Operating system identification
- Installed application identification
- Vendor-specific driver enumeration
- Endpoint Protection System assessment
umap requires a Facedancer board to enable devices to be virtualised in Python and presented to the target host. The firmware and basic Facedancer demo software can be downloaded here.
umap is written in Python so to run it just type ./umap.py: `---------------------------------------
| | | | '_ _ \ / _
| '_
| || | | | | | | (| | |) |
_,|| || ||_,| .__/
|_|
The USB host assessment tool Andy Davis, NCC Group 2013 Version: 1.01
Based on Facedancer by Travis Goodspeed
Error: Facedancer serial port not supplied `
In order to fuzz a USB host you need to emulate the process of physical insertion and removal of your virtual device. The USB design is expecting this process to be performed by a human and therefore, attempting to perform the operation too quickly results in the host getting confused (...but that a whole different area of potential research). As a result, USB fuzzing can be very slow (7-10 seconds per fuzz test case) so it's very important to be able to enumerate what classes of USB device are supported by the host before you start fuzzing.