{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* 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.
{% endhint %}
# Wprowadzenie
Dost臋pny od specyfikacji Bluetooth 4.0, BLE u偶ywa tylko 40 kana艂贸w, obejmuj膮cych zakres od 2400 do 2483,5 MHz. W przeciwie艅stwie do tego, tradycyjny Bluetooth u偶ywa 79 kana艂贸w w tym samym zakresie.
Urz膮dzenia BLE komunikuj膮 si臋, wysy艂aj膮c **pakiety reklamowe** (**beacons**), kt贸re og艂aszaj膮 istnienie urz膮dzenia BLE innym pobliskim urz膮dzeniom. Te beacons czasami r贸wnie偶 **wysy艂aj膮 dane**.
Urz膮dzenie nas艂uchuj膮ce, zwane r贸wnie偶 urz膮dzeniem centralnym, mo偶e odpowiedzie膰 na pakiet reklamowy za pomoc膮 **偶膮dania SCAN** wys艂anego specjalnie do urz膮dzenia reklamowego. **Odpowied藕** na to skanowanie u偶ywa tej samej struktury co pakiet **reklamowy** z dodatkowymi informacjami, kt贸re nie mog艂y zmie艣ci膰 si臋 w pocz膮tkowym 偶膮daniu reklamowym, takimi jak pe艂na nazwa urz膮dzenia.
![](<../.gitbook/assets/image (201) (2) (1) (1).png>)
Bajt preambu艂y synchronizuje cz臋stotliwo艣膰, podczas gdy czterobajtowy adres dost臋pu jest **identyfikatorem po艂膮czenia**, kt贸ry jest u偶ywany w scenariuszach, w kt贸rych wiele urz膮dze艅 pr贸buje nawi膮za膰 po艂膮czenia na tych samych kana艂ach. Nast臋pnie Jednostka Danych Protokolarnej (**PDU**) zawiera **dane reklamowe**. Istnieje kilka typ贸w PDU; najcz臋艣ciej u偶ywane to ADV\_NONCONN\_IND i ADV\_IND. Urz膮dzenia u偶ywaj膮 typu PDU **ADV\_NONCONN\_IND**, je艣li **nie akceptuj膮 po艂膮cze艅**, przesy艂aj膮c dane tylko w pakiecie reklamowym. Urz膮dzenia u偶ywaj膮 **ADV\_IND**, je艣li **pozwalaj膮 na po艂膮czenia** i **przestaj膮 wysy艂a膰 pakiety reklamowe**, gdy **po艂膮czenie** zosta艂o **nawi膮zane**.
## GATT
**Og贸lny Profil Atrybut贸w** (GATT) definiuje, jak **urz膮dzenie powinno formatowa膰 i przesy艂a膰 dane**. Gdy analizujesz powierzchni臋 ataku urz膮dzenia BLE, cz臋sto skupiasz swoj膮 uwag臋 na GATT (lub GATTach), poniewa偶 to spos贸b, w jaki **funkcjonalno艣膰 urz膮dzenia jest wywo艂ywana** oraz jak dane s膮 przechowywane, grupowane i modyfikowane. GATT wymienia cechy, deskryptory i us艂ugi urz膮dzenia w tabeli jako warto艣ci 16- lub 32-bitowe. **Cech膮** jest **warto艣膰 danych** **wysy艂ana** mi臋dzy urz膮dzeniem centralnym a peryferyjnym. Te cechy mog膮 mie膰 **deskryptory**, kt贸re **dostarczaj膮 dodatkowe informacje o nich**. **Cechy** s膮 cz臋sto **grupowane** w **us艂ugach**, je艣li s膮 zwi膮zane z wykonywaniem okre艣lonej akcji.
# Enumeracja
```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** umo偶liwia **nawi膮zanie** **po艂膮czenia** z innym urz膮dzeniem, wylistowanie **cech** tego urz膮dzenia oraz odczytywanie i zapisywanie jego atrybut贸w.\
GATTTool mo偶e uruchomi膰 interaktywn膮 pow艂ok臋 z opcj膮 `-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
```
{% hint style="success" %}
Ucz si臋 i 膰wicz Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Ucz si臋 i 膰wicz Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Wsparcie HackTricks
* Sprawd藕 [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Do艂膮cz do** 馃挰 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **艣led藕** nas na **Twitterze** 馃惁 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Dziel si臋 trikami hackingowymi, przesy艂aj膮c PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytori贸w na GitHubie.
{% endhint %}