"PENTESTING A BLUETOOTH"
"PARTE I: Introduccion. al stack. de protocolos."
Ultimamente he jugado con diferentes herramientas desarolladas exclusivamente para el testeo de este protocolo asi como me he leido toda la especificacion para analizar su funcionamiento , algunas herramientas las incluye de manera nativa algunas distribuciones linux y sus derivados.
primeramente vamos a observar el stack de bluetooth, cabe destacar que bluetooth son un conjunto de funcionalidades que brindan comunicacion, envio de mensajes, seguridad, administracion de la comunicacion , etc, etc.
aqui una imagen del stack:
como podemos observar, el stack esta compuesto por varios niveles de abstraccion al igual que con los demas protocolos de comunicacion, algunos controlan el funcionamiento electronico o electrico, otros mas controlan la capa de enlace de datos para proveer la comunicacion entre el dispositivo master y el slave, otros controlan las bandas base, etc.
No mencionare aqui el funcionamiento ni la especificacion de cada uno de ellos, puesto que las mismas especificaciones se tendrian que leer varios archivos para entenderlo completamente.
lo que si explicare a continuacion es el proceso de emparejamiento principal que ocurre tras bambalinas cuando nos conectamos con otro dispostivo, el pin es el resultado de un numero pseudo-aleatorio.
Ahora bien, con el surgimiento de el internet de las cosas o internet of things mas dispositivos van a incluir en sus funciones, este protocolo aunque en su v5 que contiene una mayor seguridad, pero, claro esta que el mismo proceso de intercambio de llaves es el mismo desde hace mas de una decada desde que bluethoot se conviertiera en un estandar o pila de protocolos universales definitivo.
la desventaja de este tipo de ataques es que se necesita estar relativamente cerca a unos 10m-100m del objetivo o de la victima.
el encargado de pasarnos directamente al baseband y nos da acceso al hardware y a los registro de control es el famoso HCI (host controller interface).
HCI es uno de los encargados de los emparejamientos , el establecimiento, la autenticacion correcta y la configuracion del enlace.
en esta investigacion de varios articulos vamos a ver las distintas formas de PDU de algunos protocolos, (no todos) si no solamente los mas importantes, asi como la generacion de las llaves para el establecimiento de las conexion.
ahora, el link manager protocol localiza a otros gestores del stack mismo y se comunica con ellos gracias al LMP, El LMP consiste en un numero determinado de PDU que son los "paquetes de comunicacion dentro de esta capa" cada PDU corresponde a un distinto mensaje para enviar datos, para recibirlos, para intercambiar las llaves, entre otras cuestiones tecnicas, mas adelante hablaremos mas a fondo de ello.
tambien cabe destacar que existen diversos perfiles en los cuales funcionan para la retro-compatibilidad con demas dispositivos y de diversos fabricantes.
la imagen siguiente es un ejemplo de algunos de los perfiles, cada uno con una funcionalidad y caracteristicas especificas propias:
Posteriormente desde las primeras versiones del stack hasta la actualidad se han ido agregando nuevos perfiles, pero casi todos funcionan de manera similar para una compatiblidad como se menciono anteriormente.
ahora vamos a dejar lo demas aun lado e ir de capa en capa respecto ala funcionalidad del stack.
vamos a comenzar por la capa fisica, la mas basica:
CAPA FISICA DEL STACK
para comenzar con nuestro analisis conviene aclarar que podemos crear dos tipos distintos de redes , una es la piconet que contiene un master y varios slaves, el master en este caso es el que controla como se van a utilizar las frecuencias, en este caso las frecuencias son en modo hopping es decir pueden brincar desde una longitud hacia otra, nunca fija, como la imagen siguiente:
el reloj o clock del master es quien dirigira hacia donde se dirigira la comunicacion inalambrica, este mecanismo tiene una duracion de algunos microsegundos para brincar de frecuencias.
en cuanto alos tipos de linkeado existen dos como se muestran en la imagen:
en el linkeado tipo SCO el canal de comunicacion es reservado por dos periodos de tiempo consecutivos entre el master y el slave. el periodo de tiempo esta supervisado por el master solamente, despues de esto, todos los slaves se comunican con el mediante una linea de comunicacion.en el ACL linkeado es una comunicacion punto a multipunto etre el master y todos los slaves participantes en unan piconet, el master puede establecer un linkeado ACL a cada un slave pero solo puede existir una comunicacion ACL , ademas de que este tipo de comunicacion puede retransmitirse en algun momento dado.
CAPA ENLACE
el stack cuenta con 5 opciones en la capa de enlace para transferir disintos tipos de informacion los cuales son los siguientes:aunque los mas usados aqui son el LM y el LC ya que son los que proporcionan acceso al linkeado, los demás se utilizan para transmitir información asyncrona, asyncronica, y syncrona respectivamente.
vamos a ver y analizar primero en LM para ver de que trata.
LINK MANAGER:
ahora toca analizar la imagen anterior como toda metodología utilizada en este blog de ciber-seguridad,
lo que se nos muestra en la ilustracion anterior son los procesos tipicos de un dispositivo bluetooth pero con un poco mas de complejidad.que explicaremos resumidamente dentro de estas lineas de abajo.
lo primero que podemos observar es la palabra inquiry o como su nombre lo dice es una consulta la cual consulta valga la redundancia de si hay una señalizacion activa o alguna inicializacion por parte de algun dispositivo o señal solicitante que quiera conectarse a nosotros y establecer una conexion, el page o mejor conocido como page scan existe una vulnerabilidad donde en este detalle se puede efectuar un ataque exitoso, claro esta siempre y cuando el dispositivo y la version del protocolo utilizada sean las que aun no esten parcheadas por el fabricante, segun la fuente siguiente https://www.tarlogic.com/es/blog/ataques-link-manager-bluetooth-braktooth/ la vulnerabilidad dispositivo esclavo espera y responde a un dispositivo maestro para iniciar una conexión, o deshabilitando por completo Bluetooth a través de una vulnerabilidad de ejecución arbitraria de código.
otro detalle importante que debemos a tener en cuenta es el transmit AMA, esto tiene que ver mas con transmitir los datos, codificar y volver a descodificar los mismos datos, cuando ya se ha realizado una conexion con exito entonces los datos pueden ser transmitidos con total facilidad.
las demas opciones de PARK PMA, HOLD AMA Y SNIFF AMA, pudiesen estar solo relacionados con el tipo del protocolo de baja energia como los diferentes dispositivos que utilizan baja energia o low power.
hasta aqui quedo la primera parte donde abordamos muy superficialmente el stack de protocolos que conforman al complejo bluetooth, en otras entregas veremos a profundidad como realizar un snifeo como obtener señalizaciones entre otras cosillas muy interesantes.
Happy hacking les desea
The pentester.
y no se olviden de
Hack the planet!!
REFERENCIAS:
https://linux.die.net/man/1/sdptool
http://linuxcommand.org/man_pages/l2ping1.html
http://bluehack.elhacker.net/
http://www.amd.e-technik.uni-rostock.de/ma/gol/lectures/wirlec/bluetooth_info/radio.html
https://wiki.wireshark.org/Bluetooth
https://en.wikipedia.org/wiki/List_of_Bluetooth_profiles
0 comments:
Publicar un comentario