Pentesting BLE - Bluetooth Low Energy

Reading time: 5 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

Introduction

Bluetooth 4.0 विनिर्देशन से उपलब्ध, BLE केवल 40 चैनलों का उपयोग करता है, जो 2400 से 2483.5 MHz की सीमा को कवर करता है। इसके विपरीत, पारंपरिक Bluetooth उसी सीमा में 79 चैनलों का उपयोग करता है।

BLE उपकरण विज्ञापन पैकेट (बीकन) भेजकर संवाद करते हैं, ये पैकेट BLE उपकरण की उपस्थिति को अन्य निकटवर्ती उपकरणों को प्रसारित करते हैं। ये बीकन कभी-कभी डेटा भी भेजते हैं।

सुनने वाला उपकरण, जिसे केंद्रीय उपकरण भी कहा जाता है, एक विज्ञापन पैकेट का उत्तर SCAN अनुरोध के साथ दे सकता है जो विशेष रूप से विज्ञापन उपकरण को भेजा जाता है। उस स्कैन का उत्तर उसी संरचना का उपयोग करता है जैसे विज्ञापन पैकेट, जिसमें अतिरिक्त जानकारी होती है जो प्रारंभिक विज्ञापन अनुरोध में फिट नहीं हो सकी, जैसे पूर्ण उपकरण नाम।

प्रीएम्बल बाइट आवृत्ति को समन्वयित करता है, जबकि चार-बाइट एक्सेस पता एक कनेक्शन पहचानकर्ता है, जिसका उपयोग उन परिदृश्यों में किया जाता है जहां कई उपकरण एक ही चैनलों पर कनेक्शन स्थापित करने की कोशिश कर रहे हैं। अगला, प्रोटोकॉल डेटा यूनिट (PDU) विज्ञापन डेटा को शामिल करता है। PDU के कई प्रकार होते हैं; सबसे सामान्य उपयोग किए जाने वाले ADV_NONCONN_IND और ADV_IND हैं। उपकरण ADV_NONCONN_IND PDU प्रकार का उपयोग करते हैं यदि वे कनेक्शन स्वीकार नहीं करते, केवल विज्ञापन पैकेट में डेटा प्रसारित करते हैं। उपकरण ADV_IND का उपयोग करते हैं यदि वे कनेक्शन की अनुमति देते हैं और एक बार कनेक्शन स्थापित होने पर विज्ञापन पैकेट भेजना बंद कर देते हैं।

GATT

जनरल एट्रिब्यूट प्रोफाइल (GATT) परिभाषित करता है कि उपकरण को डेटा को कैसे प्रारूपित और स्थानांतरित करना चाहिए। जब आप एक BLE उपकरण की हमले की सतह का विश्लेषण कर रहे होते हैं, तो आप अक्सर GATT (या GATTs) पर ध्यान केंद्रित करेंगे, क्योंकि यह उपकरण कार्यक्षमता को सक्रिय करने और डेटा को संग्रहीत, समूहित और संशोधित करने का तरीका है। GATT एक उपकरण की विशेषताओं, वर्णनकर्ताओं और सेवाओं को एक तालिका में 16- या 32-बिट मानों के रूप में सूचीबद्ध करता है। एक विशेषता एक डेटा मान है जो केंद्रीय उपकरण और परिधीय के बीच भेजा जाता है। इन विशेषताओं में वर्णनकर्ता हो सकते हैं जो उनके बारे में अतिरिक्त जानकारी प्रदान करते हैंविशेषताएँ अक्सर सेवाओं में समूहित होती हैं यदि वे किसी विशेष क्रिया को करने से संबंधित होती हैं।

Enumeration

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 एक कनेक्शन स्थापित करने की अनुमति देता है, उस डिवाइस की विशेषताओं को सूचीबद्ध करता है, और इसके गुणों को पढ़ता और लिखता है।
GATTTool -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

बेटरकैप

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

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें