
एक सक्रिय फिंगरप्रिंटिंग उपकरण जो ICMP, TCP, HTTP, SSH और FTP प्रोबिंग तकनीकों का उपयोग करके नेटवर्क उपकरणों पर 16 एम्बेडेड TCP/IP स्टैक की पहचान करता है, भेद्यता मूल्यांकन के लिए।
project-memoria-detector उपकरण का उद्देश्य यह निर्धारित करना है कि कोई लक्ष्य नेटवर्क उपकरण एक विशिष्ट एम्बेडेड TCP/IP स्टैक चलाता है या नहीं।
वर्तमान में, उपकरण 16 एम्बेडेड TCP/IP स्टैक (और उनके वेरिएशन) के लिए फिंगरप्रिंट का समर्थन करता है:
उपरोक्त में से कई स्टैक Project Memoria अनुसंधान के दौरान कमजोर पाए गए।
स्क्रिप्ट निम्नलिखित सक्रिय फिंगरप्रिंटिंग विधियों के माध्यम से लक्ष्य उपकरण पर 16 TCP/IP स्टैक के उपयोग की पहचान करती है:
हालांकि स्क्रिप्ट का प्रयोगशाला वातावरण में परीक्षण किया गया है, हम यह गारंटी नहीं दे सकते कि इसका उपयोग हर संभावित डिवाइस के लिए सुरक्षित है। उदाहरण के लिए, विकृत ICMP पैकेट एक ऐसे डिवाइस को क्रैश कर सकते हैं जो एक अलग स्टैक चला रहा है। इसलिए, हम LIVE वातावरण में मिशन-क्रिटिकल उपकरणों (जैसे रोगी-जुड़े उपकरणों वाले अस्पताल या सुरक्षा-क्रिटिकल औद्योगिक नियंत्रण प्रणाली) पर सीधे इसके उपयोग की अनुशंसा नहीं करते हैं। एक आदर्श दृष्टिकोण प्रयोगशाला सेटिंग में या रखरखाव विंडो के दौरान उपकरणों का परीक्षण करना है।
कृपया ध्यान दें कि उपकरण का परीक्षण केवल Linux परीक्षण वातावरण में किया गया है (कोई भी आधुनिक Linux वितरण काम करना चाहिए)। यह माना जाता है कि परीक्षण वातावरण बुनियादी फ़ायरवॉल के रूप में iptables (https://linux.die.net/man/8/iptables) का उपयोग कर रहा है।
उपकरण को Python 3.x के हाल के संस्करण की आवश्यकता है (देखें https://www.python.org/, संस्करण >= 3.7.7 बेहतर है), साथ ही Scapy (देखें https://scapy.net/, संस्करण >= 2.4.3 बेहतर है)।
Scapy को Python के साथ स्थापित करने और सामान्य समस्या निवारण के लिए, कृपया यहां दस्तावेज़ का पालन करें: https://scapy.readthedocs.io/en/latest/installation.html
यदि आपकी मशीन पर Python पहले से स्थापित है, तो आवश्यक निर्भरताओं को स्थापित करने के लिए आप pip और प्रदान की गई requirements.txt फ़ाइल का उपयोग कर सकते हैं:
$ pip install -r requirements.txt
चूंकि Scapy को चलाने के लिए रूट विशेषाधिकारों की आवश्यकता होती है, उपकरण को sudo के साथ चलाया जाना चाहिए, उदाहरण:
$ sudo python project-memoria-detector.py [options]
स्क्रिप्ट चलाने के लिए उपलब्ध विकल्पों को देखने के लिए, इसे -h विकल्प के साथ चलाएं:
$ python project-memoria-detector.py -h
सामान्य तौर पर, स्क्रिप्ट को लक्ष्य डिवाइस के कम से कम एक IP पते की आवश्यकता होती है (इस पैरामीटर को -ip_dst के साथ स्पष्ट रूप से निर्दिष्ट किया जा सकता है)
$ sudo python project-memoria-detector.py 192.168.3.1
स्क्रिप्ट IP पतों की श्रेणियों को स्कैन करने का समर्थन करती है। आप CIDR नोटेशन का उपयोग करके स्कैन करने के लिए एक सबनेट निर्दिष्ट कर सकते हैं, या स्कैन करने के लिए IP पतों के सेट के साथ एक .txt फ़ाइल प्रदान कर सकते हैं।
CIDR नोटेशन का उपयोग इस प्रकार किया जा सकता है (इस उदाहरण के लिए, IP पते 192.168.3.1 से 192.168.3.254 तक स्कैन किए जाएंगे):
$ sudo python project-memoria-detector.py 192.168.3.0/24
आप रुचि के IP पतों को निर्दिष्ट करने के लिए .txt फ़ाइल का भी उपयोग कर सकते हैं: इस फ़ाइल में प्रत्येक IP पता एक नई लाइन से शुरू होना चाहिए। उदाहरण के लिए, हम निम्नलिखित सामग्री के साथ input.txt नामक एक फ़ाइल बना सकते हैं:
$ cat input.txt
192.168.1.8
192.168.1.9
192.168.3.1
192.168.2.14
फिर हम स्क्रिप्ट को इस प्रकार चला सकते हैं:
$ sudo python project-memoria-detector.py --in-file input.txt
स्क्रिप्ट विभिन्न प्रोटोकॉल जैसे SSH (22), FTP (21) और HTTP (80) को फिंगरप्रिंट करने के लिए पोर्ट के डिफ़ॉल्ट मानों का उपयोग करती है। इन डिफ़ॉल्ट मानों को ओवरराइट करने के लिए, आप फ़्लैग सेट करके ऐसा कर सकते हैं जैसे:
$ sudo python project-memoria-detector.py -ip_dst 192.168.212.42 --tcp-port 80 --http-port 80 --ssh-port 22 --ftp-port 21 -i eth1
स्क्रिप्ट व्यक्तिगत फिंगरप्रिंट से मेल खाने के साथ-साथ गोल कोष्ठकों में निश्चितता की डिग्री आउटपुट करेगी:
$ sudo python project-memoria-detector.py 192.168.6.42
192.168.6.42 is alive
ICMP => uIP/Contiki (High)
TCP => uIP/Contiki (Medium)
HTTP => uIP/Contiki (High)
SSH => Unknown (No match)
FTP => Unknown (No reply)
किसी विशेष फिंगरप्रिंट की निश्चितता की डिग्री High, Medium, या Low हो सकती है। No match का अर्थ है कि किसी ज्ञात फिंगरप्रिंट से कोई मेल नहीं मिला, और No reply का अर्थ है कि एक विशिष्ट पोर्ट/सेवा अनुपलब्ध है।
कॉपीराइट (C) 2020 Forescout Technologies, Inc.
प्रोग्राम लाइसेंस
"द प्रोग्राम" इस लाइसेंस के तहत लाइसेंस प्राप्त किसी भी कॉपीराइट योग्य कार्य को संदर्भित करता है। प्रत्येक लाइसेंसी को "आप" कहा जाता है।
इस लाइसेंस के तहत प्रदान किए गए सभी अधिकार प्रोग्राम पर कॉपीराइट की अवधि के लिए प्रदान किए जाते हैं, और बताई गई शर्तों के पूरा होने पर अपरिवर्तनीय हैं। यह लाइसेंस स्पष्ट रूप से व्यक्तिगत, सरकारी, व्यावसायिक या गैर-लाभकारी उपयोग के लिए अपरिवर्तित प्रोग्राम चलाने की आपकी असीमित अनुमति की पुष्टि करता है। आपको व्यावसायिक उद्देश्यों के लिए व्युत्पन्न कार्यों में प्रोग्राम का उपयोग करने से प्रतिबंधित किया गया है। आपको प्रोग्राम को संशोधित करके किसी व्यावसायिक उत्पाद या सेवा में उपयोग करने से प्रतिबंधित किया गया है, चाहे वह अकेले हो या अन्य कोड के साथ, चाहे वह डाउनलोड करने योग्य हो या सेवा के रूप में एक्सेस किया गया हो। "व्युत्पन्न कार्यों" का अर्थ कोई भी कार्य होगा, चाहे वह स्रोत या ऑब्जेक्ट रूप में हो, जो प्रोग्राम पर आधारित (या व्युत्पन्न) हो और जिसके लिए संपादकीय संशोधन, एनोटेशन, विस्तार, या अन्य संशोधन समग्र रूप से लेखकत्व का एक मूल कार्य दर्शाते हों।
आप प्रोग्राम के स्रोत कोड की शाब्दिक प्रतियां, जैसा कि आप प्राप्त करते हैं, किसी भी माध्यम में वितरित कर सकते हैं, बशर्ते कि आप प्रत्येक प्रति पर एक उपयुक्त कॉपीराइट नोटिस स्पष्ट रूप से और उपयुक्त रूप से प्रकाशित करें; सभी नोटिस को बरकरार रखें जो बताते हैं कि यह लाइसेंस कोड पर लागू होता है; किसी भी वारंटी की अनुपस्थिति के सभी नोटिस को बरकरार रखें; सभी प्राप्तकर्ताओं को प्रोग्राम के साथ इस लाइसेंस की एक प्रति दें; और प्रोग्राम की बिक्री या अन्य वितरण से अकेले या अन्य कोड के साथ, डाउनलोड या सेवा के रूप में एक्सेस किए जाने पर, आर्थिक रूप से लाभ न उठाएं।
सॉफ्टवेयर "जैसा है" प्रदान किया जाता है, बिना किसी प्रकार की वारंटी के, व्यक्त या निहित, जिसमें व्यापारिकता, किसी विशेष उद्देश्य के लिए उपयुक्तता और उल्लंघन न करने की वारंटी शामिल है, लेकिन इन्हीं तक सीमित नहीं है। किसी भी स्थिति में लेखक या कॉपीराइट धारक किसी भी दावे, क्षति या अन्य देयता के लिए उत्तरदायी नहीं होंगे, चाहे वह अनुबंध कार्रवाई, टोर्ट या अन्यथा में उत्पन्न हो, सॉफ्टवेयर से या सॉफ्टवेयर के उपयोग या अन्य लेन-देन से संबंधित हो।
यह लाइसेंस लाइसेंसकर्ता के व्यापार नामों, ट्रेडमार्क, सेवा चिह्नों या उत्पाद नामों का उपयोग करने की अनुमति नहीं देता है, सिवाय प्रोग्राम की उत्पत्ति का वर्णन करने और कॉपीराइट नोटिस की सामग्री को पुन: प्रस्तुत करने में उचित और प्रथागत उपयोग के लिए आवश्यक के अलावा।