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

121 lines
8.3 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-11 02:07:06 +00:00
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 02:07:06 +00:00
Ander maniere om HackTricks te ondersteun:
2022-04-28 16:01:33 +00:00
2024-02-11 02:07:06 +00:00
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
2022-04-28 16:01:33 +00:00
</details>
2022-05-01 16:32:23 +00:00
2024-02-11 02:07:06 +00:00
# Inleiding
2022-02-28 09:13:08 +00:00
2024-02-11 02:07:06 +00:00
Beskikbaar sedert die Bluetooth 4.0 spesifikasie, gebruik BLE slegs 40 kanale wat die reeks van 2400 tot 2483.5 MHz dek. In teenstelling hiermee gebruik tradisionele Bluetooth 79 kanale in dieselfde reeks.
2022-02-28 09:13:08 +00:00
2024-02-11 02:07:06 +00:00
BLE-toestelle kommunikeer deur **advertensiepakkies** (**beacons**) te stuur, hierdie pakkies versprei die BLE-toestel se bestaan aan ander nabygeleë toestelle. Hierdie beacons stuur soms ook **data**.
2022-02-28 09:13:08 +00:00
2024-02-11 02:07:06 +00:00
Die luisterende toestel, ook bekend as 'n sentrale toestel, kan reageer op 'n advertensiepakkie met 'n **SCAN-versoek** wat spesifiek na die advertensietoestel gestuur word. Die **reaksie** op daardie skandering gebruik dieselfde struktuur as die **advertensie**pakkie met addisionele inligting wat nie op die oorspronklike advertensieversoek kon pas nie, soos die volledige toestelnaam.
2022-02-28 09:13:08 +00:00
2022-05-01 16:17:23 +00:00
![](<../.gitbook/assets/image (201) (2) (1) (1).png>)
2022-02-28 09:13:08 +00:00
2024-02-11 02:07:06 +00:00
Die voorkombyte synchroniseer die frekwensie, terwyl die vierbyte toegangsadres 'n **verbindingsidentifiseerder** is wat gebruik word in scenario's waar meerdere toestelle probeer om verbindings op dieselfde kanale te vestig. Volgende bevat die Protokoldata-eenheid (**PDU**) die **advertensiedata**. Daar is verskeie tipes PDU's; die mees algemeen gebruikte is ADV\_NONCONN\_IND en ADV\_IND. Toestelle gebruik die **ADV\_NONCONN\_IND** PDU-tipe as hulle **geen verbindings aanvaar nie**, en stuur slegs data in die advertensiepakkie. Toestelle gebruik **ADV\_IND** as hulle **verbindings toelaat** en **stop om advertensiepakkies te stuur** sodra 'n **verbinding** gevestig is.
2022-02-28 09:13:08 +00:00
2022-05-01 16:32:23 +00:00
## GATT
2022-02-28 09:13:08 +00:00
2024-02-11 02:07:06 +00:00
Die **Generic Attribute Profile** (GATT) definieer hoe die **toestel data moet formateer en oordra**. Wanneer jy 'n BLE-toestel se aanvalsvlak analiseer, sal jy dikwels jou aandag op die GATT (of GATT's) vestig, omdat dit is hoe **toestelfunksionaliteit geaktiveer** word en hoe data gestoor, gegroepeer en gewysig word. Die GATT lys 'n toestel se eienskappe, beskrywers en dienste in 'n tabel as 16- of 32-bits waardes. 'n **Eienskap** is 'n **datawaarde** wat tussen die sentrale toestel en periferieë gestuur word. Hierdie eienskappe kan **beskrywers** hê wat **addisionele inligting daaroor verskaf**. **Eienskappe** word dikwels in **dienste** gegroepeer as hulle verband hou met die uitvoering van 'n spesifieke aksie.
2022-02-28 09:13:08 +00:00
2024-02-11 02:07:06 +00:00
# Enumerasie
2022-02-28 09:13:08 +00:00
```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
```
2022-05-01 16:32:23 +00:00
## GATTool
2022-02-28 09:13:08 +00:00
2024-02-11 02:07:06 +00:00
**GATTool** maak dit moontlik om 'n **verbinding** met 'n ander toestel te **vestig**, die eienskappe van daardie toestel te lys, en sy atribuute te lees en te skryf.\
GATTTool kan 'n interaktiewe skil met die `-I` opsie begin:
2022-02-28 09:13:08 +00:00
```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
2024-02-11 02:07:06 +00:00
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
2022-02-28 09:13:08 +00:00
[...]
# 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
```
2022-05-01 16:32:23 +00:00
## Bettercap
2022-02-28 09:13:08 +00:00
2024-02-11 02:07:06 +00:00
Bettercap is 'n kragtige, modulêre en veelsydige hulpmiddel vir pentesting van Bluetooth Low Energy (BLE) toestelle. Dit bied 'n verskeidenheid funksies en modules wat spesifiek ontwerp is vir die ondersoek en aanval van BLE-netwerke.
### Funksies
- **Sniffing**: Bettercap kan gebruik word om BLE-verkeer te onderskep en te analiseer. Dit kan gebruik word om data te onderskep, insluitend gevoelige inligting soos wagwoorde en persoonlike inligting.
- **Spoofing**: Met Bettercap kan jy BLE-toestelle naboots en hul identiteit vervals. Dit kan gebruik word om toegang te verkry tot beperkte hulpbronne of om vals data na die netwerk te stuur.
- **Man-in-the-Middle (MITM) aanvalle**: Bettercap ondersteun MITM-aanvalle op BLE-netwerke. Dit kan gebruik word om verkeer tussen twee toestelle te onderskep en te manipuleer, insluitend die onderskepping van gevoelige inligting.
- **Aanvalle op koppelvlakke**: Bettercap bied modules wat spesifiek ontwerp is vir die aanval van spesifieke BLE-koppelvlakke, soos die aanval van die GAP (Generic Access Profile) of GATT (Generic Attribute Profile).
- **Aanvalle op protokolle**: Bettercap ondersteun aanvalle op spesifieke BLE-protokolle, soos die aanval van die L2CAP (Logical Link Control and Adaptation Protocol) of ATT (Attribute Protocol).
### Gebruik
Bettercap kan gebruik word deur die opdragreël te hardloop en die nodige modules en opsies te spesifiseer. Dit bied 'n kragtige en aanpasbare omgewing vir die uitvoering van verskeie BLE-aanvalle.
Hier is 'n voorbeeld van die gebruik van Bettercap om BLE-verkeer te onderskep:
```
sudo bettercap -iface wlan0 -caplet ble.cap
```
Hierdie opdrag sal Bettercap begin en die `wlan0`-koppelvlak gebruik om BLE-verkeer te onderskep. Die `ble.cap`-lêer bevat die spesifieke instruksies vir die onderskepping en analise van die verkeer.
### Waarskuwing
Dit is belangrik om te onthou dat die gebruik van Bettercap of enige ander hulpmiddel vir die aanval van BLE-netwerke slegs toegelaat word met toestemming van die eienaar van die netwerk. Onwettige toegang of aanvalle op BLE-netwerke is 'n oortreding van die wet en kan ernstige gevolge hê.
2022-02-28 09:13:08 +00:00
```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
```
2022-04-28 16:01:33 +00:00
<details>
2024-02-11 02:07:06 +00:00
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 02:07:06 +00:00
Ander maniere om HackTricks te ondersteun:
2022-04-28 16:01:33 +00:00
2024-02-11 02:07:06 +00:00
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
2022-04-28 16:01:33 +00:00
</details>