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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
sweyntooth_bluetooth_low_energy_attacks — Sweyntooth ब्लूटूथ लो एनर्जी (BLE) भेद्यताओं का प्रूफ ऑफ कॉन्सेप्ट। | Kitploit
उपकरण/GitHubGitHub/matheus-garbelini/sweyntooth_bluetooth_low_energy_attacks
ब्लूटूथ सुरक्षापेलोड जनरेशनभेद्यता विश्लेषणशोषणफज़िंगवायरलेस सुरक्षापेनिट्रेशन टेस्टिंगहार्डवेयर और IoT सुरक्षा

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
GitHub
matheus-garbelini/sweyntooth_bluetooth_low_energy_attacks

sweyntooth_bluetooth_low_energy_attacks

Sweyntooth ब्लूटूथ लो एनर्जी (BLE) भेद्यताओं का प्रूफ ऑफ कॉन्सेप्ट।

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

SweynTooth - ब्लूटूथ लो एनर्जी पर कहर बरपाना

यह रिपॉजिटरी ASSET Research Group की शोध उपलब्धि का हिस्सा है। attack_logo

SweynTooth में छह प्रमुख सिस्टम-ऑन-चिप (SoC) विक्रेताओं के विभिन्न ब्लूटूथ लो एनर्जी (BLE) सॉफ़्टवेयर डेवलपमेंट किट्स (SDKs) में 18 भेद्यताओं का एक परिवार शामिल है। ये भेद्यताएँ विशिष्ट BLE SoC कार्यान्वयनों में ऐसी कमज़ोरियाँ उजागर करती हैं जो परिस्थितियों के आधार पर रेडियो रेंज में मौजूद हमलावर को डेडलॉक, क्रैश और बफर ओवरफ्लो ट्रिगर करने या सुरक्षा को पूरी तरह से बायपास करने की अनुमति देती हैं। (अपडेट) हमने BLE KNOB वेरिएंट के विरुद्ध उपकरणों की जाँच के लिए एक परीक्षण स्क्रिप्ट भी शामिल की है।

आप ASSET Research Group SweynTooth disclosure website पर भेद्यताओं, उपलब्ध पैच और प्रभावित उपकरणों के बारे में अधिक जानकारी देख सकते हैं।

Fitbit, August Smart Lock, Eve Energy, CubiTag और अन्य "स्मार्ट" चीज़ें प्रभावित हैं।

  • Fitbit Inspire क्रैश और CubiTag डेडलॉक - https://www.youtube.com/watch?v=Iw8sIBLWE_w
  • Eve Energy और August Smart Lock क्रैश - https://www.youtube.com/watch?v=rge1XeJVpag&t=6s

इस PoC में शामिल लाइब्रेरीज़

इस PoC में Scapy और Colorama जैसी अच्छी तरह से अनुरक्षित लाइब्रेरीज़ का उपयोग किया गया है। BLE पैकेट निर्माण और विच्छेदन कस्टमाइज़्ड Scapy प्रोटोकॉल लेयर्स (bluetooth4LE और bluetooth.py) के माध्यम से किया जाता है। हमारे परिवर्धन को Scapy की मुख्य रिपॉजिटरी में शामिल करने हेतु एक मर्ज प्रगति पर है।

आरंभ करना (इंस्टॉलेशन)

सबसे पहले, आपको यह सुनिश्चित करना होगा कि आपके सिस्टम पर Python2.7 और requirements.txt फ़ाइल में सूचीबद्ध पायथन पैकेज मौजूद हैं। यदि आप Ubuntu उपयोग कर रहे हैं, तो निम्नलिखित चलाएँ:

root@kitploit:~
sudo apt-get install python2.7
sudo pip install -r requirements.txt

दूसरे, SweynTooth Nordic nRF52840 Dongle का उपयोग करके कमजोर पेरिफेरल के साथ हवा से कच्चे लिंक लेयर पैकेट भेजने/प्राप्त करने का कार्य करता है। Python 2.7 स्क्रिप्ट शुरू करने से पहले बोर्ड में ड्राइवर फ़र्मवेयर फ्लैश करना आवश्यक है।

