{% 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 %}