DEFCON 27 सम्मेलन। बटप्लग: ट्रू पेनेट्रेशन टेस्टिंग। भाग 1

विश्लेषकों का मानना ​​है कि वर्तमान में इंटरनेट ऑफ थिंग्स (IoT) दुनिया से लगभग 10 बिलियन डिवाइस हैं। कभी-कभी ये उपकरण बाजार में अपनी जगह हासिल कर लेते हैं, सचमुच मानव गधे पर चढ़ जाते हैं। जैसा कि यह निकला, सस्ते और कम-शक्ति वाले रेडियो चिप्स न केवल होम ऑटोमेशन के लिए महान हैं - वे लोगों को सेक्स के खिलौने के साथ बातचीत करने के तरीके को भी बदलते हैं। इस रिपोर्ट में, हम टेलीविज़न डिल्डोनिक्स की दुनिया में उतरेंगे, एक दूरी पर सेक्स की तकनीक जिसमें स्पर्श, तापमान और अन्य संवेदनाएं दो-तरफ़ा संचार लाइन के माध्यम से भागीदारों के बीच संचारित होती हैं। स्पीकर आपको बताएगा कि बटप्लग इलेक्ट्रॉनिक इलेक्ट्रॉनिक गुदा सेक्स खिलौने की सुरक्षा एक हमलावर के विरोध में हो सकती है जो स्टैक के प्रत्येक स्तर पर कमजोरियों को ढूंढता है और उनका शोषण करता है। अंतत :, यह खुद सेक्स्टॉयस को समझौता करने की अनुमति देता है,और वे डिवाइस जिनसे वे कनेक्ट होते हैं।



स्माइका, या स्माइलम के साथ एक हैकर ने गेम कंसोल के लिए वीडियो गेम के डेवलपर के रूप में अपने कैरियर की शुरुआत की, जैसे कि निनटेंडो डीएस, उन्हें एक साथ क्रैक करने की कोशिश कर रहा था। कुछ बिंदु पर, कंसोल ने गंभीर सुरक्षा प्रणालियों का अधिग्रहण किया, और स्मिया ने घर-विकसित सॉफ्टवेयर से इसे विकसित करने की तकनीक विकसित की। स्मिया को निंटेंडो 3 डीएस और वाई यू पर अपने "काम" के लिए जाना जाता है, हालांकि इसने सबसे लोकप्रिय वेब ब्राउज़र और वर्चुअलाइजेशन स्टैक के लिए कारनामों के विकास में भी योगदान दिया। शायद, अब वह "स्मार्ट" गुदा प्लग में तोड़ने के लिए इच्छुक हो गया।

सभी को नमस्कार, मैं Smia हूं, और आज हम बूट प्लग को क्रैक करने के बारे में बात करेंगे। यह एक ऐसी वस्तु है जिसे मैं अपने हाथ में पकड़ता हूं, मुझे नहीं पता कि क्या आपने इसे पहले देखा है, व्यक्तिगत रूप से मैं नहीं। लेकिन पिछले 2 वर्षों में, मैं IoT उद्योग के कई दिलचस्प प्रतिनिधियों से मिला, इसलिए अब इस बात की बारी आई है। आप सोच रहे होंगे कि आप बूटप्लैग को कैसे क्रैक कर सकते हैं, क्योंकि यह सिर्फ सिलिकॉन का एक टुकड़ा है जिसे कहीं डालने की आवश्यकता है, और आप इस बात से सहमत होंगे कि इसके लिए कई जगह नहीं हैं।

वास्तव में, इसके लिए किसी भी इलेक्ट्रॉनिक्स की आवश्यकता नहीं है। लेकिन पिछले कुछ वर्षों में, या यहां तक ​​कि दशकों से, टेलीडिलोनिका नामक इलेक्ट्रॉनिक उपकरणों का एक नया उद्योग दिखाई दिया है। इस शब्द की उत्पत्ति स्लाइड पर दिखाई गई है: ग्रीक शब्द "टेली" का अर्थ है "दूर से", और अंग्रेजी "डिल्डो" का अर्थ एक डिल्डो से अधिक कुछ नहीं है। मैंने डिल्डो शब्द की उत्पत्ति खोजने की कोशिश की, लेकिन कोई नहीं जानता कि यह कहां से आया है। लेकिन यह समझ में आता है, है ना? विचार यह है कि आप ऐसे सेक्स टॉयज बनाना चाहते हैं जिन्हें किसी तरह दूर से नियंत्रित किया जा सके।

इसके लिए कई परिदृश्य हैं। मैं आपको केवल यह समझाना चाहता हूं कि यह कैसे काम करता है, क्योंकि हर कोई ऐसे उपकरणों से परिचित नहीं है। इसलिए, आप बूटप्लैग लेते हैं, जहां आवश्यक हो वहां डालें और अपने फोन, लैपटॉप आदि से जहां चाहें वहां से इसे दूर से नियंत्रित कर सकते हैं। यह पहला दृश्य है जिसे "एकल नाटक" कहा जाता है। दूसरा परिदृश्य जिसे मैंने "स्थानीय मल्टीप्लेयर" कहा है - यह तब है जब आप किसी और को इस चीज़ का नियंत्रण स्थानांतरित करते हैं। यह एक बहुत ही वास्तविक चीज़ है जिसे अक्सर विज्ञापित किया जाता है - आप, उदाहरण के लिए, उसके साथ एक बार में जा सकते हैं और किसी को नहीं पता होगा कि यह कितना मजेदार है। लेकिन तकनीकी रूप से, यह एक नया हमला वेक्टर बनाता है, क्योंकि आप डिवाइस को एक बाहरी व्यक्ति को नियंत्रित करते हैं, और यहां खतरा मॉडल वास्तव में बदल जाता है।

तीसरा परिदृश्य, "दूरस्थ मल्टीप्लेयर", दूसरे के समान है, केवल अब आप किसी अन्य व्यक्ति को इंटरनेट के माध्यम से डिवाइस को नियंत्रित करने की अनुमति देते हैं। ध्यान रखें कि यह व्यक्ति एक अजनबी हो सकता है।



कई लोगों के लिए, दूरी पर सेक्स करना बहुत अच्छा और मजेदार लगता है, और मैं इसके बारे में मजाक नहीं करने वाला हूं। कुछ लोग जीवित रहने के लिए टेलीडिल्डोनिक्स का उपयोग करते हैं, और परिदृश्य 3 बी को "रिमोट पेड मल्टीप्लेयर" कहा जाता है। इसलिए, यह तथ्य कि मैं बट प्लग को क्रैक करने की कोशिश कर रहा हूं, केवल मनोरंजन नहीं है - यह मेरी पैठ के अध्ययन को एक निश्चित औचित्य देता है।



बहुत से लोग, मुझे नहीं पता कि उन्हें क्या कहना है - लड़के, लड़कियां - इंटरनेट पर गतिशील यौन मनोरंजन प्रदान करते हैं, अन्य लोगों को पैसे के लिए अपने सेक्स खिलौने को नियंत्रित करने की अनुमति देते हैं। इन बट्स का उत्पादन करने वाली कंपनी के पास इंटरनेट पर सेक्स गेम्स के लिए अपने उत्पादों का उपयोग करते समय मुनाफे की कटौती की अवधारणा के लिए पेटेंट है। इस परिदृश्य में, $ 5 कटौती के लिए, आपके पास लिंक रखने का अधिकार है, उदाहरण के लिए, ट्विटर पर, किसी को सीमित समय के लिए अपने बूटप्लैग को प्रबंधित करने का अवसर प्रदान करने के लिए। चूंकि लोग इन खिलौनों पर पैसा बनाने के उपकरण के रूप में भरोसा करते हैं, मेरी राय में, उनकी सुरक्षा पर विचार करना बहुत महत्वपूर्ण है।

आइए उन परिदृश्यों को देखें जो हमलावरों के लिए रुचि रखते हैं। पहला एक स्थानीय हैक है, जब एक हमलावर जो डिवाइस की सीमा के भीतर है, वायरलेस संचार के माध्यम से इस पर नियंत्रण स्वीकार करता है। इस हैकिंग विधि के बारे में काफी शोध किया गया था, इसलिए हम इस पर अपना ध्यान नहीं दे पाए।



तकनीकी रूप से, इस तरह के हस्तक्षेप को यौन शोषण माना जा सकता है, इसलिए यह कानूनी है या नहीं, इसे करने की कोशिश न करें। निम्नलिखित परिदृश्य के अनुसार, एक हमलावर एक ही काम करता है, लेकिन दूरस्थ रूप से, इंटरनेट के माध्यम से। जैसा कि मैंने पहले ही कहा था, यदि आप इस तरह कमाते हैं, तो आप बहुत अच्छी तरह से स्वेच्छा से एक अजनबी को प्रदान कर सकते हैं - अपने सेक्स टॉय के लिए रिमोट एक्सेस के साथ एक हमलावर।

