Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Equipos Rojos de AWS de HackTricks)! Otras formas de apoyar a HackTricks: * Si deseas ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! * Obtén la [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com) * Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Comparte tus trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
# 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 de publicidad** (**balizas**), estos paquetes transmiten la existencia del dispositivo BLE a otros dispositivos cercanos. Estas balizas a veces también **envían datos**. El dispositivo receptor, también llamado dispositivo central, puede responder a un paquete de publicidad con una **solicitud de ESCANEO** 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. ![](<../.gitbook/assets/image (201) (2) (1) (1).png>) 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 varios dispositivos intentan establecer conexiones en los mismos canales. A continuación, la Unidad de Datos del Protocolo (**PDU**) contiene los **datos de publicidad**. Hay varios tipos de PDU; los más 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**. ## GATT 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 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 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 realizar una acción específica. # Enumeración ```bash 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 un shell interactivo con la opción `-I`: ```bash 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 -b --char-write-req -n gatttool -b a4:cf:12:6c:b3:76 --char-write-req -a 0x002e -n $(echo -n "04dc54d9053b4307680a"|xxd -ps) # Read data gatttool -i -b --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 ```bash # Start listening for beacons sudo bettercap --eval "ble.recon on" # Wait some time >> ble.show # Show discovered devices >> ble.enum # This will show the service, characteristics and properties supported # Write data in a characteristic >> ble.write >> ble.write ff06 68656c6c6f # Write "hello" in ff06 ```
Aprende hacking en AWS de cero a héroe con htARTE (Experto en Red Team de AWS de HackTricks)! Otras formas de apoyar a HackTricks: * Si quieres ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! * Obtén el [**swag oficial de PEASS & HackTricks**](https://peass.creator-spring.com) * Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Comparte tus trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.