
Universal Plug and Fuzz
UFuzz, या Universal Plug and Fuzz, एक स्वचालित UPnP फज़िंग उपकरण है। यह नेटवर्क पर सभी UPnP एंडपॉइंट्स की सूची बनाएगा, उपलब्ध सेवाओं को खोजेगा और उन्हें फज़ करेगा। इसके पास Burp प्रॉक्सी लॉग का उपयोग करके HTTP फज़ करने की क्षमता भी है।
इसे एम्बेडेड सिस्टम फज़ करने के लिए डिज़ाइन किया गया है, और इसलिए यह केवल सिंगल-थ्रेडेड है। इसमें बहुत सीमित पेलोड सेट भी है क्योंकि इन प्रणालियों को फज़ करना धीमा हो सकता है। कुछ पेलोड जैसे ब्लाइंड SQLi और कमांड इंजेक्शन यह बताने के लिए देरी पर निर्भर करते हैं कि इंजेक्शन सफल हुआ या नहीं, और उनमें गलत सकारात्मक परिणाम (false positives) हो सकते हैं। अन्य पेलोड जैसे फॉर्मेट स्ट्रिंग्स और बफर ओवरफ्लो क्रैश का पता लगाने के लिए कस्टम मॉनिटर का उपयोग करने के लिए डिज़ाइन किए गए हैं।
उदाहरण कॉन्फ़िगरेशन मॉड्यूल और मॉनिटर मॉड्यूल शामिल हैं। कस्टम मॉनिटर क्रैश का पता लगाने के लिए लक्ष्य प्रणाली टेलीमेट्री के उपयोग की अनुमति देते हैं। टेलनेट-आधारित और सीरियल कंसोल-आधारित क्रैश डिटेक्शन के लिए उदाहरण मॉड्यूल प्रदान किए गए हैं।
ध्यान दें कि कोड काफी अपरिष्कृत है। इसे वर्णित करने का सबसे अच्छा तरीका "हैकी" (hacky) होगा। दुर्भाग्यवश यह प्रोजेक्ट जल्दी में लिखा गया था और वास्तव में कभी ठीक से आर्किटेक्चर नहीं किया गया। मैं आने वाले महीनों में इसे हल करने के लिए काम करूँगा।
अंत में, कुछ कोड अन्य प्रोजेक्ट्स से लिया गया था:
UPnP कोड काफी हद तक Craig Heffner के miranda कोड पर आधारित है। Craig मेरे लिए प्रेरणा रहे हैं और मैं दृढ़ता से अनुशंसा करता हूँ कि आप उनका ब्लॉग /dev/ttys0 पढ़ें।
कुछ टेस्ट सेट जनरेशन कोड Ben Nagy के Metafuzz प्रोजेक्ट पर आधारित है।
सॉकेट और HTTP पार्सिंग कोड Excon पर आधारित है।
UFuzz का परीक्षण Ruby 1.9.3 और Ruby 2.1.1 के साथ किया गया है। आप UFuzz निर्देशिका में bundle install चलाकर सभी आवश्यक gems इंस्टॉल कर सकते हैं।
सभी कमांड लाइन विकल्प देखने के लिए ufuzz को -h विकल्प के साथ चलाएँ। जब उपकरण चलता है, लॉग log निर्देशिका में लिखे जाते हैं।
नेटवर्क पर सभी UPnP डिवाइसों की बुनियादी फज़िंग के लिए, बस ufuzz --upnp चलाएँ। आप शायद अनुरोधों और प्रतिक्रिया सारांशों को देखने के लिए -v 4 विकल्प का भी उपयोग करना चाहेंगे।