इसका मतलब है कि एक हैकर आपके "स्मार्ट" सेक्स टॉयज या संबंधित उपकरणों से समझौता कर सकता है, संक्षेप में, आपके लिए कुछ बुरा कर सकता है, और यह पूरी तरह से कानूनी है, क्योंकि आपने खुद उसे एक्सेस दिया था। हैकर के लिए यह अधिक दिलचस्प विकल्प है, इसलिए हम इस पर थोड़ी देर रहेंगे।



तीसरा परिदृश्य विपरीत है - हमलावर खुद बूट-इन का उपयोग कंप्यूटर या फोन और हैक उपकरणों को नियंत्रित करने के लिए करता है जो उस उपयोगकर्ता की तरफ स्थित है जो दूरस्थ रूप से प्लग-इन के साथ गेम में भाग लेता है। लोग यह नहीं समझते हैं कि यह एक वास्तविक जोखिम है, लेकिन आप शायद कल्पना करते हैं कि कैसे घातक बट प्लग (हॉल में हँसी) हो सकते हैं। हम इस परिदृश्य को भी तलाश रहे हैं।



अब जब आपको टेलीडिल्डोनिक्स की दुनिया का अंदाजा हो गया है, तो आइए देखें कि यह व्यवहार में कैसा दिखता है। स्लाइड पर, आप Lovense Hush नामक एक डिल्डो मॉडल देखते हैं, और बाद में मैं आपको हवा पर इस चीज़ के साथ एक डेमो दिखाऊंगा। यह दुनिया में डिल्डो-टेलिडिलोनिक्स का पहला मॉडल है, एक गुदा प्लग जिसे आपके फोन या कंप्यूटर से नियंत्रित किया जा सकता है। इस बूट-प्लेग के लिए आईओएस और एंड्रॉइड के लिए एप्लिकेशन हैं, आप इसे मैक ओएस और विंडोज चलाने वाले कंप्यूटर से नियंत्रित कर सकते हैं। मोबाइल एप्लिकेशन चैट, टेक्स्ट, चित्र, वीडियो साझा करने और दोस्तों या अजनबियों के साथ खिलौनों को नियंत्रित करने जैसी सामाजिक सुविधाओं का समर्थन करते हैं।



विंडोज के लिए, आपको एक विशेष यूएसबी कुंजी का उपयोग करने की आवश्यकता है, जिसे मैं बाद में दिखाऊंगा, क्योंकि अब यह बूट प्लग-इन मेरे कंप्यूटर से जुड़ा हुआ है। इलेक्ट्रॉनिक फ्लैश ड्राइव कुंजी को उसी कंपनी द्वारा विकसित किया गया था, जो बूट प्लग-इन के निर्माता, लोवेन्स, जिसने "स्मार्ट" डिल्डो का अपना पारिस्थितिकी तंत्र बनाया और इंटरनेट पर एक सत्र के लिए $ 5 कमीशन लेता है।



निम्नलिखित स्लाइड एक पीसी एप्लिकेशन का उपयोग करके बूट प्लग पर हमले की मेरी दृष्टि दिखाती है। बूट प्लग और USB कुंजी के बीच एक BLE (BlueTooth कम ऊर्जा) कनेक्शन है, कुंजी उपयोगकर्ता के कंप्यूटर से जुड़ा है, जो बदले में इंटरनेट से जुड़ा है। परिदृश्य नंबर 1 का उपयोग बूट प्लग-यूएसबी कुंजी अनुभाग पर एक हमलावर द्वारा किया जाता है, अर्थात, बीएलई कनेक्शन पर हमला किया जाता है। वास्तव में, कोई सुरक्षा नहीं है, ताकि कोई भी अजनबी इस खिलौने का नियंत्रण ले सके। पिछले साल, BTLE जैक नामक एक उपकरण के बारे में गंभीर चर्चा हुई, जो आपको इस तरह के कनेक्शन पर सफलतापूर्वक हमला करने की अनुमति देता है।



परिदृश्य नंबर 2 में उपयोगकर्ता के कंप्यूटर कनेक्शन के एक भाग पर हमला होता है। तीसरा परिदृश्य किसी भी तीन साइटों: BLE, USB, इंटरनेट में हैक करने का प्रयास है। यह संभावना है कि एक खुला प्रोजेक्ट बटप्लग है ... आप हंस सकते हैं, यह एक मजाक था। तो हम अपनी "सही पैठ परीक्षण" कहाँ से शुरू करें?



मुझे स्वयं डिल्डो और डोंगल के लिए कोई कोड या बायनेरी नहीं मिला, लेकिन मोबाइल उपकरणों और इंटरनेट पर डाउनलोड के लिए उपलब्ध कंप्यूटर के लिए बाइनरी एप्लिकेशन फाइलें हैं। मैंने इन फ़ाइलों को अपने कंप्यूटर पर स्थापित किया और उन पर काम करना शुरू कर दिया। अगली स्लाइड पर, आप बूट प्लग-इन के प्रबंधन के लिए एप्लिकेशन इंटरफ़ेस देखते हैं। स्क्रीन के केंद्र में खिलौने के कंपन को समायोजित करने के लिए एक स्लाइडर है, और बाईं ओर बटन के साथ नियंत्रण कक्ष है - खाते तक पहुंच, स्थानीय नेटवर्क पर नियंत्रण मोड, इंटरनेट के माध्यम से रिमोट कंट्रोल मोड। आवेदन की संरचना को समझने के लिए, आपको बस जावास्क्रिप्ट कोड को भ्रमित करने की आवश्यकता है।



मुझे जावास्क्रिप्ट पसंद नहीं है, लेकिन इसके बारे में क्या अच्छा है यह चर नामों और ऑब्जेक्ट फ़ील्ड नामों के एक समूह की उपस्थिति है, और यह सब पूरी तरह से रिवर्स इंजीनियर है। बस ब्यूटीफायर में कोड ड्रॉप करें और पता करें कि यह कैसे काम करता है। एक बार जब आप ऐसा कर लेते हैं, तो आप इलेक्ट्रॉनिक कुंजी के संचालन को समझना शुरू कर सकते हैं।



यह पता लगाना कि यह यूएसबी के माध्यम से कनेक्ट करने के लिए सिर्फ एक सीरियल पोर्ट है, मैंने कुंजी और एप्लिकेशन के बीच ट्रैफ़िक को सूँघना शुरू कर दिया। स्लाइड के दाईं ओर की रेखाओं पर ध्यान दें - सबसे पहले, मैंने देखा कि डोंगल और एप्लिकेशन के बीच संदेश JSON टेक्स्ट फॉर्मेट में थे। जावास्क्रिप्ट कोड के लिए, यह परिचित है, लेकिन एक USB कुंजी के लिए, जो कि 32-बिट माइक्रोकंट्रोलर है, JSON पार्सर को एम्बेड करना अजीब लगता है ... हमारे लिए यह बहुत सुविधाजनक है, क्योंकि JSON पार्सर में आमतौर पर फर्मवेयर बग होते हैं जिनका उपयोग किया जा सकता है।



हालाँकि, कुंजी कोड के बिना बग ढूंढना अपने आप में एक थकाऊ काम है, लेकिन चूंकि मेरे पास एप्लिकेशन कोड था, इसलिए मैंने इसमें USB कुंजी फर्मवेयर को अपडेट करने के लिए एक तंत्र की तलाश शुरू की और जल्द ही जो मुझे चाहिए था - अपडेट नोड का URL मिला। यह पता चला कि फर्मवेयर किसी भी तरह से एन्क्रिप्ट या हस्ताक्षरित नहीं था, इसलिए मैंने इसे डाउनलोड किया और विश्लेषण के लिए एक बाइनरी मिला।



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



JSON पार्सर को देखने के बाद, जो हमारे लिए सबसे अधिक रुचि है, मैंने अपेक्षित बग की खोज की - parseJsonString फ़ंक्शन। इसे बस मूल स्ट्रिंग की एक कॉपी को एक नए बफर में आवंटित करने की आवश्यकता है, और एस्केप सीक्वेंस जैसी चीजों के साथ भी काम करना है। नए बफर की लंबाई की गणना करते समय, यह उपयोग की गई वास्तविक लंबाई से मेल नहीं खाता है।



यह फ़ंक्शन इस तरह से काम करता है: यह उम्मीद के बजाय 5 मापदंडों यू के भागने के क्रम का समर्थन करता है, उन्हें 0. बराबर करता है। इस के लिए धन्यवाद, हम अशक्त-समाप्त स्ट्रिंग से बच सकते हैं और पहले गणना स्ट्रिंग की लंबाई को गलत बना सकते हैं।



यह छोटा एनीमेशन दिखाता है कि यहां क्या हो रहा है। यू से पहले बैकस्लैश का मतलब है 6 वर्णों को छोड़ दिया जाना चाहिए। अगला, फ़ंक्शन शून्य टर्मिनेटर के माध्यम से कूदता है, जो एक समस्या है। फिर प्रक्रिया जारी रहती है, सभी वर्ण कॉपी किए जाते हैं और केवल 6 बाइट्स की लंबाई के साथ बफर में आते हैं। यहां दूसरी समस्या दिखाई देती है - बफर ओवरफ्लो का खतरा। यह बहुत अच्छा है, लेकिन हम अभी भी नहीं जानते हैं कि डोंगल हार्डवेयर कैसे काम करता है।



हम यह सुनिश्चित करने के लिए जानते हैं कि इसमें ASLR एड्रेस स्पेस का कोई रेंडमाइजेशन न हो, कोई कुकी स्टैक न हो, लेकिन यह संभव है कि कुंजी में प्रोटेक्शन डीईपी डेटा एक्जीक्यूशन प्रिवेंशन या XN प्रोटेक्शन हो, जो कि .text रीजन को छोड़कर, मेमोरी में कोड एक्जीविशन को रोकता है।

यह कुंजी NRF51822 SoC चिप के साथ एक Cortex M0 प्रोसेसर से लैस है, बिना DEP सुरक्षा के, BLE उपकरणों के लिए बहुत लोकप्रिय है और डिबगिंग संपर्कों के एक गुच्छा से सुसज्जित है। इसलिए, यह कुछ चीजों को जोड़कर इस कुंजी से जुड़ना काफी सरल है, और अगर यह कारखाना सेटिंग्स में अक्षम नहीं है, तो डीबगिंग और फ्लैशिंग के लिए इंटरफ़ेस के माध्यम से डीबगिंग करें। एसडब्ल्यूडी के माध्यम से कनेक्ट करके, हम ढेर सामग्री को फ्लश कर सकते हैं।

यह पता चला है कि इसका उपयोग केवल JSON पार्सर के लिए किया जाता है, जो बहुत अच्छा नहीं है, लेकिन ढेर में मेटाडाटा होता है। तो यहां क्या खराब हो सकता है? बेशक, मेटा मेटाडेटा! इस तरह हम JSON पार्सर के लिए एक शोषण बनाते हैं।



एक ढेर सिर्फ एक स्वतंत्र सूची है। यदि आप इस कोड को देखते हैं, तो आप देख सकते हैं कि प्रत्येक वितरण की अपनी लंबाई और सूचक है। यदि आप बफर ओवरफ़्लो का उपयोग करते हैं, तो आप अगले पॉइंटर की लंबाई और स्थिति को खराब कर सकते हैं, जो आपको अगले वितरण के स्थान को नियंत्रित करने की अनुमति देता है। इसमें एक नई पंक्ति की प्रतिलिपि बनाकर, आप आसानी से एक मनमाने स्थान पर डेटा की व्यवस्था कर सकते हैं। यह सब किया जा सकता है जबकि डिबगर जुड़ा हुआ है।



स्लाइड के दाईं ओर, आपको एक स्टैक दिखाई देता है जो रीसेट है और पूरी तरह से सिर्फ 8 अक्षरों के साथ ओवरराइट किया गया है। यह हमें USB कुंजी कोड निष्पादन देता है, जो बहुत अच्छा है।
मुझे याद आया कि, दुर्भाग्य से, इस डोंगल में एक आपातकालीन DFU फर्मवेयर अपडेट मोड है। मुझे उम्मीद थी कि हैकिंग गेम कंसोल के साथ सादृश्य द्वारा, यह मोड किसी भी तरह से अद्यतन को प्रमाणित करने का काम करता है। यह पता चला है कि यहां DFU क्लासिक CRC16 चेकसम गणना का उपयोग करता है, जो कि अगर आप क्रिप्टोग्राफी को समझते हैं, तो यह किसी भी प्रकार का प्रमाणीकरण नहीं है। मुझे नहीं लगता है कि वे वास्तव में इस मामले में प्रमाणीकरण का उपयोग करना चाहते थे, सबसे अधिक संभावना है कि उन्होंने यह फैसला किया कि कुछ लोग बूट प्लग के लिए यूएसबी कुंजी कोड को निष्पादित करने में रुचि रखेंगे। हालाँकि, इसमें मेरी दिलचस्पी थी।



