6.2 KiB
Pentesting BLE - Bluetooth Lae Energie
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS Familie, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.
Inleiding
Beskikbaar sedert die Bluetooth 4.0-spesifikasie, gebruik BLE slegs 40 kanale, wat die reeks van 2400 tot 2483.5 MHz dek. In teenstelling, gebruik tradisionele Bluetooth 79 kanale in dieselfde reeks.
BLE-toestelle kommunikeer deur advertensiepakkette (bakens) te stuur, hierdie pakkette versprei die BLE-toestel se bestaan na ander nabygeleë toestelle. Hierdie bakens stuur soms ook data.
Die luisterende toestel, ook genoem 'n sentrale toestel, kan reageer op 'n advertensiepakket met 'n SKAN-aanvraag wat spesifiek na die adverterende toestel gestuur word. Die reaksie op daardie skandering gebruik dieselfde struktuur as die advertensie-pakket met addisionele inligting wat nie op die aanvanklike advertensie-aanvraag kon pas nie, soos die volledige toestelnaam.
Die preamble byte 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. Vervolgens bevat die Protokoldata-eenheid (PDU) die advertensiedata. Daar is verskeie soorte PDU; die mees algemeen gebruik word 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 advertensiepakket. Toestelle gebruik ADV_IND as hulle verbindings toelaat en ophou om advertensiepakkette te stuur sodra 'n verbinding gevestig is.
GATT
Die Generiese Eienskapprofiel (GATT) definieer hoe die toestel data moet formateer en oordra. Wanneer jy 'n BLE-toestel se aanvalsvlak analiseer, sal jy dikwels jou aandag fokus op die GATT (of GATTs), omdat dit is hoe toestelfunksionaliteit geaktiveer word en hoe data gestoor, gegroepeer en gewysig word. Die GATT lys 'n toestel se eienskappe, beskrywings en dienste in 'n tabel as 16- of 32-bits waardes. 'n Eienskap is 'n data-waarde gestuur tussen die sentrale toestel en periferie. Hierdie eienskappe kan beskrywings hê wat addisionele inligting daaroor verskaf. Eienskappe word dikwels gegroepeer in dienste as hulle verband hou met die uitvoering van 'n spesifieke aksie.
Enumerasie
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 maak dit moontlik om 'n verbinding met 'n ander toestel te vestig, die eienskappe van daardie toestel te lys, en om sy eienskappe te lees en te skryf.
GATTTool kan 'n interaktiewe skaal begin met die -I
opsie:
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
Afrikaans Translation:
Bettercap
# 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
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS-familie, ons versameling eksklusiewe NFT's
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.