Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
blur — BLURtooth: ब्लूटूथ क्लासिक और ब्लूटूथ लो एनर्जी में क्रॉस-ट्रांसपोर्ट कुंजी व्युत्पत्ति का शोषण [CVE-2020-15802] [CVE-2022-20361] | Kitploit
उपकरण/GitHubGitHub/francozappa/blur
ब्लूटूथ सुरक्षाभेद्यता विश्लेषणशोषणवायरलेस सुरक्षापेपर और शोधलर्निंग और शिक्षा
GitHubfrancozappa/blur

blur

BLURtooth: ब्लूटूथ क्लासिक और ब्लूटूथ लो एनर्जी में क्रॉस-ट्रांसपोर्ट कुंजी व्युत्पत्ति का शोषण [CVE-2020-15802] [CVE-2022-20361]

रिपॉजिटरी देखें
21564 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
वेबसाइट

README

यह रिपॉजिटरी AsiaCCS'22 में प्रस्तुत BLURtooth: Exploiting Cross-Transport Key Derivation in Bluetooth Classic and Bluetooth Low Energy शीर्षक वाले पेपर में वर्णित BLUR हमलों के बारे में है।

उपयोगी लिंक: pdf, video, slides, website।

BibTex प्रविष्टि:

root@kitploit:~
@inproceedings{antonioli22blur,
    author={Antonioli, Daniele and Tippenhauer, Nils Ole and Rasmussen, Kasper
    and Payer, Mathias},
    title={{BLURtooth: Exploiting Cross-Transport Key Derivation in
    Bluetooth Classic and Bluetooth Low Energy}},
    booktitle={Proceedings of the  Asia conference on computer and
    communications security (ASIACCS)},
    month={May},
    year={2022}
}

BLUR हमलों को CVE-2020-15802 और CVE-2022-20361 निर्दिष्ट किया गया है।

प्रारंभिकीकरण

README के शेष भाग में हम ब्लूटूथ क्लासिक (उर्फ BR/EDR) को BT, ब्लूटूथ लो एनर्जी को BLE, और क्रॉस-ट्रांसपोर्ट की डेरिवेशन को CTKD के रूप में निरूपित करते हैं। हम यह भी मानते हैं कि हमला करने वाला उपकरण और पीड़ित BT, BLE और CTKD का समर्थन करते हैं। इसका मतलब है कि उपकरण ब्लूटूथ 4.2+ और BT/BLE सिक्योर कनेक्शन का समर्थन करते हैं।

हमले करने का सबसे आसान तरीका एक ही उपकरण को पीड़ित और हमला करने वाले उपकरण दोनों के रूप में उपयोग करना है। उदाहरण के लिए, हम एक लिनक्स लैपटॉप को पीड़ित/हमला करने वाले उपकरण के रूप में और किसी अन्य उपकरण को दूसरे पीड़ित के रूप में उपयोग करने की सलाह देते हैं।

हम bluez और bluez tools चलाने वाली लिनक्स मशीन का उपयोग कर रहे हैं। हम btmgmt टूल पर निर्भर हैं और इसके स्रोत कोड को देखना सहायक हो सकता है। विशेष रूप से हम इसके pair उप-कमांड का उपयोग करते हैं, क्योंकि यह अन्य कार्यों के अलावा, BT/BLE पर मनमानी पेयरिंग अनुरोध भेजने की अनुमति देता है, साथ ही मनमानी इनपुट-आउटपुट क्षमताओं की घोषणा करता है।

root@kitploit:~
Usage: pair [-c cap] [-t type] <remote address>

यदि आप हमारे पेपर में प्रस्तुत सटीक हमले के परिदृश्य को पुन: उत्पन्न करना चाहते हैं तो आपको कुछ अतिरिक्त कार्य करने होंगे। विशेष रूप से आपको BIAS attack में प्रस्तुत सेटअप को पुन: उत्पन्न करना होगा। एक बार आपका सेटअप तैयार हो जाने पर आपको डेवलपमेंट बोर्ड को अपने BT/BLE कंट्रोलर के रूप में और लिनक्स लैपटॉप को होस्ट के रूप में उपयोग करने में सक्षम होना चाहिए। इसके अलावा, आपको होस्ट से लिंक लेयर पैकेट (जैसे BT LMP ट्रैफिक) को सूंघने और internalblue का उपयोग करके रनटाइम पर डेवलपमेंट बोर्ड के फर्मवेयर को गतिशील रूप से पैच करने में सक्षम होना चाहिए।