फिलहाल, मेरे पास इस उपकरण पर कोड निष्पादित करने के 2 अलग-अलग तरीके थे, लेकिन JSON पार्सर के साथ उपद्रव, जिस पर मैंने बहुत समय बिताया, वह DFU मोड की उपस्थिति के कारण विशेष रूप से प्रभावी नहीं था। बाद में हम मौजूदा पार्सर भेद्यता के साथ इस पद्धति पर विचार करेंगे। अब तक, मुझे इस बात में अधिक दिलचस्पी रही है कि क्या यह मुख्य रूप से संभव है। मुख्य फ़ाइल को संशोधित करना, इसके सीआरसी 16 को पुनर्गणना करना और इसे उस प्रोग्राम का उपयोग करके एम्बेड करना है जो लवेंस रिमोट एप्लिकेशन में शामिल है। यह पता चला कि यह संभव है।
नतीजतन, हमें एक यूएसबी कुंजी मिली जिसे पीसी एप्लिकेशन का उपयोग करके समझौता किया गया था, और यह निश्चित रूप से दरार करने का सबसे आसान हिस्सा था। कुंजी को नियंत्रित करने के बाद, मैंने बूट प्लग पर कोड को निष्पादित करने का एक तरीका खोजना शुरू कर दिया।



ऐसा करने के लिए, मैंने हमारे सेक्स टॉय के "हार्डवेयर" की ओर रुख किया - शायद उस पर एक डिबगर भी था, और यह देखने लायक था। बूट प्लग की जांच करने के बाद, मुझे अधिक गंभीर चिप मिली, जिसमें बड़ी मात्रा में फ्लैश मेमोरी और रैम और एक अधिक शक्तिशाली कोर्टेक्स एम 4 प्रोसेसर था।

मुझे आसानी से पता चल गया कि क्या गायब था और बूटप्लैग पर क्या था। कोई डीईपी नहीं है, डोंगल की तरह, शीर्ष पर बैटरी के लिए तार होते हैं, अगला है चार्जिंग पोर्ट, वाइब्रेटर मोटर के संपर्क, डिबगिंग के लिए कई संपर्क पैड और एक ब्लूटूथ एंटीना। इस प्रकार, एसडीडी की उपस्थिति के लिए धन्यवाद, डिवाइस को आसानी से रिफ्लेक्ट किया जा सकता है।



आप देखें कि क्या हुआ - मेरे पास कोई शेयरधारक नहीं है, लेकिन बैग में हमेशा प्रयोगों के लिए बट प्लग का एक गुच्छा होगा। फिर मैंने रिवर्स इंजीनियरिंग शुरू कर दी और मूल फर्मवेयर को रीसेट करते हुए बूटप्लैग को डिबग करना शुरू कर दिया। कोई JSON पार्सर नहीं थे, केवल साधारण कमांड थे, लेकिन बड़ी संख्या में।

मैंने सोचा था कि अगर डोंगल फर्मवेयर अपडेट मोड इतना असुरक्षित था, तो यह संभव है कि कमजोरियां हों। यह जिस तरह से है वह निकला। DFU खोज के परिणामस्वरूप, मुझे 2 चीजें मिलीं: बूट क्षेत्र में नियमित DFU कमांड हैंडलर और DfuTarg लाइन। यह DfuTarg LVS-Z00 बूट प्लगइन के पहचानकर्ता के समान उपयोग किया जाता है, अर्थात यह BLE के लिए DFU बूटलोडर के समान है। इसलिए, DFU मोड में, बूटलॉग को DfuTarg नाम के तहत एक उपकरण के रूप में मान्यता प्राप्त है, और इस विशिष्ट पहचानकर्ता का उपयोग डिवाइस की खोज के लिए किया जा सकता है।
इसलिए, यदि आप उसे उसी DFU कमांड को भेजते हैं जिसे हमने कुंजी को भेजा है, तो बूटप्लैग डिवाइस फर्मवेयर अपडेट मोड में जाएगा। चमकती के लिए, आप नॉर्डिक सेमीकंडक्टर माइक्रोकिरिट - nRF टूलबॉक्स के निर्माता के मालिकाना उपकरण का उपयोग कर सकते हैं।



