USB History Viewing

From ForensicsWiki
Revision as of 08:55, 21 August 2007 by Keydet89 (Talk | contribs)

Jump to: navigation, search

Windows systems (Microsoft Windows 2000/XP/2003/Vista) will record artifacts as a result of USB removable storage devices (thumb drives, iPods, digital cameras, external HDD, etc.) being connected to the system.

When a USB removable storage device is connected to a Windows system for the first time, the Plug and Play (PnP) Manager receives the event notification, queries the device descriptor for the appropriate information to develop a device class identifier (device class ID) and attempts to locate the appropriate driver for that device.

Looking for and installing the correct driver for the device is recorded in the setupapi.log file. For example:

   [2007/06/10 21:25:41 1140.8 Driver Install]
   #-019 Searching for hardware ID(s): usbstor\disksandisk_u3_cruzer_micro_3.27,...

This provides the date and time that the removable storage device was first connected to the system. The Windows system will also create an entry in the Registry beneath the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\ key using the device class ID:

   Disk&Ven_SanDisk&Prod_U3_Cruzer_Micro&Rev_3.27

This identifies the class of the device. Beneath this Registry key, a unique instance ID key will be created, using either the serial number retrieved from the device's device descriptor (you can use UVCView to view the contents of the device descriptor), or, if the device does not have a serial number, using an identifier generated by the system itself (based on additional information retrieved from the device descriptor, the USB port the device was plugged into, etc...the vendor has not publicized the algorithm used to generate this identifier). For example:

   0000161511737EFB&0

Note: If the second character of the unique instance ID is a '&', then the ID was generated by the system, as the device did not have a serial number.

Beneath this key are several Registry values that provide information about the device itself. Of particular note is the ParentIdPrefix value; this value can be used to map to the MountedDevices Registry key in order to identify the drive letter to which the device was mounted. Beneath the MountedDevices Registry key are several values, all of which are REG_BINARY data types. With RegEdit open, select one of the values that begins with "\DosDevices\" and includes a drive letter. The value selected should be one whose data begins with "5C 00 3F 00 3F 00". Right-click the value name and choose "Modify". When the "Edit Binary Value" dialog appears, you will see the binary data displayed as if it were viewed in a hex viewer. On the right-most column, you should see what appears as:

   \??\STORAGE#RemovableMedia#7&2c9a320d&0&RM#{53f5630d...

The portion in bold is the ParentIdPrefix.



You can view a history of USB devices plugged into Windows systems (Windows 2000/XP/2003/Vista) by using USBDeview.

To do this, extract the SYSTEM file from c:\Windows\System32\config (or equivalent path.)

You can do this indirectly via Encase or any other system imaging format/type (.dd, .e01, etc) by extracting the "SYSTEM" file from the image to a local path.

Once this is complete, open up a command prompt and run USBDeview. Example:

  usbdeview.exe /regfile "c:\case number\system"

This provides information including the device name, description, last plug/unplug date & time, serial number, etc.