हमारे फ़र्मवेयर कोड का बाइनरी nRF52_driver_firmware.zip फ़ाइल में है। बोर्ड पर फ़र्मवेयर फ्लैश करने के लिए आपको nrfutil टूल इंस्टॉल करना होगा। याद रखें कि फ्लैश करने से पहले nRF52840 को DFU मोड में रखें (अपने PC से कनेक्टेड USB डोंगल को छोटे रीसेट बटन को दबाकर रीसेट करें)।

dongle_reset_button

आप पायथन निर्भरताएँ इंस्टॉल करने और फ़र्मवेयर फ्लैश करने के लिए निम्नलिखित कमांड चला सकते हैं:

root@kitploit:~
python -m pip install nrfutil pyserial pycryptodome
nrfutil dfu usb-serial -p COM_PORT -pkg nRF52_driver_firmware.zip

स्क्रिप्ट Linux या Windows पर काम करती हैं। आपको केवल nRF52840 पोर्ट नाम से मेल खाने के लिए COM_PORT पैरामीटर बदलने की आवश्यकता है।

(वैकल्पिक nRF52 ड्राइवर फ्लैशिंग विधि)

यदि पिछली फ्लैशिंग विधि काम नहीं करती है, तो आप nRF Connect App for Desktop का उपयोग करके भी फ़र्मवेयर फ्लैश कर सकते हैं, जो हेक्स फ़र्मवेयर (nRF52_driver_firmware.hex) को फ्लैश करने के लिए एक अच्छा इंटरफ़ेस प्रदान करता है।

प्रूफ ऑफ कॉन्सेप्ट स्क्रिप्ट चलाना

आवश्यकताएँ स्थापित हो जाने के बाद, आप निम्नलिखित कमांड निष्पादित करके एक एक्सप्लॉइट स्क्रिप्ट चला सकते हैं:

root@kitploit:~
python Telink_key_size_overflow.py COM7 A4:C1:38:D8:AD:A9

पहला तर्क सीरियल पोर्ट नाम है (सामान्यतः Linux पर /dev/ttyACM0) और दूसरा कमजोर BLE डिवाइस का पता है। आप इस पते का पता लगाने के लिए किसी भी BLE स्कैनर या nRF Connect App का उपयोग कर सकते हैं।

Key Size Overflow भेद्यता को उदाहरण के रूप में लेते हुए, यदि कमजोर डिवाइस क्रैश के बाद हैंग हो जाता है तो स्क्रिप्ट द्वारा निम्नलिखित आउटपुट दिया जाता है:

attack_logo

Linux के लिए Docker इमेज (वैकल्पिक)

यदि आप Python निर्भरताएँ इंस्टॉल करने से बचने के लिए Docker इमेज के माध्यम से SweynTooth का उपयोग करना चाहते हैं, तो आप Docker इंस्टेंस को बिल्ड और रन करने के लिए docker.sh हेल्पर स्क्रिप्ट का उपयोग कर सकते हैं या रिलीज़ पेज पर उपलब्ध प्रीबिल्ट Docker इमेज (link) डाउनलोड कर सकते हैं। docker.sh का उपयोग नीचे वर्णित है।

root@kitploit:~
---------  HELP -------------
sudo ./docker run <script_name> <serial_port> <ble_target_address> - Start any sweyntooth script by its name (<script_name>)
sudo ./docker build                                                - Build docker container
sudo ./docker build release                                        - Build docker container and create compressed image for release
sudo ./docker shell                                                - Start docker container shell
---------- EXAMPLE ----------
./docker.sh run extras/Microchip_and_others_non_compliant_connection.py /dev/ttyACM0 f0:f8:f2:da:09:63

उपलब्ध BLE एक्सप्लॉइट्स

प्रत्येक एक्सप्लॉइट स्क्रिप्ट एक कमज़ोरी के अनुरूप है। निम्न सारांश तालिका भेद्यता और प्रभावित SoCs पर भेद्यता का शोषण करने के लिए स्क्रिप्ट के बीच पत्राचार दर्शाती है।

सामान्यतः, प्रभावित SoCs का उपयोग करने वाले उत्पाद किसी खराबी की स्थिति में BLE SoC को स्वचालित रूप से पुनरारंभ करने के लिए वॉचडॉग नियोजित करते हैं, इसलिए सभी उत्पादों को डेडलॉक नहीं किया जा सकता। फिर भी, यदि उत्पाद क्रैश और पुनरारंभ होता है तो उससे कुछ दृश्य या श्रव्य संकेत प्राप्त करना संभव होना चाहिए।

Zero LTK Installation (CVE-2019-19194)

सबसे गंभीर SweynTooth भेद्यता Zero LTK Installation है, जो एक हमलावर को शून्य-भरे LTK के साथ एन्क्रिप्शन सेटअप प्रक्रिया को बलपूर्वक लागू करके नवीनतम ब्लूटूथ पेयरिंग प्रक्रिया (सुरक्षित कनेक्शन) को पूरी तरह से बायपास करने की अनुमति देती है। इस भेद्यता के विरुद्ध अपने डिवाइस का परीक्षण करने के लिए, डिवाइस को पेयरिंग विधि के रूप में सुरक्षित कनेक्शन स्वीकार या समर्थन करना चाहिए। आप PoC को निम्नानुसार चला सकते हैं:

root@kitploit:~
python Telink_zero_ltk_installation.py COM7 A4:C1:38:D8:AD:A9

ध्यान दें कि तर्क COM7 और A4:C1:38:D8:AD:A9 आपके सेटअप के आधार पर भिन्न हैं। यदि डिवाइस कमजोर है, तो PoC निम्नलिखित आउटपुट देता है:

zero_ltk

LLID Deadlock (CVE-2019-17060/1)

LLID डेडलॉक स्क्रिप्ट पेरिफेरल के साथ प्रत्येक पुनः-कनेक्शन पर बारी-बारी से संस्करण अनुरोध या पेयरिंग अनुरोध दोनों भेजते समय LLID फ़ील्ड को साफ़ करती है। यह NXP और Cypress दोनों कमजोर SoCs में भेद्यता को ट्रिगर करने के लिए किया जाता है। कमजोर KW41Z के विरुद्ध स्क्रिप्ट चलाते समय, स्टैक डेडलॉक हो जाता है और क्रम से बाहर लिंक लेयर पैकेट भेजने चाहिए। स्क्रिप्ट यह पता लगाने की कोशिश करती है कि स्टैक डेडलॉक है या नहीं और कमजोर KW41Z उपकरणों के लिए निम्नलिखित आउटपुट देती है:

zero_ltk

कमजोर Cypress डिवाइस आमतौर पर हमले के बाद विज्ञापन अक्षम कर देते हैं। इसलिए आपको एक त्रुटि संदेश दिखाई देना चाहिए जो दर्शाता है कि क्रैश का पता चला है। कमजोर Fitbit Inspire के विरुद्ध इस स्क्रिप्ट का परीक्षण करते समय, स्मार्टवॉच या तो तुरंत क्रैश हो जाती है या अस्थायी रूप से अपने विज्ञापन अक्षम कर देती है। इस डिवाइस के विरुद्ध आंतरायिक हमलों से स्थायी BLE खराबी होनी चाहिए, जिसके लिए उपयोगकर्ता को Fitbit Inspire को मैन्युअल रूप से रीबूट करना आवश्यक हो जाता है।

KNOB टेस्टर (ब्लूटूथ लो एनर्जी वेरिएंट)

जबकि KNOB ने मुख्य रूप से ब्लूटूथ क्लासिक उपकरणों को प्रभावित किया क्योंकि कुंजी का आकार घटाकर 1 बाइट कर दिया गया था, फिर भी SMP पेयरिंग प्रक्रिया के दौरान ब्लूटूथ लो एनर्जी उपकरणों की कुंजी एंट्रॉपी को 7 बाइट्स (न्यूनतम कंप्लाइंट कुंजी आकार) तक कम करना संभव है। इस तरह की कंप्लाइंट BLE एंट्रॉपी कमी के निहितार्थ पर "Low Entropy Key Negotiation Attacks on Bluetooth and Bluetooth Low Energy" by Antonioli, Daniele et. al में चर्चा की गई थी।

