Project

General

Profile

USB storage » History » Version 1

Karsten, 11/11/2014 03:31 PM

1 1 Karsten
h1. USB Storage
2
3
h2. Overview
4
5
There are a few reasons why many USB Sticks have an upgradeable firmware:
6
* There is no additional cost for a rewriteable storage for the firmware, it can be placed on the big NAND flash chip with a small bootloader in ROM
7
* The flash chip market is evolving quickly and not all chips are fully compatible. Many compatibility issues can be fixed in firmware.
8
* Some vendors want to implement special features such as CD Emulation or a Write-Protect Switch
9
* There are many leaked tools
10
11
The Russian sites below are best viewed with Chrome due to the built-in translation feature.
12
13
Overview of USB Sticks with information about contained chip and matching tool:
14
http://flashboot.ru/iflash/
15
16
Overview of available leaked tools:
17
http://flashboot.ru/files/
18
19
Unfortunately the existence of a leaked tool for a given chip does not necessarily mean that the firmware can be upgraded. Some tools only provide other features such as the following:
20
* Change configuration data (Product Name, VID, PID) so that it matches for the OEM Vendor
21
* Enable CD Emulation
22
* Change capacity of stick (Sticks are typically sold with 4/8/16/32/64 GB capacity and a stick with enough good blocks for 25 GB is often software-limited to 16 GB.
23
* Do a low-level format
24
25
Some leaked firmware images appear to be partial and do not contain USB descriptors and no 8051 interrupt table.
26
Partial firmware images probably are nothing more than a fancy way to abstract differences in
27
flash geometry, where a simple static table would not be expressive enough.
28
It is conceivable that they also implement block management functions as this is an area where
29
new features might be developed to improve the product while access to a given hardware
30
can be expected to be reasonably efficient and generic enough so as to not require firmware
31
update. High level features such as volume management and USB vendor/product/serial IDs
32
should be found in the updated part too.
33
With a little bit of dedication one can probably figure out how to get information in
34
and out and thus dump the whole of the firmware (for example 4 bytes of firmware per
35
USB descriptor read in the VID/PID
36
37
h2. Popular chips
38
39
h3. Phison USB2 / USB3 controllers
40
41
All vulnerable -- see "BlackHat talk":https://www.youtube.com/watch?v=nuruzFqMgIw and "Psychson":https://github.com/adamcaudill/Psychson/
42
43
h3. ALCOR AU698X
44
45
* Leaked tool: ALCOR MP_v14.01.24.00.zip
46
Contains many .bin files, which actually contain hex data
47
* Unpacking hex data results in raw 8051 code with interrupt table, code mapped at 0xC000
48
* No USB Descriptors found, it is possible that the upgradeable code is only used for interfacing the NAND Flash
49
* => %{color:orange}Probably vulnerable%
50
51
h3. SMI SM325X/SM326X
52
53
* Many variants of recovery tool available, downland RecoverTool_V2.00.33_L1224.exe
54
http://www.usbdev.ru/files/smi/
55
* Exe file contains rar with 500 .BIN files
56
* Examined two example files, found 8051 code starting at 0x800 in file, mapped at 0x8000 in address space
57
* USB Descriptors found
58
* => %{color:red}Most likely vulnerable%
59
60
h3. Skymedi SK62XX SK66XX
61
62
* Available tool: http://flashboot.ru/files/file/4/
63
SK6211_PDT_20090828.rar 
64
* Contains ihex files with valid 8051 code, but no USB Descriptors found
65
* => %{color:orange}Probably vulnerable%
66
67
h3. Solid State System SSS6677, SSS6690 and SSS6691
68
69
* Tool available:
70
http://flashboot.ru/files/file/270/
71
SSS_MP_Utility_v2162.rar
72
* Contains valid 8051 code, but no USB Descriptors found
73
* => %{color:orange}Probably vulnerable%
74
75
h3. Innostor IS903-A2, IS903-A3
76
77
* Tool available:
78
http://flashboot.ru/files/file/379/
79
Innostor_IS903_MP_Package_V105_04_1303281.7z
80
* Found valid 8051 code, but no USB descriptors
81
* => %{color:orange}Probably vulnerable%