hacktricks/radio-hacking/pentesting-ble-bluetooth-low-energy.md

92 lines
5.9 KiB
Markdown

{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Uvod
Dostupan od Bluetooth 4.0 specifikacije, BLE koristi samo 40 kanala, pokrivajući opseg od 2400 do 2483.5 MHz. Nasuprot tome, tradicionalni Bluetooth koristi 79 kanala u istom opsegu.
BLE uređaji komuniciraju slanjem **oglasnih paketa** (**beacon-a**), ovi paketi emitiraju postojanje BLE uređaja drugim obližnjim uređajima. Ovi beacon-i ponekad takođe **šalju podatke**.
Uređaj koji sluša, takođe nazvan centralni uređaj, može odgovoriti na oglasni paket sa **SCAN zahtevom** poslatim posebno oglasnom uređaju. **Odgovor** na taj sken koristi istu strukturu kao i **oglasni** paket sa dodatnim informacijama koje nisu mogle stati u inicijalni oglasni zahtev, kao što je puno ime uređaja.
![](<../.gitbook/assets/image (201) (2) (1) (1).png>)
Bajt preambule sinhronizuje frekvenciju, dok je četvorobajtna adresa pristupa **identifikator veze**, koji se koristi u scenarijima gde više uređaja pokušava da uspostavi veze na istim kanalima. Sledeće, Protokol Jedinica Podataka (**PDU**) sadrži **oglasne podatke**. Postoji nekoliko tipova PDU; najčešće korišćeni su ADV\_NONCONN\_IND i ADV\_IND. Uređaji koriste tip PDU **ADV\_NONCONN\_IND** ako **ne prihvataju veze**, prenoseći podatke samo u oglasnom paketu. Uređaji koriste **ADV\_IND** ako **dozvoljavaju veze** i **prestaju da šalju oglasne** pakete kada je **veza** **uspostavljena**.
## GATT
**Generički atributni profil** (GATT) definiše kako **uređaj treba da formatira i prenosi podatke**. Kada analizirate površinu napada BLE uređaja, često ćete usmeriti svoju pažnju na GATT (ili GATT-ove), jer je to način na koji se **funkcionalnost uređaja aktivira** i kako se podaci čuvaju, grupišu i modifikuju. GATT navodi karakteristike, deskriptore i usluge uređaja u tabeli kao 16- ili 32-bitne vrednosti. **Karakteristika** je **vrednost podataka** **poslata** između centralnog uređaja i perifernog. Ove karakteristike mogu imati **deskriptore** koji **pružaju dodatne informacije o njima**. **Karakteristike** se često **grupišu** u **usluge** ako su povezane sa izvršavanjem određene radnje.
# Enumeracija
```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** omogućava **uspostavljanje** **veze** sa drugim uređajem, prikazujući **karakteristike** tog uređaja, kao i čitanje i pisanje njegovih atributa.\
GATTTool može pokrenuti interaktivnu ljusku sa `-I` opcijom:
```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 <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
```bash
# 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
```
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
{% endhint %}