एक हार्डवेयर स्निफर का उपयोग करके, आप Wireshark में BLE पैकेट की कल्पना कर सकते हैं।



मैंने एक छोटा संदेश "प्लग से हैलो" भेजा है, और इसका अर्थ है कि आप बैटप्लैग पर कोड को बिना किसी हैकिंग के निष्पादित कर सकते हैं, और यह एक भेद्यता नहीं है, लेकिन बस एक प्रकार का डेवलपर्स डिज़ाइन है जो आपको डिवाइस को फिर से शुरू करने की अनुमति देता है। शायद खुला स्रोत समुदाय इस समाधान को पसंद करेगा। लब्बोलुआब यह है कि जो कोई भी आपके बूट प्लग-इन से जुड़ सकता है, उस पर अपना कोड चलाने में सक्षम है, और यह पहले से ही एक खतरनाक चीज है। इस मामले में, हैकर को स्थानीय कनेक्शन के क्षेत्र में होना चाहिए, अर्थात्, एक समझौता डोंगल और बीएलई चैनल के माध्यम से इस पर नियंत्रण पाने के लिए सेक्स टॉय के लिए पर्याप्त होना चाहिए। उसी समय, आप डोंगल का उपयोग कर सकते हैं, या कोई अन्य BLE डिवाइस।



सवाल यह है कि बूट प्लग-इन के साथ वास्तव में क्या किया जा सकता है, इस पर अपना कोड चलाने का अवसर है? मेरे पास कुछ विचार हैं। पहला - इस चीज़ का नियंत्रण लेना, आप रैंसमवेयर बूटप्लैग बना सकते हैं। आप इसके फर्मवेयर को संशोधित कर सकते हैं ताकि उपयोगकर्ता DFU मोड को चालू नहीं कर सकेगा जब तक कि आप उसे एक निश्चित कुंजी प्रदान नहीं करते हैं, या आप केवल कंपन फ़ंक्शन को बंद कर देते हैं और इस उपयोगी डिवाइस को अनलॉक करने के लिए 50 रुपये मांगते हैं।



कई लोगों के लिए, यह ऐसे खिलौनों के उपयोग से एक तरह के टीके के रूप में काम करेगा। दूसरा विचार बूटप्लैग को हथियार में बदलना है। इसमें एक काफी शक्तिशाली बैटरी है जो वाइब्रेटर मोटर को खिलाती है, हम कह सकते हैं कि 80% बूट प्लग एक बैटरी है। आपको शायद याद है कि सैमसंग गैलेक्सी नोट स्मार्टफ़ोन के साथ क्या हुआ था - उन्होंने बस विस्फोट किया (हँसी), इसलिए यह संभावना है कि यह अन्य प्लग के साथ भी हो सकता है। मुझे नहीं पता कि इसके विस्फोट की संभावना क्या है, लेकिन अगर आपके पास मोटर के साथ बहुत सारे सेक्स के खिलौने हैं, तो आपको इसके बारे में सोचना चाहिए। विकास दल का दावा है कि कई चलती भागों की उपस्थिति के बावजूद ये चीजें बिल्कुल सुरक्षित हैं। लेकिन अगर ऐसा है, तो डिवाइस की सुरक्षा सुविधा सॉफ़्टवेयर में एन्कोडेड है, हार्डवेयर नहीं।इस मामले में, दुर्भावनापूर्ण कोड के निष्पादन के विनाशकारी परिणाम हो सकते हैं।

एयर पंप से लैस सेक्स टॉय भी खतरनाक हैं। उनके पास बैटरी के साथ एक काफी शक्तिशाली मोटर भी है, इसलिए आपको उन पर भी ध्यान देना चाहिए।
अंत में, अंतिम विचार एक शत्रुतापूर्ण लड़ाई प्लग-इन है। शत्रुतापूर्ण, इस अर्थ में नहीं कि यह आपके गधे को उड़ाने में सक्षम है, लेकिन इस तथ्य में कि यह आपके बाकी उपकरणों को हैक करने के साधन के रूप में काम कर सकता है। इसलिए, हम युद्ध के प्लग को इसकी दुश्मनी के दृष्टिकोण से विचार करेंगे, जो दुर्भावनापूर्ण कोड के निष्पादन द्वारा सुनिश्चित किया गया है।

आइए यह पता लगाने की कोशिश करें कि क्या बूट प्लग-इन के लिए आवेदन में कोड निष्पादन प्राप्त करना संभव है, यह विचार करके कि यह आने वाले संदेशों को कैसे संसाधित करता है।



