Intro Fuzzing Results
Virtualised USB Fuzzing using QEMU and Scapy
Breaking USB for Fun and Profit Tobias Mueller (c) 2015, CC-BY-SA 3.0 2015-10-01
1 / 25
Virtualised USB Fuzzing using QEMU and Scapy Breaking USB for Fun - - PowerPoint PPT Presentation
Intro Fuzzing Results Virtualised USB Fuzzing using QEMU and Scapy Breaking USB for Fun and Profit Tobias Mueller (c) 2015, CC-BY-SA 3.0 2015-10-01 1 / 25 Intro Fuzzing Results 1 Intro Motivation USB Architecture 2 Fuzzing Obtaining
Intro Fuzzing Results
1 / 25
Intro Fuzzing Results
1 Intro
2 Fuzzing
3 Results
2 / 25
Intro Fuzzing Results Motivation USB Architecture
What’s the problem?
Development board? Inject messages into kernel?
3 / 25
Yes, it uses USB. hehe
Based on Linux or VxWorks
Intro Fuzzing Results Motivation USB Architecture
→ polling Yes, even with keyboards or mice
SETUP IN OUT
8 / 25
QemuUSB 44 3e 48 00 pipe direction ’D>H’ (device to h[...] 69 00 00 00 pid IN 00 devaddr 00 devep 12 00 00 00 length 18 USBIn Descriptor 12 length 18 01 type Device DeviceDescriptor 00 02 bcdUSB 0x0200 00 bDeviceClass Base Class 00 bDeviceSubClass 00 bDeviceProtocol 40 bMaxPacketSize 64 07 13 idVendor 0x1307 63 01 idProduct 0x0163 00 01 bcdDevice 256 01 iManufacturer 1 02 iProduct 2 03 iSerialNumber 3 01 bNumConfigurations1
Intro Fuzzing Results Motivation USB Architecture
12 / 25
Intro Fuzzing Results Motivation USB Architecture
13 / 25
Intro Fuzzing Results Motivation USB Architecture
USB/IP Wireless USB
14 / 25
Intro Fuzzing Results Obtaining valid USB communication QEMU Virtual USB Device
coined in late 80’s feed program with random(?) data received a lot of attention ∼ 2004
Modify existing valid structured data Checksums Cover more code Patent encumbered?
Awesome (!) framework sniff, manipulate, craft, send (Ethernet) packets models packets in Python
15 / 25
Intro Fuzzing Results Obtaining valid USB communication QEMU Virtual USB Device
16 / 25
Intro Fuzzing Results Obtaining valid USB communication QEMU Virtual USB Device 17 / 25
Intro Fuzzing Results Obtaining valid USB communication QEMU Virtual USB Device
18 / 25
Intro Fuzzing Results Obtaining valid USB communication QEMU Virtual USB Device
19 / 25
Intro Fuzzing Results Obtaining valid USB communication QEMU Virtual USB Device 20 / 25
How many devices can you handle?
Intro Fuzzing Results Stack Stress Test USB Fingerprinting
Targetted attacks
Tabelle : USB Stack Fingerprints of various operating systems
22 / 25
Intro Fuzzing Results
What’s next?
24 / 25
Intro Fuzzing Results
Questions?
FF52 DA33 C025 B1E0 B910 92FC 1C34 19BF 1BF9 8D6D
25 / 25