6 KiB
Introducción
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 publicitarios (balizas), estos paquetes transmiten la existencia del dispositivo BLE a otros dispositivos cercanos. Estas balizas a veces envían datos también.
El dispositivo receptor, también llamado dispositivo central, puede responder a un paquete publicitario con una solicitud de ESCANEO enviada específicamente al dispositivo publicitario. La respuesta a ese escaneo utiliza la misma estructura que el paquete publicitario con información adicional que no pudo caber en la solicitud publicitaria 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 en los que varios dispositivos intentan establecer conexiones en los mismos canales. A continuación, la Unidad de Datos de Protocolo (PDU) contiene los datos publicitarios. 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 publicitario. Los dispositivos utilizan ADV_IND si permiten conexiones y dejan de enviar paquetes publicitarios una vez que se ha establecido una conexión.
GATT
El Perfil de Atributo Genérico (GATT) define cómo el dispositivo debe formatear y transferir datos. Cuando se analiza la superficie de ataque de un dispositivo BLE, a menudo se concentra la 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 enumera 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.
Enumeración
hciconfig #Check config, check if UP or DOWN
# If DOWN try:
sudo modprobe -c bluetooth
sudo hciconfig hci0 down && sudo hciconfig hci0 up
# Spoof MAC
spooftooph -i hci0 -a 11:22:33:44:55:66
GATTool
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 una consola interactiva con la opción -I
:
gatttool -i hci0 -I
[ ][LE]> connect 24:62:AB:B1:A8:3E Attempting to connect to A4:CF:12:6C:B3:76 Connection successful
[A4:CF:12:6C:B3:76][LE]> characteristics
handle: 0x0002, char properties: 0x20, char value handle:
0x0003, uuid: 00002a05-0000-1000-8000-00805f9b34fb
handle: 0x0015, char properties: 0x02, char value handle:
0x0016, uuid: 00002a00-0000-1000-8000-00805f9b34fb
[...]
# Write data
gatttool -i <Bluetooth adapter interface> -b <MAC address of device> --char-write-req <characteristic handle> -n <value>
gatttool -b a4:cf:12:6c:b3:76 --char-write-req -a 0x002e -n $(echo -n "04dc54d9053b4307680a"|xxd -ps)
# Read data
gatttool -i <Bluetooth adapter interface> -b <MAC address of device> --char-read -a 0x16
# Read connecting with an authenticated encrypted connection
gatttool --sec-level=high -b a4:cf:12:6c:b3:76 --char-read -a 0x002c
Bettercap
Bettercap es una herramienta de pentesting de red que se enfoca en la interceptación de tráfico y la manipulación de paquetes. Es compatible con Bluetooth Low Energy (BLE) y puede utilizarse para realizar ataques de spoofing y MITM en dispositivos BLE. Bettercap también puede utilizarse para escanear y enumerar dispositivos BLE cercanos y extraer información de ellos.
# Start listening for beacons
sudo bettercap --eval "ble.recon on"
# Wait some time
>> ble.show # Show discovered devices
>> ble.enum <mac addr> # This will show the service, characteristics and properties supported
# Write data in a characteristic
>> ble.write <MAC ADDR> <UUID> <HEX DATA>
>> ble.write <mac address of device> ff06 68656c6c6f # Write "hello" in ff06
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
-
Descubre The PEASS Family, nuestra colección exclusiva de NFTs
-
Obtén la oficial PEASS & HackTricks swag
-
Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
-
Comparte tus trucos de hacking enviando PRs al repositorio hacktricks y al repositorio hacktricks-cloud.