Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
blackbox-fuzzing — राउटर TL-WR902AC को उदाहरण के रूप में उपयोग करके IoT उपकरणों की फ़ज़िंग | Kitploit
उपकरण/GitHubGitHub/otsmr/blackbox-fuzzing
IoT सुरक्षाभेद्यता विश्लेषणशोषणरिवर्स इंजीनियरिंगफज़िंगबाइनरी विश्लेषणपेपर और शोधलर्निंग और शिक्षाफर्मवेयर विश्लेषण
GitHubotsmr/blackbox-fuzzing

blackbox-fuzzing

राउटर TL-WR902AC को उदाहरण के रूप में उपयोग करके IoT उपकरणों की फ़ज़िंग

132171810 महीने पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

IoT डिवाइसों की ब्लैकबॉक्स-फ़ज़िंग: उदाहरण के रूप में TL-WR902AC राउटर का उपयोग

यह मेरे टर्म पेपर का HTML संस्करण है जिसे PDF के रूप में डाउनलोड किया जा सकता है यहाँ.

परिचय

फ़ज़िंग सॉफ़्टवेयर में बग खोजने का "सबसे प्रभावी तरीकों" में से एक बन गई है। इसी या समान दावों के साथ, कई वर्तमान फ़ज़िंग-संबंधित पेपर शुरू होते हैं [google-scholar]. हमारे पिछले टर्म पेपर का मुख्य लक्ष्य, जिसका विषय "Internet of Vulnerable Things" था, एक मेमोरी-संबंधित बग ढूंढना और फिर इस भेद्यता के लिए एक एक्सप्लॉइट लिखना था। हम फर्मवेयर को रिवर्स करके एक भेद्यता खोजने में सक्षम थे, लेकिन कोई मेमोरी-संबंधित बग नहीं मिला। बाइनरी को हाथ से रिवर्स करके बफर ओवरफ्लो खोजना न केवल समय लेने वाला है, बल्कि इसके लिए बहुत अधिक अनुभव की भी आवश्यकता होती है। वहीं फ़ज़िंग का उद्देश्य ऐसी मेमोरी-संबंधित भेद्यताओं को खोजने का "सबसे प्रभावी तरीका" होना है। उदाहरण के लिए, Google ने OSS-Fuzz पेश किया, जो लगातार ओपन सोर्स सॉफ़्टवेयर को फ़ज़ करता है और 1,000 प्रोजेक्ट्स में पहले ही 10,000 से अधिक भेद्यताएँ खोज चुका है [oss-fuzz].

इस टर्म पेपर का लक्ष्य फिर से एक मेमोरी-संबंधित भेद्यता खोजना है, लेकिन इस बार फ़ज़िंग का उपयोग करके। लक्षित भेद्यता व्यवस्थापक क्रेडेंशियल के ज्ञान के बिना नेटवर्क पर शोषण योग्य होनी चाहिए। यह पेपर इस लक्ष्य को प्राप्त करने का तरीका बताता है। इसके लिए, पेपर को दो भागों में विभाजित किया गया है। पहला भाग इस बात पर केंद्रित है कि एक शक्तिशाली लक्ष्य कैसे खोजा जाए, कौन से उपकरण उपयोग किए जा सकते हैं, और एक अच्छे फ़ज़िंग लक्ष्य में क्या शामिल होना चाहिए। दूसरा भाग फिर वर्णन करता है कि एक ऐसा हार्नेस कैसे विकसित और डीबग किया जाए जो बाइनरी में किसी विशिष्ट फ़ंक्शन को फ़ज़ करने में सक्षम हो। फिर विकसित हार्नेस का उपयोग AFL++ द्वारा लक्षित फ़ंक्शन को फ़ज़ करने के लिए किया जाता है। निम्नलिखित में, एक संक्षिप्त पृष्ठभूमि दी गई है और IoT डिवाइस फ़ज़िंग के मामले में वर्तमान तकनीकी स्थिति क्या है।

इस टर्म पेपर के संदर्भ में बनाई गई सभी फ़ाइलें GitHub पर पूरी तरह से प्रकाशित भी हैं और निम्न URL का उपयोग करके एक्सेस की जा सकती हैं: otsmr/blackbox-fuzzing.

वर्तमान तकनीकी स्थिति

