Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! Outras formas de apoiar o HackTricks: * Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos * **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** * **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
# Introdução Disponível desde a especificação Bluetooth 4.0, o BLE usa apenas 40 canais, cobrindo a faixa de 2400 a 2483,5 MHz. Em contraste, o Bluetooth tradicional usa 79 canais na mesma faixa. Os dispositivos BLE se comunicam enviando **pacotes de publicidade** (**beacons**), esses pacotes transmitem a existência do dispositivo BLE para outros dispositivos próximos. Esses beacons às vezes **enviam dados** também. O dispositivo receptor, também chamado de dispositivo central, pode responder a um pacote de publicidade com uma **SOLICITAÇÃO DE VARREDURA** enviada especificamente para o dispositivo anunciante. A **resposta** a essa varredura usa a mesma estrutura que o pacote de **publicidade** com informações adicionais que não cabiam na solicitação de publicidade inicial, como o nome completo do dispositivo. ![](<../.gitbook/assets/image (201) (2) (1) (1).png>) O byte de preâmbulo sincroniza a frequência, enquanto o endereço de acesso de quatro bytes é um **identificador de conexão**, que é usado em cenários onde vários dispositivos estão tentando estabelecer conexões nos mesmos canais. Em seguida, a Unidade de Dados do Protocolo (**PDU**) contém os **dados de publicidade**. Existem vários tipos de PDU; os mais comumente usados são ADV\_NONCONN\_IND e ADV\_IND. Dispositivos usam o tipo de PDU **ADV\_NONCONN\_IND** se eles **não aceitam conexões**, transmitindo dados apenas no pacote de publicidade. Dispositivos usam **ADV\_IND** se eles **permitem conexões** e **param de enviar pacotes de publicidade** uma vez que uma **conexão** tenha sido **estabelecida**. ## GATT O **Perfil de Atributo Genérico** (GATT) define como o **dispositivo deve formatar e transferir dados**. Quando você está analisando a superfície de ataque de um dispositivo BLE, você frequentemente concentra sua atenção no GATT (ou GATTs), porque é assim que a **funcionalidade do dispositivo é acionada** e como os dados são armazenados, agrupados e modificados. O GATT lista as características, descritores e serviços de um dispositivo em uma tabela como valores de 16 ou 32 bits. Uma **característica** é um valor de **dados** **enviado** entre o dispositivo central e periférico. Essas características podem ter **descritores** que **fornecem informações adicionais sobre elas**. **Características** são frequentemente **agrupadas** em **serviços** se estiverem relacionadas à realização de uma ação específica. # Enumeração ```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 **estabelecer** uma **conexão** com outro dispositivo, listando as **características** desse dispositivo e lendo e escrevendo seus atributos.\ GATTool pode iniciar um shell interativo com a opção `-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 ```
Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! Outras formas de apoiar o HackTricks: * Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos * **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** * **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).