
ब्लूटूथ हैकिंग के लिए एक खुफिया जानकारी एकत्र करने का उपकरण
Bluing (पूर्व में bluescan) एक ब्लूटूथ इंटेलिजेंस गैदरिंग टूल है जो मुख्य रूप से Python में लिखा गया है। यह हमें ब्लूटूथ की आंतरिक संरचना की जासूसी करने में मदद कर सकता है, जो एक जटिल प्रोटोकॉल है, या ब्लूटूथ उपकरणों को हैक करने में। यहाँ टूल की मुख्य विशेषताएँ हैं:
Bluing आंशिक रूप से BlueZ पर निर्भर करता है, जो आधिकारिक Linux ब्लूटूथ प्रोटोकॉल स्टैक है। इसलिए यह केवल Linux पर चलने का समर्थन करता है। निम्नलिखित कमांड का उपयोग निर्भरताओं को स्थापित करने के लिए किया जाता है:```sh
sudo apt install python3-pip python3-dev libcairo2-dev libgirepository1.0-dev
libbluetooth-dev libdbus-1-dev bluez-tools python3-cairo-dev
rfkill meson patchelf bluez ubertooth adb python-is-python3
वर्तमान में, bluing को [PyPI](https://pypi.org/project/bluing/) के माध्यम से वितरित किया जाता है और यह **केवल Python 3.10 का समर्थन करता है**। निम्नलिखित एक स्थापना आदेश है:```sh
sudo pip3.10 install bluing
- भगवान ने कहा, "रंगीन होने दो", और रंगीन हो गया।
- शायद आप अनुशंसित हार्डवेयर का संक्षिप्त अवलोकन चाहेंगे।
$ bluing --helpAn intelligence gathering tool for hacking Bluetooth
Usage:
bluing [-h | --help]
bluing (-v | --version)
bluing [-i <hci>] --clean BD_ADDR
bluing --flash-micro-bit
bluing <command> [<args>...]
Arguments:
BD_ADDR Bluetooth device address
Options:
-h, --help Print this help and quit
-v, --version Print version information and quit
-i <hci> HCI device
--clean Clean cached data of a remote device
--flash-micro-bit Download the dedicated firmware to micro:bit(s)
Commands:
br Basic Rate system, includes an optional Enhanced Data Rate (EDR) extension
le Low Energy system
android Android Bluetooth stack
spoof Spoof with new local device information
plugin Manage plugins
Run `bluing <command> --help` for more information on a command.
br command: बेसिक रेट सिस्टम$ bluing br --helpUsage:
bluing br [-h | --help]
bluing br [-i <hci>] [--inquiry-len=<n>] --inquiry
bluing br [-i <hci>] --sdp BD_ADDR
bluing br [-i <hci>] --local --sdp
bluing br [-i <hci>] --lmp-features BD_ADDR
bluing br [-i <hci>] --local --lmp-features
bluing br [-i <hci>] --stack BD_ADDR
bluing br [-i <hci>] --local --stack
bluing br [-i <hci>] [--inquiry-scan] --mon-incoming-conn
bluing br --org=<name> --timeout=<sec> --sniff-and-guess-bd-addr
Arguments:
BD_ADDR BR/EDR Bluetooth device address
Options:
-h, --help Print this help and quit
-i <hci> HCI device
--local Target a local BR/EDR device instead of a remote one
--inquiry Discover other nearby BR/EDR controllers
--inquiry-len=<n> Maximum amount of time (added to --ext-inquiry-len=<n>)
specified before the Inquiry is halted.
Time = n * 1.28 s
Time range: 1.28 to 61.44 s
Range of n: 0x01 to 0x30 [default: 8]
--ext-inquiry-len=<n> Extended_Inquiry_Length measured in number of
Baseband slots.
Interval Length = n * 0.625 ms (1 Baseband slot)
Time Range: 0 to 40.9 s
Range of n: 0x0000 to 0xFFFF [default: 0]
--sdp Retrieve information from the SDP database of a
remote BR/EDR device
--lmp-features Read LMP features of a remote BR/EDR device
--stack Determine the Bluetooth stack type of a remote BR/EDR device
--mon-incoming-conn Print incoming connection from other nearby BR/EDR devices
--inquiry-scan Enable the Inquiry Scan
--sniff-and-guess-bd-addr Sniff SAPs of BD_ADDRs over the air, then guess the
address based on the organization name. Need at
least one Ubertooth device
--org=<name> An organization name in the OUI.txt
--timeout=<sec> Timeout in second(s)
--inquiry: अन्य निकटवर्ती BR/EDR नियंत्रकों को खोजें$ sudo bluing br --inquiry[INFO] Discovering other nearby BR/EDR Controllers on hci0 for 10.24 sec BD_ADDR: B0:C9:52:45:33:13 (GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD) Page scan repetition mode: 1 (R1) Reserved: 0x02 CoD: 0x5a020c Service Class: 0b1011010000 Telephony Object Transfer Capturing Networking Major Device Class: 0b00010, Phone Clock offset: 0x50D5 RSSI: -61 Extended inquiry response: Complete Local Name: old man phone Complete List of 16-bit Service Class UUIDs 0x1105 OBEXObjectPush 0x110a AudioSource 0x110c A/V_RemoteControlTarget 0x110e A/V_RemoteControl 0x1112 Headset - Audio Gateway (AG) 0x1115 PANU 0x1116 NAP 0x111f HandsfreeAudioGateway 0x112d SIM_Access 0x112f Phonebook Access - PSE 0x1200 PnPInformation 0x1132 Message Access Server Complete List of 32-bit Service Class UUIDs None Complete List of 128-bit Service Class UUIDs A49EAA15-CB06-495C-9F4F-BB80A90CDF00 00000000-0000-0000-0000-000000000000 ... ... [INFO] Requesting the names of all discovered devices... B0:C9:52:45:33:13 : old man phone ... ...
--sdp: दूरस्थ BR/EDR डिवाइस के SDP डेटाबेस से जानकारी प्राप्त करें$ sudo bluing br --sdp 34:13:46:23:6A:4DScanning ⠋ Number of service records: 18 Service Record 0x0000: ServiceRecordHandle (uint32) 0x0001000d 0x0001: ServiceClassIDList (sequence) 0x1105: OBEXObjectPush 0x0004: ProtocolDescriptorList (sequence) 0x0100: L2CAP 0x0003: RFCOMM channel: 0x0c 0x0008: OBEX 0x0005: BrowseGroupList (sequence) 0x1002: PublicBrowseRoot 0x0009: BluetoothProfileDescriptorList (sequence) 0x1105: OBEXObjectPush v1.2 0x0100: ServiceName (guess) (text) OBEX Object Push 0x0200: GoepL2CapPsm (guess) (uint16) 0x1023 0x0303: SupportedFormatsList (guess) (sequence) 0x01: vCard 2.1 0x02: vCard 3.0 0x03: vCal 1.0 0x04: iCal 2.0 0xff: Any type of object ... ...
--lmp-features: दूरस्थ BR/EDR डिवाइस की LMP सुविधाओं को पढ़ें$ sudo bluing br --lmp-features 6A:8D:99:33:56:AEVersion Version: Bluetooth Core Specification 5.2 (LMP) Bluetooth Core Specification 5.2 (LL) Manufacturer name: HiSilicon Technologies CO., LIMITED Subversion: 33561 LMP features 3 slot packets: True 5 slot packets: True Encryption: True Slot offset: True Timing accuracy: True Role switch: True Hold mode: False Sniff mode: True Previously used: False Power control requests: True Channel quality driven data rate (CQDDR): True ... ... Extended LMP features Page 1 Secure Simple Pairing (Host Support): True LE Supported (Host): True Simultaneous LE and BR/EDR to Same Device Capable (Host): True Secure Connections (Host Support): True Page 2 Connectionless Slave Broadcast - Master Operation: False Connectionless Slave Broadcast - Slave Operation: False Synchronization Train: False Synchronization Scan: False HCI_Inquiry_Response_Notification event: True ... ...
--mon-incoming-conn: अन्य निकटवर्ती BR/EDR उपकरणों से आने वाले कनेक्शन को प्रिंट करें$ sudo bluing br --inquiry-scan --mon-incoming-conn[INFO] Inquiry_Scan_Interval: 4096, 2560.0 ms Inquiry_Scan_Window: 4096, 2560.0 ms [INFO] Inquiry Scan and Page Scan enabled A0:DE:0F:99:EF:78 incoming CoD: 0x5a020c Service Class: 0b1011010000 Telephony Object Transfer Capturing Networking Major Device Class: 0b00010, Phone link type: 0x01 - ACL ... ...
--sniff-and-guess-bd-addr: वायरलेस तरीके से निकटवर्ती BD_ADDRs को सूंघें और अनुमान लगाएं$ bluing br --org='Huawei Device Co., Ltd.' --timeout=600 --sniff-and-guess-bd-addr[INFO] Possible BD_ADDR for ??:??:99:4C:45:C3 24:A7:99:4C:45:C3 [INFO] Possible BD_ADDR for ??:??:E4:2D:69:EE BC:1A:E4:2D:69:EE D0:05:E4:2D:69:EE 30:AA:E4:2D:69:EE [INFO] Possible BD_ADDR for ??:??:15:60:81:7F 64:23:15:60:81:7F D4:74:15:60:81:7F ... ...
le command: लो एनर्जी सिस्टम$ bluing le --helpUsage:
bluing le [-h | --help]
bluing le [-i <hci>] [--scan-type=<type>] [--timeout=<sec>] [--sort=<key>] --scan
bluing le [-i <hci>] --pairing-feature [--timeout=<sec>] [--addr-type=<type>] PEER_ADDR
bluing le [-i <hci>] --ll-feature-set [--timeout=<sec>] [--addr-type=<type>] PEER_ADDR
bluing le [-i <hci>] --gatt [--io-cap=<name>] [--addr-type=<type>] PEER_ADDR
bluing le [-i <hci>] --local --gatt
bluing le [-i <hci>] --mon-incoming-conn
bluing le [--device=</dev/tty>] [--channel=<num>] --sniff-adv
Arguments:
PEER_ADDR LE Bluetooth device address
Options:
-h, --help Print this help and quit
-i <hci> HCI device
--scan Discover advertising devices nearby
--scan-type=<type> The type of scan to perform. active or passive [default: active]
--sort=<key> Sort the discovered devices by key, only support RSSI
now [default: rssi]
--ll-feature-set Read LL FeatureSet of a remote LE device
--pairing-feature Request the pairing feature of a remote LE device
--timeout=<sec> Duration of the LE scanning, but may not be precise [default: 10]
--gatt Discover GATT Profile hierarchy of a remote LE device
--io-cap=<name> Set IO capability of the agent. Available value:
DisplayOnly, DisplayYesNo, KeyboardOnly, NoInputNoOutput,
KeyboardDisplay (KeyboardOnly) [default: NoInputNoOutput]
--addr-type=<type> Type of the LE address, public or random
--sniff-adv Sniff advertising physical channel PDU. Need at least
one micro:bit (or other supported NRF51 device specified with --device)
--channel=<num> LE advertising physical channel, 37, 38 or 39 [default: 37,38,39]
--device=</dev/tty> Device to use, comma separated (e.g., /dev/ttyUSB0,/dev/ttyUSB1,/dev/ttyUSB2)
Only needed if using NRF51 devices other than micro:bit (e.g., Bluefruit)
--scan: निकटवर्ती विज्ञापन उपकरणों को खोजें$ sudo bluing le --scan[WARNING] You might want to spoof your LE address before doing an active scan [INFO] LE active scanning on hci0 for 10 sec Scanning ⠴ ----------------LE Devices Scan Result---------------- Addr: 74:A3:4A:D4:78:55 (ZIMI CORPORATION) Addr type: public Connectable: True RSSI: -68 dBm General Access Profile: Flags: LE General Discoverable Mode BR/EDR Not Supported Service Data - 16-bit UUID: UUID: 0x95FE Data: 9055990701b743e34aa3740e00 Appearance: 0000 Tx Power Level: 0 dBm (pathloss 68 dBm) Complete Local Name: Mesh Mi Switch ... ...
--ll-feature-set: दूरस्थ LE डिवाइस का LL FeatureSet पढ़ें$ sudo bluing le --ll-feature-set --addr-type=public 18:D9:8F:77:24:F1[INFO] Reading LL FeatureSet of 18:D9:8F:77:24:F1 on hci0 Reading ⠼ LE LL Features: LE Encryption: True Connection Parameters Request Procedure: False Extended Reject Indication: False Slave-initiated Features Exchange: False LE Ping: False LE Data Packet Length Extension: True LL Privacy: False Extended Scanner Filter Policies: False LE 2M PHY: False Stable Modulation Index - Transmitter: False Stable Modulation Index - Receiver: False ... ...
--pairing-feature: दूरस्थ LE डिवाइस की पेयरिंग सुविधा का अनुरोध करें$ sudo bluing le --pairing-feature --addr-type=public 18:D9:8F:77:24:F1[INFO] Requesting pairing feature of 18:D9:8F:77:24:F1 on hci0 Requesting ⠧ Pairing Response IO Capability: 0x03 - NoInputNoOutput OOB data flag: 0x00 - Not Present AuthReq: 0x01 Maximum Encryption Key Size: 16 Initiator Key Distribution: 0x00 EncKey: False IdKey: False SignKey: False LinkKey: False RFU: 0b0000 Responder Key Distribution: 0x01 EncKey: True IdKey: False SignKey: False LinkKey: False RFU: 0b0000
--gatt: दूरस्थ LE डिवाइस की GATT प्रोफ़ाइल पदानुक्रम खोजें$ sudo bluing le --gatt --addr-type=public 18:D9:8F:77:24:F1----------------GATT स्कैन परिणाम---------------- सेवाओं की संख्या: 6
सेवा (0x0100 - 0x0112, 7 विशेषताएँ) घोषणा हैंडल: 0x0100 प्रकार: 2800 (प्राथमिक सेवा घोषणा) मान: 1812 (मानव इंटरफ़ेस डिवाइस) अनुमतियाँ: पढ़ें (कोई प्रमाणीकरण/प्राधिकरण नहीं)
<span style="font-weight: bold; color: #ecc179">विशेषता</span> (2 डिस्क्रिप्टर)
<span style="font-weight: bold; color: #ecc179">घोषणा</span>
हैंडल: 0x010d
प्रकार: 2803 (विशेषता घोषणा)
मान:
गुण: <span style="font-weight: bold; color: #9fab76">पढ़ें, बिना प्रतिक्रिया के लिखें, लिखें, सूचित करें</span>
हैंडल: <span style="font-weight: bold; color: #9fab76">0x010e</span>
UUID: <span style="font-weight: bold; color: #9fab76">2A4D</span> (<span style="font-weight: bold; color: #9fab76">रिपोर्ट</span>)
अनुमतियाँ: पढ़ें (कोई प्रमाणीकरण/प्राधिकरण नहीं)
<span style="font-weight: bold; color: #ecc179">मान</span>
हैंडल: 0x0302
प्रकार: 4A02 (अज्ञात)
मान: <span style="font-weight: bold; color: #c35956">पढ़ने की अनुमति नहीं है</span>
अनुमतियाँ: उच्च परत विशिष्ट
<span style="font-weight: bold; color: #ecc179">डिस्क्रिप्टर</span>
हैंडल: <span style="font-weight: bold; color: #9fab76">0x010f</span>
प्रकार: <span style="font-weight: bold; color: #9fab76">2902</span> (<span style="font-weight: bold; color: #ecc179">क्लाइंट विशेषता कॉन्फ़िगरेशन घोषणा</span>)
मान: <span style="font-weight: bold; color: #9fab76">b'\x00\x00'</span>
अनुमतियाँ: पढ़ें (कोई प्रमाणीकरण/प्राधिकरण नहीं), लिखें (उच्च परत प्रमाणीकरण/प्राधिकरण निर्दिष्ट करती है)
--sniff-adv: विज्ञापन भौतिक चैनल PDU सूंघें$ sudo bluing le --sniff-adv[INFO] चैनल 37 पर micro:bit /dev/ttyACM2 का उपयोग कर रहा है [INFO] चैनल 38 पर micro:bit /dev/ttyACM1 का उपयोग कर रहा है [INFO] चैनल 39 पर micro:bit /dev/ttyACM0 का उपयोग कर रहा है [INFO] micro:bit 38 < तैयार -> प्रारंभ [INFO] micro:bit 37 < तैयार -> प्रारंभ [INFO] micro:bit 39 < तैयार -> प्रारंभ [38] [ADV_NONCONN_IND] रैंडम AdvA: 28:7A:88:B2:35:0B [39] [ADV_IND] पब्लिक AdvA: A4:E4:72:B1:CB:8D [37] [SCAN_REQ] रैंडम ScanA: 6A:90:0C:07:3E:14 रैंडम AdvA: 7D:9B:A8:5A:F2:81 ... ...
android कमांड: Android Bluetooth स्टैक$ bluing android --helpUsage:
bluing android [-h | --help]
bluing android [-t <id>] --collect-btsnoop-log [-o <file>]
Options:
-h, --help यह सहायता प्रदर्शित करें और बाहर निकलें
-t <id> दिए गए ट्रांसपोर्ट आईडी वाले Android डिवाइस का उपयोग करें। यह विकल्प
केवल एक डिवाइस उपलब्ध होने पर अनदेखा किया जाएगा
--collect-btsnoop-log उत्पन्न हो रहे btsnoop लॉग को एक स्थानीय फ़ाइल में इकट्ठा करें,
डिफ़ॉल्ट ./btsnoop_hci.log
-o <file> आउटपुट को <file> में रखें [डिफ़ॉल्ट: ./btsnoop_hci.log]
--collect-btsnoop-log: उत्पन्न हो रहे btsnoop लॉग को इकट्ठा करें$ bluing android -t 3 --collect-btsnoop-log -o btsnoop_hci.log; file btsnoop_hci.logbtsnoop_hci.log: BTSnoop संस्करण 1, HCI UART (H4)
spoof कमांड: नई स्थानीय डिवाइस जानकारी के साथ स्पूफ करें$ bluing spoof --helpUsage:
bluing spoof [-h | --help]
bluing spoof [-i <hci>] --bd-addr=<BD_ADDR>
bluing spoof [-i <hci>] --cls-of-dev=<num>
bluing spoof --host-name=<name>
bluing spoof [-i <hci>] --alias=<alias>
Options:
-h, --help यह सहायता प्रिंट करें और बाहर निकलें
-i <hci> HCI डिवाइस
--bd-addr=<BD_ADDR> एक नए BD_ADDR के साथ स्पूफ करें
--cls-of-dev=<num> एक नए क्लास ऑफ़ डिवाइस के साथ स्पूफ करें
--host-name=<name> एक नए होस्ट नाम के साथ स्पूफ करें
--alias=<alias> एक नए उपनाम के साथ स्पूफ करें
--bd-addr=<BD_ADDR>: एक नए BD_ADDR के साथ स्पूफ करेंयह सुविधा वर्तमान में spooftooph पर आधारित है, जिसे यदि आप Kali Linux पर इसका उपयोग कर रहे हैं तो sudo apt install spooftooph चलाकर स्थापित किया जा सकता है। हालाँकि, यदि आप इस सुविधा का उपयोग Ubuntu पर कर रहे हैं, तो आपको spooftooph को मैन्युअल रूप से संकलित और स्थापित करना होगा।
$ sudo bluing spoof --bd-addr=AA:BB:CC:DD:EE:FF[चेतावनी] मूल HCI डिवाइस संख्या बदल दी गई हो सकती है [जानकारी] BD_ADDR बदल गया: 11:22:33:44:55:66 -> AA:BB:CC:DD:EE:FF
--cls-of-dev=<num>: एक नए क्लास ऑफ़ डिवाइस के साथ स्पूफ करें$ sudo bluing spoof --cls-of-dev=0x6c0100सफल होने पर कोई आउटपुट नहीं
--host-name=<name>: एक नए होस्ट नाम के साथ स्पूफ करें$ sudo bluing spoof --host-name=Bluingसफल होने पर कोई आउटपुट नहीं
--alias=<alias>: एक नए कंट्रोलर उपनाम के साथ स्पूफ करें$ sudo bluing spoof --alias='Bluing Alias'सफल होने पर कोई आउटपुट नहीं
plugin कमांड: प्लगइन्स प्रबंधित करें$ bluing plugin --helpUsage:
bluing plugin [-h | --help]
bluing plugin <command> [<args>...]
Options:
-h, --help यह सहायता प्रदर्शित करें और बाहर निकलें
Commands:
list स्थापित प्लगइन्स सूचीबद्ध करें
install एक प्लगइन स्थापित करें
uninstall एक प्लगइन अनइंस्टॉल करें
run एक प्लगइन चलाएं
bluing की कई सुविधाओं को कम से कम 1 ब्लूटूथ एडाप्टर तक पहुँच की आवश्यकता होती है। हालाँकि लिनक्स भौतिक मशीन के साथ आने वाले एडाप्टर का उपयोग करना या लिनक्स वर्चुअल मशीन को होस्ट मशीन के एक एडाप्टर के लिए अनन्य बनाना संभव है, फिर भी अधिक स्थिरता के लिए बाहरी USB ब्लूटूथ एडाप्टर का उपयोग करने की सिफारिश की जाती है, जैसे Parani UD100-G03।
विज्ञापन भौतिक चैनल PDU (le --sniff-adv) को सूंघते समय bluing को कम से कम 1 मूल micro:bit की आवश्यकता होती है, और एक ही समय में उनमें से 3 का उपयोग करने की सिफारिश की जाती है। इन micro:bits को bluing द्वारा प्रदान किए गए समर्पित फर्मवेयर को चलाने की आवश्यकता है। micro:bits को लिनक्स से कनेक्ट करने के बाद, निम्नलिखित कमांड निष्पादित करके पूर्व-निर्मित फर्मवेयर को फ्लैश किया जा सकता है:
bluing --flash-micro-bit
जबकि micro:bit की तुलना में उपयोग करना कम सुविधाजनक है, लेकिन खरीदना अधिक सुलभ है, अधिक सामान्य NRF51 एडाप्टर भी समर्थित हो सकते हैं। Adafruit Bluefruit LE Friend और BLE400 बोर्डों के लिए समर्थन जोड़ा गया है। इनका उपयोग करने के लिए, उन्हें SWD का उपयोग करके फ्लैश करने की आवश्यकता होगी। यह टूल इन उपकरणों को फ्लैश करने का समर्थन नहीं करता है। इसके अतिरिक्त, टूल स्वचालित रूप से इन उपकरणों की पहचान नहीं कर सकता है। इसके बजाय --devices विकल्प को कंप्यूटर से जुड़े पोर्ट की पहचान करने की आवश्यकता है।
जब पास के BD_ADDR को सूंघना और अनुमान लगाना (br --sniff-and-guess-bd-addr) करते हैं, तो bluing को Ubertooth One की आवश्यकता होती है।
rfkill hci0 नहीं ढूंढ सकतानिम्नलिखित अपवाद संदेश है:```txt Exception: Can't find the ID of hci0 in rfkill
यह अपवाद rfkill के पुराने संस्करण में `-r` और `-n` विकल्प के समर्थन की कमी के कारण हो सकता है, उदाहरण के लिए:
<pre>
$ <span style="font-weight: bold; color: #9fab76">cat</span> /etc/os-release | <span style="font-weight: bold; color: #9fab76">head</span> -n 2
NAME="Ubuntu"
VERSION="16.10 (Yakkety Yak)"
$ <span style="font-weight: bold; color: #9fab76">rfkill</span> --version
rfkill 0.5-1ubuntu3 (Ubuntu)
</pre>
इस समय, rfkill को नए संस्करण में अपग्रेड करने से समस्या हल हो सकती है, जैसे:
<pre>
$ <span style="font-weight: bold; color: #9fab76">cat</span> /etc/os-release | <span style="font-weight: bold; color: #9fab76">head</span> -n 2
PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"
$ <span style="font-weight: bold; color: #9fab76">rfkill</span> --version
rfkill from util-linux 2.38.1
</pre>
### प्रबंधन कमांड `scanend` निष्पादित करने में विफल रहा
निम्नलिखित एक त्रुटि संदेश है:```txt
ERROR: Failed to execute management command 'scanend' (code: 11, error: Rejected)
समस्या को हल करने के लिए ब्लूटूथ सेवा को पुनरारंभ करने का प्रयास करें:
sudo systemctl restart bluetooth.service
... ...