mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
92 lines
6.2 KiB
Markdown
92 lines
6.2 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 %}
|
|
|
|
|
|
# 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 <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" %}
|
|
Ucz się i ćwicz Hacking AWS:<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">\
|
|
Ucz się i ćwicz Hacking GCP: <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>Wsparcie HackTricks</summary>
|
|
|
|
* 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.
|
|
|
|
</details>
|
|
{% endhint %}
|