Pentesting BLE - Bluetooth Low Energy

Support HackTricks

Introduction

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

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

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

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

GATT

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

Enumeration

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