Exploiting Smart-Phone USB Connectivity For Fun And Profit
- Angelos Stavrou & Zhaohui Wang
Exploiting Smart-Phone USB Connectivity For Fun And Profit Angelos - - PowerPoint PPT Presentation
Exploiting Smart-Phone USB Connectivity For Fun And Profit Angelos Stavrou & Zhaohui Wang Department of Computer Science George Mason University Talk Outline Background Why USB a2acks? Whats
We can quickly cleanup, not need for traces Next reboot, not traces at all Very very difficult to identify, it has to happen before next reboot
Capability to switch the controller and become a host or a gadget
Qualcomm QSD8250, Texas Instruments OMAP 3430
floating ID denotes gadget, grounded ID denotes host USB(Mini) OTG Connector
Low-level “USB Hubs” VS device driver
Some tools are helpful but have flaws as we will show Combination of tools much better
Craft cables to put the phone in “Master” mode Use the phone to connect and hack Other Phones
Windows ¡vs ¡Linux ¡vs ¡Mac ¡OSX ¡ Flavors ¡of ¡Windows ¡
The host send Get Device Descriptor setup request The host setup kernel data structures of the device descriptor The host continues enumerate all the interfaces Interrupt notifying the host that a device connected USB Host USB Peripheral Standard USB Handshake Get Device Descriptor Get Configuration M a s s
t
a g e , U S B e t h e r e t c . S p e e d , V e n d
I D , P r
u c t I D , S e r i a l N
, M a n u f a c t u r e Get Interface Descriptor U S B I n t e r f a c e C l a s s , S u b c l a s s , P r
The host sets up endpoints for every interface USB data transfer starts The peripheral identifies itself The peripheral supply the configuration, can be dynamically changed in smart gadget The peripheral specify interface information
Interrupt notifying the host that a device connected USB Host USB Peripheral Standard USB Handshake Get Device Descriptor The peripheral identifies itself
The host send Get Device Descriptor setup request Interrupt notifying the host that a device connected USB Host USB Peripheral Standard USB Handshake Get Device Descriptor Speed, VendorID, ProductID, Serial No., Manufacture The peripheral identifies itself
The host send Get Device Descriptor setup request Interrupt notifying the host that a device connected USB Host USB Peripheral Standard USB Handshake Get Device Descriptor Get Configuration Speed, VendorID, ProductID, Serial No., Manufacture The peripheral identifies itself The peripheral supply the configuration, can be dynamically changed in smart gadget
The host send Get Device Descriptor setup request The host setup kernel data structures of the device descriptor Interrupt notifying the host that a device connected USB Host USB Peripheral Standard USB Handshake Get Device Descriptor Get Configuration Mass-storage, USB ether etc. Speed, VendorID, ProductID, Serial No., Manufacture The peripheral identifies itself The peripheral supply the configuration, can be dynamically changed in smart gadget
The host send Get Device Descriptor setup request The host setup kernel data structures of the device descriptor Interrupt notifying the host that a device connected USB Host USB Peripheral Standard USB Handshake Get Device Descriptor Get Configuration Mass-storage, USB ether etc. Speed, VendorID, ProductID, Serial No., Manufacture Get Interface Descriptor The peripheral identifies itself The peripheral supply the configuration, can be dynamically changed in smart gadget The peripheral specify interface information
The host send Get Device Descriptor setup request The host setup kernel data structures of the device descriptor The host continues enumerate all the interfaces Interrupt notifying the host that a device connected USB Host USB Peripheral Standard USB Handshake Get Device Descriptor Get Configuration Mass-storage, USB ether etc. Speed, VendorID, ProductID, Serial No., Manufacture Get Interface Descriptor USB Interface Class, Subclass, Protocol The peripheral identifies itself The peripheral supply the configuration, can be dynamically changed in smart gadget The peripheral specify interface information
The host send Get Device Descriptor setup request The host setup kernel data structures of the device descriptor The host continues enumerate all the interfaces Interrupt notifying the host that a device connected USB Host USB Peripheral Standard USB Handshake Get Device Descriptor Get Configuration Mass-storage, USB ether etc. Speed, VendorID, ProductID, Serial No., Manufacture Get Interface Descriptor USB Interface Class, Subclass, Protocol The host sets up endpoints for every interface The peripheral identifies itself The peripheral supply the configuration, can be dynamically changed in smart gadget The peripheral specify interface information
The host send Get Device Descriptor setup request The host setup kernel data structures of the device descriptor The host continues enumerate all the interfaces Interrupt notifying the host that a device connected USB Host USB Peripheral Standard USB Handshake Get Device Descriptor Get Configuration M a s s
t
a g e , U S B e t h e r e t c . S p e e d , V e n d
I D , P r
u c t I D , S e r i a l N
, M a n u f a c t u r e Get Interface Descriptor U S B I n t e r f a c e C l a s s , S u b c l a s s , P r
The host sets up endpoints for every interface USB data transfer starts The peripheral identifies itself The peripheral supply the configuration, can be dynamically changed in smart gadget The peripheral specify interface information
Configuration
Interface
Guessable Easy to bypass (wait for the USB device to get authenticated,
Data Exfiltration
Passive and Dumb devices cannot cope with Many devices support partially the protocols Windows USB-Hub subsystem a problem…
Bluetooth has tried that It works but only to validate the device it cannot prevent a device
Very very difficult given the current user body Can only be applied to enterprise settings Disabling the USB not an option (Why? Recharging…)