Top Banner
Making BadUSB Work For You Adam Caudill (@adamcaudill) Brandon Wilson (@brandonlwilson)
22

DerbyCon 2014 - Making BadUSB Work For You

Apr 21, 2017

Download

Devices & Hardware

Adam Caudill
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: DerbyCon 2014 - Making BadUSB Work For You

Making BadUSB Work For You

Adam Caudill (@adamcaudill)Brandon Wilson (@brandonlwilson)

Page 2: DerbyCon 2014 - Making BadUSB Work For You

What is BadUSB?● NOT a technical flaw● NOT a vulnerability

Page 3: DerbyCon 2014 - Making BadUSB Work For You

Patriot 8GB Supersonic Xpress

Page 4: DerbyCon 2014 - Making BadUSB Work For You

Phison 2251-03

Page 5: DerbyCon 2014 - Making BadUSB Work For You

Reverse Engineering

Page 6: DerbyCon 2014 - Making BadUSB Work For You

A word of warning...

Page 7: DerbyCon 2014 - Making BadUSB Work For You

● Always starts at boot ROM● Attempts to read firmware from NAND● If successful, first 32KB loaded to XDATA● If not, waits to receive code to RAM and

executes it

Boot Process

Page 8: DerbyCon 2014 - Making BadUSB Work For You

Pin Shorting

Page 9: DerbyCon 2014 - Making BadUSB Work For You

Paging

...

Page 0 Page 1 Page 2 Page A

Base section

0x0000

0x5000

0xEFFF

Page 10: DerbyCon 2014 - Making BadUSB Work For You

Firmware Update Process

Boot ROM Burner Executable Firmware

Page 11: DerbyCon 2014 - Making BadUSB Work For You

Pain Points● Patching existing firmware

o Very touchyo Limited RAM available

● Writing from-scratch firmwareo NAND suckso Non-standard command setso Bad block managemento Global wear leveling

● Lots...and lots...of pin shorting

Page 12: DerbyCon 2014 - Making BadUSB Work For You

Quick Reset Cable

Page 13: DerbyCon 2014 - Making BadUSB Work For You

New Tools● Desktop Flasher● Firmware Patcher● HID payload injector

Page 14: DerbyCon 2014 - Making BadUSB Work For You

What We've Done● Custom HID firmware● Hidden partition patch● Password protection bypass patch

Page 15: DerbyCon 2014 - Making BadUSB Work For You

Custom HID Firmware

Page 16: DerbyCon 2014 - Making BadUSB Work For You

Hidden Partition Patch

Read Request(Get LBA

0x00000073)

Patch (Use hidden

area?)

Section 1(Public)

Section 2(Hidden)

Page 17: DerbyCon 2014 - Making BadUSB Work For You

Password Protection Bypass

Page 18: DerbyCon 2014 - Making BadUSB Work For You

Defense & Detection● Composite devices● Modified firmware

?

Page 19: DerbyCon 2014 - Making BadUSB Work For You

Source Code & ToolsDrive: bit.ly/badusb4youCode: github.com/adamcaudill/PsychsonBurner & Stock Firmware: usbdev.ru/files/phison/

Page 20: DerbyCon 2014 - Making BadUSB Work For You

Special ThanksSecurity Research Labs● Karsten Nohl● Sascha Krißler● Jakob Lell

Page 21: DerbyCon 2014 - Making BadUSB Work For You

Special ThanksRichard Harman (@xabean) ShmooCon 2014 Controlling USB Flash Drive Controllers

bit.ly/1xaNkbP

Page 22: DerbyCon 2014 - Making BadUSB Work For You

Thanksgithub.com/adamcaudill/Psychson

Adam Caudill (@adamcaudill)Brandon Wilson (@brandonlwilson)