BLUR हमले करें

NoInputNoOutput क्षमताओं को हार्डकोड करें (MitM फ्लैग को अनसेट किए बिना)

यह चरण वैकल्पिक है और इसमें आपके अपने लिनक्स कर्नेल को पैच करना आवश्यक है।

btmgmt -c 3 का उपयोग करते समय bluez स्वचालित रूप से MitM सुरक्षा फ्लैग को अनसेट कर देता है, उदाहरण के लिए यह AuthReq बाइट को 0x03 के बजाय 0x02 पर सेट करता है। हालांकि, BLUR हमलों के लिए इस फ्लैग को अनसेट करने की आवश्यकता नहीं है, केवल तब NoInputNoOutput क्षमताओं की घोषणा करने की आवश्यकता है जब दूरस्थ उपकरण इनपुट-आउटपुट क्षमताओं का समर्थन करता है। ऐसा करने से पेयरिंग प्रक्रिया MitM फ्लैग को अनसेट किए बिना जस्ट वर्क्स पर डाउनग्रेड हो जाती है।

इस सेटअप को लागू करने के लिए लिनक्स कर्नेल में न्यूनतम संशोधन की आवश्यकता है। विशेष रूप से, /net/bluetooth/hci_event.c में हम निम्नलिखित बदलते हैं:

root@kitploit:~
cp.authentication = conn->auth_type;

से:

root@kitploit:~
cp.authentication = 0x03;

ऐसा करके, हम अपने AuthReq फ्लैग को 0x03 पर हार्डकोड कर देते हैं, भले ही हम किसी भी इनपुट-आउटपुट क्षमता की घोषणा करें।

वैध पेयरिंग

पीड़ित उपकरणों को सामान्य रूप से पेयर करें। उदाहरण के लिए, यदि आप एक स्मार्टफोन को लक्षित कर रहे हैं, तो इसे अपने लैपटॉप (पीड़ित और हमला करने वाले उपकरण दोनों के रूप में कार्य करते हुए) से पेयर करें। पेयरिंग के भाग के रूप में कुछ उपयोगकर्ता इंटरैक्शन की आवश्यकता हो सकती है (जैसे न्यूमेरिक तुलना)।

btmgmt शेल खोलें

  • पीड़ित के ब्लूटूथ पते पर ध्यान दें, जिसे REMOTE-BTADD के रूप में दर्शाया गया है
  • एक टर्मिनल खोलें
  • hciconfig चलाएं और अपने hci इंडेक्स पर ध्यान दें, उदा., 0
  • sudo btmgmt -i 0 चलाएं
  • आपको एक नीला टर्मिनल प्रॉम्प्ट दिखना चाहिए जिसमें [hci0] # हो

BLE पर सेंट्रल इम्परसनेशन हमला, BT पेयरिंग की को [ओवर]राइट करना

यहाँ मैं मान रहा हूँ कि पीड़ित एक सार्वजनिक BLE पते का उपयोग कर रहा है। यदि वह एक यादृच्छिक पते का उपयोग कर रहा है तो -t विकल्प को 2 में बदलें।

btmgmt CLI से चलाएं:

root@kitploit:~
pair -t 1 REMOTE-BTADD

यदि आपको एसोसिएशन को जस्ट वर्क्स पर डाउनग्रेड करने की भी आवश्यकता है तो चलाएं:

root@kitploit:~
pair -c 3 -t 1 REMOTE-BTADD

-c फ्लैग हमलावर की इनपुट-आउटपुट क्षमताओं को सेट करता है और 0x3 का मान NoInputNoOutput को मैप करता है, जबकि लैपटॉप/स्मार्टफोन के लिए डिफ़ॉल्ट मान 0x1 है जो Display Yes/No को मैप करता है।

BT पर परिधीय इम्परसनेशन हमला, BLE पेयरिंग की को [ओवर]राइट करना

इस मामले में, भले ही हम एक BLE परिधीय का प्रतिरूपण कर रहे हों, हम BT पर सेंट्रल के रूप में पेयर करते हैं।

btmgmt CLI से चलाएं:

root@kitploit:~
pair -t 0 REMOTE-BTADD

यदि आपको एसोसिएशन को जस्ट वर्क्स पर डाउनग्रेड करने की भी आवश्यकता है तो चलाएं:

root@kitploit:~
pair -c 3 -t 0 REMOTE-BTADD

अनभिप्रेत सत्र हमले