हमने यह जाँचने के लिए एक सरल स्क्रिप्ट उपलब्ध कराई है कि BLE पेरिफेरल डिवाइस द्वारा कौन से कुंजी आकार स्वीकार्य हैं। आप BLE KNOB टेस्टर को निम्नानुसार चला सकते हैं:

root@kitploit:~
# Windows
python extras\knob_tester_ble.py COM6 a4:c1:38:d8:ad:a9
# Linux
python extras/knob_tester_ble.py /dev/ttyACM0 a4:c1:38:d8:ad:a9

COM6 और a4:c1:38:d8:ad:a9 को nRF52 डोंगल सीरियल पोर्ट (सामान्यतः Linux पर /dev/ttyACM0) और परीक्षणाधीन BLE डिवाइस के पते के अनुसार अन्य मानों में बदलना न भूलें। यदि टूल पेरिफेरल को 16 बाइट्स के अलावा अन्य कुंजी आकार स्वीकार करते हुए पहचानता है, तो यह उन्हें नीचे दिखाए अनुसार सूचीबद्ध करेगा:

zero_ltk

कैप्चर्स

captures फ़ोल्डर में प्रत्येक भेद्यता के कुछ नमूना कैप्चर शामिल हैं। हमने कुछ SoCs में पाए गए कुछ नॉन-कंप्लायंस मामले भी जोड़े हैं।

एक्स्ट्रा

extras folder में कुछ अतिरिक्त स्क्रिप्ट शामिल हैं जो नॉन-कंप्लायंस और कुछ SweynTooth वेरिएंट से संबंधित हैं। अधिक जानकारी के लिए extras/README.md पर एक्स्ट्रा स्क्रिप्ट की तालिका देखें।

आभार

यह शोध आंशिक रूप से Keysight Technologies द्वारा समर्थित था।

  • Scapy - पैकेट मैनिपुलेशन लाइब्रेरी।
  • Colorama - पायथन में क्रॉस-प्लेटफ़ॉर्म रंगीन टर्मिनल टेक्स्ट।
टूल डाउनलोड करें
VulnerabilityCVE(s)VendorScript file
Link Layer Length OverflowCVE-2019-16336
CVE-2019-17519
Cypress
NXP
link_layer_length_overflow.py
LLID DeadlockCVE-2019-17061
CVE-2019-17060
Cypress
NXP
llid_dealock.py
Truncated L2CAPCVE-2019-17517DialogDA14580_exploit_att_crash.py
Silent Length OverflowCVE-2019-17518DialogDA14680_exploit_silent_overflow.py
Public Key CrashCVE-2019-17520Texas InstrumentsCC2640R2_public_key_crash.py
Invalid Connection RequestCVE-2019-19193Texas InstrumentsCC_connection_req_crash.py
Invalid L2CAP FragmentCVE-2019-19195MicrochipMicrochip_invalid_lcap_fragment.py
Sequential ATT DeadlockCVE-2019-19192STMicroelectronicssequential_att_deadlock.py
Key Size OverflowCVE-2019-19196TelinkTelink_key_size_overflow.py
Zero LTK InstallationCVE-2019-19194TelinkTelink_zero_ltk_installation.py
DHCheck SkipCVE-2020-13593Texas Instrumentsnon_compliance_dhcheck_skip.py
ESP32 HCI DesyncCVE-2020-13595Espressif Systemsesp32_hci_desync.py
Zephyr Invalid SequenceCVE-2020-10061Zephyr Projectzephyr_invalid_sequence.py
Invalid Channel MapCVE-2020-10069
CVE-2020-13594
Zephyr Project
Espressif Systems
Microchip
invalid_channel_map.py