Pentesting BLE - Bluetooth Low Energy

Support HackTricks

Εισαγωγή

Διαθέσιμο από την προδιαγραφή Bluetooth 4.0, το BLE χρησιμοποιεί μόνο 40 κανάλια, καλύπτοντας τη συχνότητα από 2400 έως 2483.5 MHz. Σε αντίθεση, το παραδοσιακό Bluetooth χρησιμοποιεί 79 κανάλια στην ίδια περιοχή.

Οι συσκευές BLE επικοινωνούν στέλνοντας διαφημιστικά πακέτα (beacons), αυτά τα πακέτα μεταδίδουν την ύπαρξη της συσκευής BLE σε άλλες κοντινές συσκευές. Αυτά τα beacons μερικές φορές στέλνουν δεδομένα επίσης.

Η συσκευή που ακούει, που ονομάζεται επίσης κεντρική συσκευή, μπορεί να απαντήσει σε ένα διαφημιστικό πακέτο με ένα αίτημα SCAN που αποστέλλεται ειδικά στη διαφημιστική συσκευή. Η απάντηση σε αυτή την σάρωση χρησιμοποιεί την ίδια δομή με το διαφημιστικό πακέτο με πρόσθετες πληροφορίες που δεν μπορούσαν να χωρέσουν στην αρχική διαφημιστική αίτηση, όπως το πλήρες όνομα της συσκευής.

Ο προοίμιος byte συγχρονίζει τη συχνότητα, ενώ η διεύθυνση πρόσβασης τεσσάρων byte είναι ένας αναγνωριστικός αριθμός σύνδεσης, ο οποίος χρησιμοποιείται σε σενάρια όπου πολλές συσκευές προσπαθούν να δημιουργήσουν συνδέσεις στα ίδια κανάλια. Στη συνέχεια, η Μονάδα Δεδομένων Πρωτοκόλλου (PDU) περιέχει τα διαφημιστικά δεδομένα. Υπάρχουν αρκετοί τύποι PDU; οι πιο συχνά χρησιμοποιούμενοι είναι οι ADV_NONCONN_IND και ADV_IND. Οι συσκευές χρησιμοποιούν τον τύπο PDU ADV_NONCONN_IND αν δεν δέχονται συνδέσεις, μεταδίδοντας δεδομένα μόνο στο διαφημιστικό πακέτο. Οι συσκευές χρησιμοποιούν ADV_IND αν επιτρέπουν συνδέσεις και σταματούν να στέλνουν διαφημιστικά πακέτα μόλις έχει δημιουργηθεί μια σύνδεση.

GATT

Το Generic Attribute Profile (GATT) καθορίζει πώς θα μορφοποιεί και θα μεταφέρει δεδομένα η συσκευή. Όταν αναλύετε την επιφάνεια επίθεσης μιας συσκευής BLE, συχνά θα εστιάσετε την προσοχή σας στο GATT (ή GATTs), επειδή είναι ο τρόπος με τον οποίο ενεργοποιείται η λειτουργικότητα της συσκευής και πώς αποθηκεύονται, ομαδοποιούνται και τροποποιούνται τα δεδομένα. Το GATT καταγράφει τα χαρακτηριστικά, τους περιγραφείς και τις υπηρεσίες μιας συσκευής σε έναν πίνακα ως τιμές 16 ή 32 bit. Ένα χαρακτηριστικό είναι μια τιμή δεδομένων που στέλνεται μεταξύ της κεντρικής συσκευής και της περιφερειακής. Αυτά τα χαρακτηριστικά μπορούν να έχουν περιγραφείς που παρέχουν πρόσθετες πληροφορίες γι' αυτά. Τα χαρακτηριστικά συχνά ομαδοποιούνται σε υπηρεσίες αν σχετίζονται με την εκτέλεση μιας συγκεκριμένης ενέργειας.

Αρίθμηση

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 επιτρέπει να δημιουργηθεί μια σύνδεση με μια άλλη συσκευή, καταγράφοντας τις χαρακτηριστικές αυτής της συσκευής και διαβάζοντας και γράφοντας τα χαρακτηριστικά της. GATTTool μπορεί να εκκινήσει ένα διαδραστικό κέλυφος με την επιλογή -I:

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

# 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
Υποστηρίξτε το HackTricks

Last updated