ऊपर वर्णित हमलों को दोहराएं, जबकि एक ऐसे उपकरण का प्रतिरूपण कर रहे हों जो वर्तमान में पीड़ित के लिए अज्ञात है (अर्थात, उसके साथ पेयर नहीं किया गया है)।

प्रश्नोत्तर (ब्लूटूथ, CTKD, लिनक्स, ब्लूज़, वायरशार्क)

मैं अपने BT/BLE उपकरण को डिस्कवरेबल/कनेक्टेबल/पेयरेबल कैसे सेट करूं?

bluetoothctl CLI से आप discoverable को on या off और pairable सेट कर सकते हैं। btmgmt CLI से आप connectable फ्लैग भी सेट कर सकते हैं।

मैं नियंत्रित कर सकता हूँ कि मेरा उपकरण कितने समय तक डिस्कवरेबल रहे?

bluetoothctl से, आप discoverable-timeout का उपयोग करके डिस्कवरेबिलिटी टाइमआउट को नियंत्रित कर सकते हैं, उदाहरण के लिए, यदि आप इसे 0 पर सेट करते हैं तो उपकरण हमेशा डिस्कवरेबल रहता है।

मैं कैसे जांच सकता हूँ कि मेरा BT/BLE उपकरण पेयरिंग का समर्थन करता है या पेयरेबल है?

BT के लिए, किसी दूरस्थ उपकरण के साथ सेंट्रल या परिधीय के रूप में पेयर करते समय, आपको निम्नलिखित LMP पैकेट प्राप्त होगा: LMP not accepted ext (ऑपकोड: 0x02) जिसमें पेयरिंग की अनुमति नहीं है (त्रुटि कोड: 0x18)

BLE के लिए, किसी दूरस्थ उपकरण के साथ सेंट्रल या परिधीय के रूप में पेयर करते समय, आपको निम्नलिखित SMP पैकेट प्राप्त होगा: SMP Pairing Failed Command (ऑपकोड 0x05) जिसमें Pairing Not Supported (कारण 0x05) है।

मैं कैसे जांच सकता हूँ कि मेरा BT/BLE उपकरण सिक्योर कनेक्शन का समर्थन करता है?

BT के लिए, किसी दूरस्थ उपकरण के साथ पेयर करते समय LMP फीचर पैकेज में होस्ट और कंट्रोलर के लिए सिक्योर कनेक्शन समर्थन देखें, उदाहरण के लिए, निम्नलिखित वायरशार्क डिस्प्ले फिल्टर का उपयोग करें: btbrlmp.efeat.scc or btbrlmp.efeat.sch।

BLE के लिए, किसी दूरस्थ उपकरण के साथ पेयर करते समय SMP पेयरिंग अनुरोध या प्रतिक्रिया में सिक्योर कनेक्शन फ्लैग वाले AuthReq बाइट की जांच करें, उदाहरण के लिए, निम्नलिखित वायरशार्क डिस्प्ले फिल्टर का उपयोग करें: btsmp.sc_flag == 1।

मैं कैसे जांच सकता हूँ कि मेरा BT/BLE उपकरण CTKD का समर्थन करता है?

BT के लिए, किसी दूरस्थ उपकरण के साथ पेयर करते समय BLE SMP ट्रैफिक L2CAP पर टनल किया जाता है। इसलिए btl2cap.payload वायरशार्क फिल्टर का उपयोग करके आपको सेंट्रल से परिधीय तक एक पैकेट दिखना चाहिए जिसमें 0x01 (SMP पेयरिंग अनुरोध) से शुरू होने वाला पेलोड हो और दूसरी दिशा में एक पैकेट जिसमें 0x02 (SMP पेयरिंग प्रतिक्रिया) से शुरू होने वाला पेलोड हो। फिर आपको SMP की वितरण चरण को एन्कोड करने वाले अन्य कच्चे L2CAP पैकेट भी दिखने चाहिए।

BLE के लिए, किसी दूरस्थ उपकरण के साथ पेयर करते समय SMP पेयरिंग अनुरोध या प्रतिक्रिया में जांचें कि सेंट्रल और परिधीय दोनों SMP की वितरण के दौरान एक लिंक की भेजने और प्राप्त करने के लिए तैयार हैं, उदाहरण के लिए, निम्नलिखित वायरशार्क फिल्टर का उपयोग करें: btsmp.key_dist_linkkey or btsmp.key_dist_linkkey।

टूल डाउनलोड करें