Pentesting BLE - Bluetooth Low Energy
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Disponible desde la especificación Bluetooth 4.0, BLE utiliza solo 40 canales, cubriendo el rango de 2400 a 2483.5 MHz. En contraste, el Bluetooth tradicional utiliza 79 canales en ese mismo rango.
Los dispositivos BLE se comunican enviando paquetes de publicidad (beacons), estos paquetes transmiten la existencia del dispositivo BLE a otros dispositivos cercanos. Estos beacons a veces envían datos también.
El dispositivo que escucha, también llamado dispositivo central, puede responder a un paquete de publicidad con una solicitud SCAN enviada específicamente al dispositivo publicitario. La respuesta a ese escaneo utiliza la misma estructura que el paquete de publicidad con información adicional que no pudo caber en la solicitud de publicidad inicial, como el nombre completo del dispositivo.
El byte de preámbulo sincroniza la frecuencia, mientras que la dirección de acceso de cuatro bytes es un identificador de conexión, que se utiliza en escenarios donde múltiples dispositivos intentan establecer conexiones en los mismos canales. A continuación, la Unidad de Datos de Protocolo (PDU) contiene los datos de publicidad. Hay varios tipos de PDU; los más comúnmente utilizados son ADV_NONCONN_IND y ADV_IND. Los dispositivos utilizan el tipo de PDU ADV_NONCONN_IND si no aceptan conexiones, transmitiendo datos solo en el paquete de publicidad. Los dispositivos utilizan ADV_IND si permiten conexiones y dejan de enviar publicidad una vez que se ha establecido una conexión.
El Perfil de Atributo Genérico (GATT) define cómo el dispositivo debe formatear y transferir datos. Cuando estás analizando la superficie de ataque de un dispositivo BLE, a menudo concentrarás tu atención en el GATT (o GATTs), porque es cómo se activa la funcionalidad del dispositivo y cómo se almacenan, agrupan y modifican los datos. El GATT lista las características, descriptores y servicios de un dispositivo en una tabla como valores de 16 o 32 bits. Una característica es un valor de datos enviado entre el dispositivo central y el periférico. Estas características pueden tener descriptores que proporcionan información adicional sobre ellas. Las características a menudo se agrupan en servicios si están relacionadas con la realización de una acción particular.
GATTool permite establecer una conexión con otro dispositivo, listar las características de ese dispositivo y leer y escribir sus atributos.
GATTTool puede lanzar un shell interactivo con la opción -I
:
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)