conorpp / btproxy

Man in the Middle analysis tool for Bluetooth.
GNU General Public License v3.0
516 stars 76 forks source link

Options for devices that `hcitool inq` can't query? #7

Open vitorio opened 7 years ago

vitorio commented 7 years ago

I'm trying to MITM a device that pairs with a PS Vita, and the device is scanned fine, but the PS Vita seems to basically be invisible to hcitool. scan doesn't see it, and inq can't query it, and sdptool can't reach it, and neither can l2ping.

I'm using two different Bluetooth adapters, so it's not that, neither one see it.

I've turned on PSCAN and ISCAN, and so the computer is visible to the Vita, but even trying to pair it doesn't help.

Do I have any options?

vitorio commented 7 years ago

Some additional details from a recent attempt:

$ sudo btproxy -v D4:4B:5E:D2:64:A9 8C:DE:52:B4:2C:F8
Running proxy on master  D4:4B:5E:D2:64:A9  and slave  8C:DE:52:B4:2C:F8
running  ['replace_bluetoothd']
running  ['hciconfig', '-a']
running  ['hciconfig', 'hci1', 'up']
running  ['hciconfig', 'hci2', 'up']
Slave adapter:  hci1
Master adapter:  hci2
Looking up info on slave (8C:DE:52:B4:2C:F8)
running  ['hcitool', 'inq']
Looking up info on master (D4:4B:5E:D2:64:A9)
running  ['hcitool', 'inq']
Still looking for  D4:4B:5E:D2:64:A9 ...  Is it discoverable? 
running  ['hcitool', 'inq']

"Still looking" and "running" will repeat forever. It never discovers the Vita (and the Vita won't accept incoming connections anyway). I expected it to simulate the slave device and announce itself so the Vita could connect to it, but it never gets there.

owlux commented 3 years ago

Before impersonating ("simulate") a slave device, Btproxy tries to connect to the master device to obtain the device name and class name. Therefore, if the master device is undiscoverable, we need to skip this process, but that option is not currently implemented, so you need to modify the source code.

I have implemented this feature in the forked source code in my repository, which may be useful for you..