8.5 KiB
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Εισαγωγή
Διαθέσιμο από την προδιαγραφή 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
Το Γενικό Προφίλ Χαρακτηριστικών (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
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Υποστήριξη HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.