IoT डिवाइस की फ़ज़िंग करना किसी ओपन सोर्स प्रोजेक्ट की फ़ज़िंग करने जितना आसान नहीं है। अक्सर सोर्स कोड स्वामित्व (proprietary) होता है, जो ग्रे-बॉक्स फ़ज़िंग को असंभव बना देता है, जो सर्वोत्तम फ़ज़िंग प्रदर्शन के लिए सोर्स कोड को इंस्ट्रूमेंट करता है [afl-persistent]. इसके अलावा, CPU आर्किटेक्चर अक्सर फ़ज़र्स द्वारा मूल रूप से समर्थित नहीं होता है, जिसके लिए QEMU [qemu] जैसे इम्यूलेटर की आवश्यकता होती है, जो फ़ज़िंग गति को भी धीमा कर देता है [afl-persistent]. एक और मुद्दा हार्डवेयर परिधीय (peripherals) है, जो एक सामान्य दृष्टिकोण के विकास को जटिल बनाता है। पेपर "Embedded Fuzzing: A Review of Challenges, Tools, and Solutions" [embedded-fuzzing] विभिन्न फ़ज़िंग रणनीतियों का अवलोकन देता है, जैसे हार्डवेयर-आधारित एम्बेडेड फ़ज़िंग। इनमें से अधिकांश रणनीतियों को लक्षित प्रोग्राम के सोर्स कोड की आवश्यकता होती है, जैसे कि AFL जैसे फ़ज़र के सोर्स कोड को ARM-आधारित IoT डिवाइसों पर पोर्ट करना ताकि फ़ज़र को IoT हार्डवेयर पर चलाया जा सके। फ़ज़र को डिवाइस के हार्डवेयर पर चलाने में भी प्रदर्शन संबंधी समस्याएँ होती हैं क्योंकि उनमें अक्सर निम्न-स्तरीय CPU होते हैं, जो सामान्य डेस्कटॉप CPU से धीमे होते हैं। इस पेपर में प्रस्तुत एक अन्य दृष्टिकोण इम्यूलेशन-आधारित एम्बेडेड फ़ज़िंग है। जहाँ या तो कवरेज-निर्देशित फ़ज़िंग करने के लिए एक इम्यूलेटर में एकल लक्षित प्रोग्राम निष्पादित किया जाता है या पूरा सिस्टम।

ऊपर उल्लिखित दृष्टिकोण सभी एक इम्यूलेटर का उपयोग करके या सोर्स कोड को इंस्ट्रूमेंट करके सीधे एक बाइनरी को लक्षित करते हैं। इन दृष्टिकोणों के लिए एक फ़ज़िंग सेटअप की आवश्यकता होती है जिसे अक्सर एकल IoT डिवाइस के लिए विशेष रूप से तैयार किया जाना चाहिए और इसे सामान्यीकृत करना कठिन होता है। इसके लिए, शोधकर्ताओं ने IoTFuzzer नामक एक प्रोग्राम बनाया, जिसका उद्देश्य एक स्वचालित फ़ज़िंग फ्रेमवर्क होना है जो "उनके फर्मवेयर इमेज तक पहुँच के बिना मेमोरी क्षति (memory corruption) भेद्यताओं को खोजने" [iotfuzzer] का लक्ष्य रखता है। IoTFuzzers इस अवलोकन पर आधारित है कि अधिकांश IoT डिवाइसों में उन्हें नियंत्रित करने के लिए एक मोबाइल ऐप होता है, और ऐसे ऐप्स में डिवाइस के साथ संचार करने के लिए उपयोग किए जाने वाले प्रोटोकॉल के बारे में जानकारी होती है। प्रोग्राम फिर IoT लक्ष्यों का प्रभावी ढंग से परीक्षण करने के लिए परीक्षण मामलों को उत्परिवर्तित (mutate) करने हेतु प्रोग्राम-विशिष्ट तर्क की पहचान करता है और उसका पुन: उपयोग करता है [iotfuzzer].

पृष्ठभूमि

हार्नेस

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

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

कॉर्पस

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

एक शक्तिशाली लक्ष्य खोजना

ब्लैक बॉक्स फ़ज़िंग का सबसे समय लेने वाला हिस्सा फर्मवेयर में एक संभावित भेद्य फ़ंक्शन खोजना है। पहला कदम दिलचस्प बाइनरी ढूंढना है जो, उदाहरण के लिए, नेटवर्क पर पहुँच योग्य हों, असुरक्षित फ़ंक्शन का उपयोग करती हों, या स्टैक कैनरी जैसी सुरक्षा सुविधाएँ सक्षम न रखती हों, जो बफर ओवरफ्लो सुरक्षा है। हमारे पिछले पेपर ([iovt]) ने पहले ही वर्णन किया है कि लक्षित राउटर से फर्मवेयर कैसे निकाला जाए और एक संभावित खतरनाक बाइनरी कैसे खोजी जाए। इसके लिए, EMBA [emba] टूल का उपयोग किया गया था। EMBA फर्मवेयर में पाई जाने वाली सभी बाइनरी को strcpy जैसे असुरक्षित फ़ंक्शनों, नेटवर्क एक्सेस, और स्टैक कैनरी या NX-Bit जैसी सुरक्षा सुविधाओं की संख्या के आधार पर रैंक करता है, जो बफर ओवरफ्लो का शोषण करते समय दिलचस्प हो जाती हैं, जो कोड 1 में पाया जा सकता है।

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