
Python में अपना स्वयं का USB डिवाइस लागू करें, जिसे Cynthion या GreatFET जैसे हार्डवेयर पेरिफेरल द्वारा समर्थित किया गया हो
यह रिपॉज़िटरी Facedancer सॉफ़्टवेयर की अगली पीढ़ी को समाहित करती है। मूल GoodFET-आधारित Facedancer से उत्पन्न, यह रिपॉज़िटरी एक python मॉड्यूल प्रदान करती है जो विस्तारित Facedancer समर्थन प्रदान करती है -- जिसमें कई बोर्डों के लिए समर्थन और कुछ काफी महत्वपूर्ण नई सुविधाएँ शामिल हैं।
Facedancer का दस्तावेज़ीकरण Read the Docs पर उपलब्ध है। कच्चे दस्तावेज़ स्रोत docs/ फ़ोल्डर में हैं।
इस पैकेज को निम्नलिखित कमांड से इंस्टॉल करें:
pip install facedancer
उसके बाद आप facedancer पैकेज को सामान्य रूप से import कर सकते हैं:
$ python
>>> import facedancer
Facedancer 3.0 मूल emulation core का पूर्ण पुनर्लेखन है और legacy स्क्रिप्ट्स का समर्थन नहीं करता।
यदि आप ऐसी स्क्रिप्ट्स या प्रशिक्षण सामग्री का उपयोग कर रहे हैं जो v3.0.x में deprecated सुविधाओं
या APIs पर निर्भर हैं, तो आप Facedancer का नवीनतम v2.9.x
रिलीज़ इस प्रकार इंस्टॉल कर सकते हैं:
pip install "facedancer<=3"
Legacy applets और उदाहरण v2.9.x
ब्रांच में पाए जा सकते हैं।
Facedancer बोर्ड सरल हार्डवेयर डिवाइस हैं जो "remote-controlled" USB कंट्रोलर के रूप में कार्य करते हैं। उचित सॉफ़्टवेयर के साथ, आप इन बोर्डों का उपयोग USB डिवाइसों को शीघ्रता से और आसानी से emulate करने के लिए कर सकते हैं -- और USB host controllers को fuzz करने के लिए भी!
यह विशेष सॉफ़्टवेयर रिपॉज़िटरी वर्तमान में आपको Python में USB डिवाइसों के emulations आसानी से बनाने की अनुमति देती है। नियंत्रण इतना सूक्ष्म है कि आप सभी प्रकार के USB दुर्व्यवहार उत्पन्न कर सकते हैं। :)
अधिक जानकारी के लिए देखें:
नए Facedancer कोडबेस की एक प्रमुख नई सुविधा USB कनेक्शनों को MITM (Meddler-In-The-Middle) करने की क्षमता है -- जो लेखकों में से एक के मूल USBProxy प्रोजेक्ट को प्रतिस्थापित करती है। यह अनुप्रयोगों के एक पूर्ण नए क्षेत्र को खोलती है -- जिसमें प्रोटोकॉल विश्लेषण और USB पैकेटों का लाइव हेरफेर शामिल है -- और यह विशेष रूप से तब उपयोगी है जब आप लक्ष्य डिवाइस पर चलने वाले सॉफ़्टवेयर को नियंत्रित नहीं करते (जैसे embedded systems या games consoles पर)।
+-----------------------------------------------------------------------+
+------------+ | +--------------------------------+ +---------------------------+ | +--------------+
| | | | | | | | | |
| PROXIED | | | HOST COMPUTER | | FACEDANCER DEVICE | | | TARGET USB |
| DEVICE <------> running Facedancer software <---> acts as USB-Controlled <------> HOST |
| | | | | | USB Controller | | | |
| | | | | | | | | |
+------------+ | +--------------------------------+ +---------------------------+ | +--------------+
| |
| MITM Setup (HOST + FACEDANCER) |
+-----------------------------------------------------------------------+
यह सुविधा पूर्ण है, लेकिन इसमें और दस्तावेज़ीकरण की आवश्यकता हो सकती है। Pull requests का स्वागत है। :)
सबसे पहले, आप संभवतः BACKEND environment variable सेट करना चाहेंगे, जो
सॉफ़्टवेयर को बताता है कि आप किस प्रकार का Facedancer बोर्ड उपयोग करना चाहते हैं। यदि यह variable
सेट नहीं है, तो सॉफ़्टवेयर आपके लिए इस आधार पर अनुमान लगाने का प्रयास करेगा कि क्या जुड़ा हुआ है। यह हमेशा
सर्वोत्तम अनुमान नहीं लगाता, इसलिए आपके लिए इसे स्वयं सेट करना बेहतर होगा।
इसके बाद, आप संभवतः किसी एक उदाहरण या किसी एक पूर्व-निर्मित स्क्रिप्ट को देखना चाहेंगे।
नई सिंटैक्स में उदाहरण examples के अंतर्गत स्थित हैं। "पुरानी" सिंटैक्स में मुख्य Facedancer स्क्रिप्ट्स
legacy-applets में स्थित हैं।
उदाहरण के लिए:
export BACKEND=greatfet
./examples/rubber-ducky.py
BACKEND=cynthion)BACKEND=greatfet)BACKEND=greatfet)BACKEND=greatfet)BACKEND=goodfet)BACKEND=raspdancer)BACKEND=hydradancer)ध्यान दें कि हार्डवेयर प्रतिबंध MAX3420/MAX3421 बोर्डों को अधिक जटिल डिवाइसों को emulate करने से रोकते हैं -- सेट किए जा सकने वाले endpoints की संख्या/प्रकार पर सीमाएँ हैं। LPC4330 बोर्डों -- जैसे GreatFET -- में कम सीमाएँ हैं।
इसी कारण से, MAX3420/MAX3421 बोर्ड (BACKEND=goodfet या BACKEND=raspdancer)
वर्तमान में USBProxy-nv MITM डिवाइसों के रूप में उपयोग नहीं किए जा सकते। सभी आधुनिक बोर्ड (BACKEND=greatfet, BACKEND=hydradancer)
पूर्णतः कार्यात्मक होने चाहिए।
ध्यान दें कि HydraDancer और HydraUSB3 बोर्ड (BACKEND=hydradancer) वर्तमान में host-mode का समर्थन नहीं करते।
ध्यान दें कि वास्तविक FaceDancer 3.0 Windows पर काम नहीं करता (pyusb में कुछ समस्याएँ...) और केवल GNU/Linux पर
Roadmap विकासाधीन है, लेकिन multi-board समर्थन के अतिरिक्त, यह रिपॉज़िटरी अंततः कुछ शानदार नई सुविधाओं का घर होगी, जिनमें शामिल हैं:
इस रेपो की शानदारता के लिए बहुत से लोगों को दोषी ठहराया जा सकता है, जिनमें शामिल हैं:
... का सदैव स्वागत है। हमें एक PR भेजें!