बाईं ओर आपको जावास्क्रिप्ट में एक कॉलबैक दिखाई देता है, और दाईं ओर यह सीरियल पोर्ट के माध्यम से एप्लिकेशन के साथ कैसे इंटरैक्ट करता है। कॉलबैक को एक स्ट्रिंग में रखा जाता है और फिर विभिन्न कार्यों के एक समूह द्वारा संसाधित किया जाता है।

पहला कार्य कुंजी को खोजना है, यह कुंजी से आने वाले आरंभिक संदेशों को संसाधित करता है। दूसरा फ़ंक्शन ("डेटा") पर है, एक प्रोसेसिंग फ़ंक्शन जो आने वाले JSON पैकेट को स्वीकार करता है, जिसकी लंबाई, वैसे, 32 अक्षरों से अधिक नहीं हो सकती। अगला, पार्सिंग और बाकी सब कुछ किया जाता है। वास्तव में, यहां कोई गंभीर प्रसंस्करण नहीं है - बस डिवाइस की स्थिति, बैटरी चार्ज और ओवरहेड की जांच के लिए अनुरोध किया जाता है।

अंतिम फ़ंक्शन बहुत अधिक दिलचस्प है - मैं इसे डिबग लॉग कहता हूं, हालांकि वास्तव में इसका वास्तविक कोड में कोई नाम नहीं है। यह फ़ंक्शन सब कुछ पंजीकृत करता है जो डिवाइस को सीरियल पोर्ट के माध्यम से प्रवेश करता है और इन लाइनों को कंसोल पर रीसेट करता है, जो यदि आवश्यक हो तो एक त्रुटि संदेश प्रदर्शित करता है। इसके अलावा, यह फ़ंक्शन HTML तत्व के रूप में एक नया DOM तत्व बनाता है, और इस HTML में सीरियल पोर्ट के माध्यम से प्राप्त सभी सामग्री को फेंकता है। मैं एक वेब डेवलपर नहीं हूं, लेकिन मुझे लगता है कि यह एक गंभीर XSS भेद्यता है।

इसलिए, यदि आपके पास डोंगल पर नियंत्रण है, तो आप धारावाहिक पोर्ट के माध्यम से कुछ भी भेज सकते हैं, जिससे एप्लिकेशन को HTML के रूप में व्याख्या करने के लिए मजबूर किया जा सके। यह समस्या है, क्योंकि HTML में आपके कंप्यूटर पर इंस्टॉल किए गए एप्लिकेशन में नया जावास्क्रिप्ट कोड बनाने की क्षमता है, अर्थात यह इसे समझौता कर सकता है। सवाल यह है कि क्या मालवेयर का आविष्कार किया जा सकता है, यह जानते हुए कि एक समय में केवल 32 वर्णों की अनुमति है।

22:00 मिनट

DEFCON 27 सम्मेलन। बटप्लग: वास्तविक प्रवेश परीक्षण। भाग 2


विज्ञापन का एक सा :)


हमारे साथ रहने के लिए धन्यवाद। क्या आप हमारे लेख पसंद करते हैं? अधिक दिलचस्प सामग्री देखना चाहते हैं? एक ऑर्डर देकर या $ 4.99 से डेवलपर्स के लिए अपने दोस्तों के क्लाउड-आधारित VPS की अनुशंसा करके हमें समर्थन दें, आपके द्वारा आविष्कार किया गया एंट्री-लेवल सर्वर का एक अनूठा एनालॉग: VPS (KVM) E5-2697 3 (6 करोड़) 10GB DDR4 480GB SSD 1Gbps के बारे में पूरी सच्चाई $ 19 या सर्वर को कैसे विभाजित करें? (विकल्प RAID1 और RAID10 के साथ उपलब्ध हैं, 24 कोर तक और 40GB DDR4 तक)।

डेल R730xd एम्स्टर्डम में इक्विनिक्स टीयर IV डेटा सेंटर में 2 गुना सस्ता? केवल हमारे पास 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV नीदरलैंड के 199 डॉलर में से है!डेल R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - $ 99 से! इन्फ्रास्ट्रक्चर Bldg का निर्माण कैसे करें के बारे में पढ़ेंएक पैसा के लिए 9,000 यूरो की लागत डेल R730xd E5-2650 v4 सर्वर का उपयोग कर वर्ग सी?

All Articles