btproxy icon indicating copy to clipboard operation
btproxy copied to clipboard

Error when starting service

Open wishbone1138 opened this issue 8 years ago • 1 comments

I'm getting stuck on a attribute error when it tries "starting service". It pairs with my slave fine and looks up all the info it seems to need. I get a pairing successful message on my slave. It looks like it's having an issue polling the services?

I'd love to get this working as it's the only MITM BDR/EDR tool that I know of! Running proxy on master BC:EE:7B:A4:2A:50 and slave E4:22:A5:0B:DF:8B running ['replace_bluetoothd'] running ['hciconfig', '-a'] Using shared adapter running ['hciconfig', 'hci0', 'up'] Slave adapter: hci0 Master adapter: hci0 Looking up info on slave (E4:22:A5:0B:DF:8B) running ['hcitool', 'inq'] Looking up info on master (BC:EE:7B:A4:2A:50) running ['hcitool', 'inq'] Spoofing master name as PLT_Legend_btproxy running ['hciconfig', 'hci0', 'name', 'PLT_Legend_btproxy'] running ['hciconfig', 'hci0', 'sspmode', '1'] running ['hciconfig', 'hci0', 'class', '0x240404'] running ['hciconfig', 'hci0', 'piscan'] running ['which', 'bluez_simple_agent_nouser'] running ['python', '/usr/local/bin/bluez_simple_agent_nouser', 'hci0', 'E4:22:A5:0B:DF:8B'] paired running ['replace_bluetoothd', '/usr/local/lib/python2.7/dist-packages/btproxy-0.1-py2.7-linux-x86_64.egg/blocksdp.so'] Spoofing master name as PLT_Legend_btproxy running ['hciconfig', 'hci0', 'name', 'PLT_Legend_btproxy'] running ['hciconfig', 'hci0', 'sspmode', '1'] running ['hciconfig', 'hci0', 'class', '0x240404'] running ['hciconfig', 'hci0', 'piscan'] {'protocol': None, 'name': None, 'service-id': None, 'profiles': [], 'service-classes': ['1200'], 'host': 'E4:22:A5:0B:DF:8B', 'provider': None, 'port': None, 'description': None} SDP interceptor started Starting service {'protocol': None, 'name': None, 'service-id': None, 'profiles': [], 'service-classes': ['1200'], 'host': 'E4:22:A5:0B:DF:8B', 'provider': None, 'port': None, 'description': None} Traceback (most recent call last): [Errno 2] No such file or directory File "/usr/local/bin/btproxy", line 4, in import('pkg_resources').run_script('btproxy==0.1', 'btproxy') File "/usr/lib/python2.7/dist-packages/pkg_resources/init.py", line 719, in run_script self.require(requires)[0].run_script(script_name, ns) File "/usr/lib/python2.7/dist-packages/pkg_resources/init.py", line 1504, in run_script exec(code, namespace, namespace) File "/usr/local/lib/python2.7/dist-packages/btproxy-0.1-py2.7-linux-x86_64.egg/EGG-INFO/scripts/btproxy", line 39, in btproxy.mitm() File "/usr/local/lib/python2.7/dist-packages/btproxy-0.1-py2.7-linux-x86_64.egg/libbtproxy/mitm.py", line 535, in mitm server_sock = self.start_service(service) File "/usr/local/lib/python2.7/dist-packages/btproxy-0.1-py2.7-linux-x86_64.egg/libbtproxy/mitm.py", line 260, in start_service if service['protocol'].lower() == 'l2cap': AttributeError: 'NoneType' object has no attribute 'lower'

wishbone1138 avatar Nov 04 '16 05:11 wishbone1138

So "running ['hciconfig', 'hci0', 'piscan']" returned this object:

{'protocol': None, 'name': None, 'service-id': None, 'profiles': [], 'service-classes': ['1200'], 'host': 'E4:22:A5:0B:DF:8B', 'provider': None, 'port': None, 'description': None}

And the protocol is None and the script expects it to be a string, hence failing at if service['protocol'].lower() == 'l2cap. I suggest running hciconfig hci0 piscan to see if that is the correct results the parser is getting. If not, patch the parsing of the commands output. If already correct, figure out if RFCOMM or L2CAP is the protocol to be used. Then patch the script at mitm.py:260 to use the right protocol.

Pull request is welcome.

conorpp avatar Nov 13 '16 05:11 conorpp