Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
LazyMesh — प्रूफ ऑफ कॉन्सेप्ट IoT/हैम रेडियो मेश नेटवर्क, जो इंटरनेट पर वैश्विक रूटिंग के साथ है। | Kitploit
उपकरण/GitHubGitHub/eternityforest/lazymesh
एम्बेडेड सिस्टम सुरक्षाब्लूटूथ सुरक्षाएन्क्रिप्शन/डिक्रिप्शन उपकरणIoT सुरक्षानेटवर्क सुरक्षावायरलेस सुरक्षागोपनीयताहार्डवेयर और IoT सुरक्षा
GitHubeternityforest/lazymesh

LazyMesh

प्रूफ ऑफ कॉन्सेप्ट IoT/हैम रेडियो मेश नेटवर्क, जो इंटरनेट पर वैश्विक रूटिंग के साथ है।

रिपॉजिटरी देखें
711 साल पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें

LazyMesh

Image

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

यह शौक/HAM उपयोग के मामलों और अधिक सामान्य उपभोक्ता/वाणिज्यिक IoT कार्यों दोनों के लिए है, लेकिन विशेष रूप से इंटरनेट को बदलने या सर्वदिशात्मक एंटेना के साथ बड़े उच्च-यातायात क्षेत्रों को कवर करने का प्रयास नहीं करता है।

इसमें Meshtastic-शैली का अगला-हॉप रूटिंग नहीं है, इसलिए इसका नाम LazyMesh है। यदि आप इसे घने क्षेत्र में ऑफग्रिड प्रकार के अनुप्रयोगों के लिए उपयोग करना चाहते हैं, तो आपको संभवतः दिशात्मक एंटेना और मैन्युअल रूप से समन्वित रूट आईडी की आवश्यकता होगी।

चैट स्केच

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

Arduino सीरियल मॉनिटर में अपना संदेश टाइप करें, और आपको अन्य सभी उपकरणों के साथ चैट करने में सक्षम होना चाहिए।

संदेश तब तक पहुंचने चाहिए जब तक नोड या तो एक ही नेटवर्क पर हैं, या दोनों के पास इंटरनेट एक्सेस है।

वेब क्लाइंट पर जाएं इंटरनेट से MQTT के माध्यम से नोड के साथ चैट करने के लिए। बस एक उपयोगकर्ता नाम सेट करें, एक चैनल जोड़ें, और चैनल पासवर्ड दर्ज करें। चैनल का नाम कुछ भी हो सकता है और केवल UI में लेबलिंग को प्रभावित करता है।

आप रीड/राइट डेटा उदाहरण स्केच भी आज़मा सकते हैं। यह डेटा आईडी 195 को पठनीय और डेटा आईडी 196 को पठनीय और लिखने योग्य के रूप में उजागर करता है। साइट पर जाएं, अपने चैनल का विवरण दर्ज करें, और सभी उपकरणों से आईडी 196 का अनुरोध करने के लिए डेटा अनुरोध संवाद का उपयोग करें।

फिर "set" पर क्लिक करें और इसे कुछ और सेट करें, और इसे फिर से पढ़ने का प्रयास करें।

वेब क्लाइंट वर्तमान में test.mosquitto.org का उपयोग करने के लिए हार्डकोडेड है, यह भविष्य में बदल जाएगा।

विशेषताएं

  • अभी केवल ESP32!!
  • Arduino लाइब्रेरी
  • एन्क्रिप्शन (AES-GCM 128 बिट)
  • प्रमाणीकरण (सभी संदेशों पर 6 बाइट MAC)
  • गोपनीयता के लिए रोलिंग कोड आईडी (हर घंटे बदलना)
  • रीप्ले अटैक सुरक्षा (संदेश टाइमस्टैम्प किए जाते हैं)
  • प्लगेबल रूटिंग बैकएंड (वर्तमान में UDP और OpenDHT)
  • मेश फ्लडिंग
  • सीमित स्रोत रूटिंग क्षमताएं, पैकेट में मेश रूट नंबर होता है और राउटर चुन सकते हैं कि कौन से रूट को आगे बढ़ाना है
  • मेश पेलोड विस्तारशीलता और लचीलेपन के लिए MessagePack हैं
  • एक या दो मिनट के भीतर किसी प्रकार का समय सिंक आवश्यक है
  • प्रति पैकेट 37 बाइट ओवरहेड, अधिकतम 220 बाइट, ओवरहेड सहित

समय सिंक

नोड्स को संवाद करने के लिए समय को सिंक करने का कोई तरीका चाहिए। वर्तमान में, यदि उन्होंने कभी किसी विश्वसनीय स्रोत से समय प्राप्त नहीं किया है, तो वे किसी भी यादृच्छिक पैकेट से अपना समय सेट करेंगे जो वे देखते हैं।

यह रीप्ले हमलों की अनुमति देने वाला एक सुरक्षा जोखिम हो सकता है, इसलिए जिन उपकरणों को सुरक्षा की आवश्यकता है, उनके पास एक विश्वसनीय समय स्रोत होना चाहिए।

एक बार समय प्रारंभिक रूप से सेट हो जाने के बाद, कोड अन्य नोड्स के साथ सिंक में रहने के लिए अपने सिस्टम समय को प्रति दिन 1 सेकंड तक समायोजित करेगा, इसलिए सिंक से बाहर बहाव एक बड़ी समस्या नहीं होनी चाहिए।

चैनल

Lazymesh में, सब कुछ एक चैनल है, कोई सीधे संदेश नहीं हैं। यदि आप उन्हें चाहते हैं, तो बस एक समर्पित निजी चैनल बनाएं।

चैनल एक पासवर्ड द्वारा परिभाषित होते हैं, पासवर्ड जानने से पढ़ने और लिखने की पहुंच मिलती है।

रूट नंबर

256 रूट नंबर हैं। प्रत्येक पैकेट में एक होता है, और रिपीटर केवल तभी दोहराते हैं जब उन्होंने मिलान रूट नंबर सक्षम किया हो। डिफ़ॉल्ट रूप से, सब कुछ रूट नंबर 0 के साथ भेजा जाता है, जो डिफ़ॉल्ट रूप से सक्षम है।

यह केवल रिपीटर्स को प्रभावित करता है, नोड किसी भी मेश रूट नंबर को सुनेंगे यदि वह सीधे उनके लिए है।

पेलोड

पैकेट पेलोड MessagePack एरे हैं। वे बारी-बारी से पूर्णांक डेटा आईडी और डेटा आइटम रखते हैं। 192-256 एप्लिकेशन-विशिष्ट संदेशों के लिए आरक्षित हैं।

आईडी 32 टेक्स्ट संदेशों के लिए है, जिसे उपयोगकर्ता नाम और कोलन के साथ उपसर्ग किया जा सकता है।

आईडी 2 का उपयोग एक अद्वितीय आईडी के लिए किया जाता है, जो एक पूर्णांक होना चाहिए। कई एप्लिकेशनों को इसकी बिल्कुल आवश्यकता नहीं हो सकती है।

ट्रांसपोर्ट

MQTT रूटिंग

एक मेटाडेटा लंबाई बाइट और N बाइट मेटाडेटा जोड़ें।

IV बनाने के लिए, IV के लिए 12 यादृच्छिक बाइट लें। फिर पूरी चीज़ को एन्क्रिप्ट करें। IV को आगे जोड़ें और 4 ऑथ टैग बाइट जोड़ें।

फिर रूटिंग आईडी हैश के पहले 8 बाइट लें और हेक्स में बदलें।

MQTT टॉपिक lazymesh_route_HEX होगा

ध्यान दें कि हम एक शीर्ष-स्तरीय टॉपिक का उपयोग करते हैं। ऐसा इसलिए है ताकि आप सार्वजनिक ब्रोकरों पर एक साथ सभी lazymesh चैनलों की सदस्यता लेने के लिए वाइल्डकार्ड का उपयोग नहीं कर सकते, जो आपको सभी को आसानी से DoS करने की अनुमति देगा।

UDP रूटिंग

224.0.0.251:2221 पर प्रसारित केवल कच्चे पैकेट

पैकेट संरचना

इसके बारे में कुछ भी अंतिम नहीं है!!!

root@kitploit:~
सभी संख्याएं लिटिल-एंडियन हैं।

1 बाइट हेडर:
  2 बिट पैकेट प्रकार (या तो 1 या 2, इस पर निर्भर करता है कि हम ACK चाहते हैं या नहीं)
  3 बिट TTL हॉप शेष
  1 बिट धीमी ट्रांसपोर्ट की अनुमति (LoRa आदि)
  1 बिट वैश्विक रूटिंग की अनुमति
  1 बिट पहले से वैश्विक रूट किया गया

1 बाइट हेडर 2:
    1 बिट पहला भेजने का प्रयास:
        जब भी हम कोई पैकेट बनाते या प्राप्त करते हैं, तो यह बिट सेट करें। इसे भेजने का प्रयास करने के बाद, साफ़ करें। इस तरह, जब तक हम मानते हैं कि पैकेट हानि कम है, हम अतिरिक्त ओवरहेड के बिना क्षेत्र में रिपीटर्स की गणना कर सकते हैं।

    1 बिट रिपीटर बिट:
        चिह्नित करता है कि इस पैकेट को रिपीटर्स की गणना करते समय शामिल किया जाना चाहिए।
        यदि आप पैकेट या उसके जैसे किसी को दोहराएंगे, भले ही आपने इसे उत्पन्न किया हो, तो इसे सेट करें।

    1 बिट रुचि बिट:
        यदि यह सेट है, तो भेजने वाला नोड सीधे चैनल में रुचि रखता है, न कि केवल एक रिपीटर। यदि पहला भेजना भी सेट है, तो इसे एक अंतर्निहित ACK के रूप में माना जाता है

    1 बिट स्थान सक्षम
        यदि यह बिट सेट है, तो रिपीटर इंटरनेट पर अग्रेषित पैकेट में स्थान मेटाडेटा जोड़ सकते हैं। इस मेटाडेटा को रूटिंग आईडी को कुंजी के रूप में उपयोग करके एन्क्रिप्ट किया जाना चाहिए, जिसका अर्थ है कि आस-पास के लोग आपको सीमा से बाहर जाने के 1 घंटे बाद तक ट्रैक कर सकते हैं।

        अभी कहीं भी लागू नहीं किया गया है।

    5 आरक्षित 0 बिट

1 बाइट मेश रूट नंबर

1 बाइट संचित पथ हानि:
    5 बिट कुल
    3 बिट अंतिम हॉप
    
    प्रत्येक हॉप पथ हानि का एक बिंदु है,
    साथ ही ट्रांसपोर्ट द्वारा लागू कोई अतिरिक्त लागत अनुमान।
    1 अतिरिक्त हानि बिंदु मोटे तौर पर वाईफाई पर 10dbm अतिरिक्त हानि के समान "बुराई" होना चाहिए।

16 बाइट रूटिंग आईडी:
    हर घंटे बदलता है, हैश द्वारा चैनल PSK से प्राप्त होता है।
    PSK पासवर्ड का केवल 16 बाइट SHA256 है।

    रूटिंग आईडी प्रति घंटे बदलती है, और इसका SHA256 है:
        अक्षर 'cr'
        1970 से घंटों की संख्या एक 32 बिट अहस्ताक्षरित int के रूप में
        PSK

8 बाइट यादृच्छिक एन्ट्रॉपी:
   सिफर के लिए IV के भाग के रूप में उपयोग किया जाता है

4 बाइट टाइमस्टैम्प:
   IV का भी भाग, रीप्ले हमलों को भी रोकता है

N बाइट सिफरटेक्स्ट:
    AES-GCM एन्क्रिप्टेड।

    एन्क्रिप्शन कुंजी प्रति घंटे बदलती है, और इसका SHA256 है:
        अक्षर 'c'
        1970 से घंटों की संख्या एक 32 बिट अहस्ताक्षरित int के रूप में
        PSK

6 बाइट ऑथ टैग:
    अंतिम 6 बाइट GCM टैग हैं

ACK पैकेट और पुनर्प्रयास

कुछ कार्यान्वयन इसे पूरी तरह से अनदेखा करना चुन सकते हैं।

ACKs पूरी तरह से प्रति हॉप हैं जब तक कि कोई उच्च प्रोटोकॉल परत एंड-टू-एंड ACKs नहीं चाहती।

ACK पैकेट दोहराए या रूट नहीं किए जाते, न ही वे प्रमाणित होते हैं। मेश दोहराने के प्रत्येक चरण का अपना स्वीकार होता है, मूल प्रेषक के दृष्टिकोण से, यह फायर एंड फॉरगेट है।

Meshtastic और अधिकांश अन्य की तरह, प्रोटोकॉल "अर्ध-विश्वसनीय" है, सभी नेटवर्कों की तरह, एज केस हैं जो विफलता का कारण बनते हैं।

वास्तविक विश्वसनीयता उच्च स्तर पर की जानी चाहिए।

चैनल ACK

प्रत्येक पैकेट के लिए, उस विशिष्ट चैनल का प्रत्येक इच्छुक श्रोता ठीक एक बार चैनल स्वीकार भेजता है, जब तक कि वह यह पता नहीं लगाता कि अन्य नोड्स द्वारा पहले ही 8 से अधिक ACK भेजे जा चुके हैं।

यह पैकेट सभी ट्रांसपोर्ट पर भेजा जाना चाहिए, न कि केवल वह जहां से पैकेट आया है, अन्यथा अन्य नोड्स को श्रोताओं की संख्या के बारे में गलत जानकारी मिल सकती है।

अंतर्निहित चैनल ACK

जब किसी पैकेट में पहला भेजने का प्रयास बिट और रुचि ध्वज दोनों होते हैं, तो यह एक अंतर्निहित ACK की तरह है। यदि हम पैकेट की एक प्रति भेज रहे हैं, तो हमें खुद को रुचि गणना में जोड़ने के लिए ACK भेजने की आवश्यकता नहीं है।

रिपीटर ACK

रिपीटर केवल पैकेट की एक प्रति भेजकर स्वीकार करते हैं, जब इसे पहली प्रति ध्वज के साथ चिह्नित किया जाता है, तो हम इसे गिनते हैं। इस कारण से, वाईफाई जैसे ट्रांसपोर्ट को दोहराना चाहिए भले ही इसका कोई मतलब न हो।

यह वैश्विक रूटिंग ट्रांसपोर्ट पर लागू नहीं होता है, वैश्विक रूटिंग अलग से संभाली जाती है और किसी भी प्रकार के ACK या दोहराव या किसी भी चीज़ के अधीन नहीं है, हम मानते हैं कि MQTT सर्वर सब कुछ संभालता है।

पुनर्भेजना

नोड एक संदेश को कुछ बार पुनर्भेज सकते हैं यदि उन्हें अपेक्षित उत्तरों से कम मिलते हैं।

नोड्स को कभी भी 6 से अधिक रिपीटर्स और 6 चैनल श्रोताओं की अपेक्षा नहीं करनी चाहिए, भले ही उन्हें अधिक उत्तर मिलें, क्योंकि सरल ACK योजना मध्यम पैकेट हानि होने पर उससे आगे गलत हो जाती है।

संरचना

root@kitploit:~
1 बाइट हेडर:
   हमेशा 0, पैकेट प्रकार नियंत्रण है, और ये रूट करने योग्य या दोहराने योग्य नहीं हैं

1 बाइट हेडर 2:
   डेटा पैकेट के समान। वर्तमान में वास्तव में उपयोग नहीं किया गया है

1 बाइट उपप्रकार:
   CONTROL_TYPE_CHANNEL_ACKNOWLEDGE 
   आप चैनल श्रोता के रूप में स्वीकार कर सकते हैं
   ताकि प्रेषक को पता चले कि कितने हैं।

4 बाइट संदेश आईडी:
  जिस पैकेट का हम ACK कर रहे हैं, उसके यादृच्छिक IV के पहले 4 बाइट

घोषणा पैकेट

हर घंटे, घंटे से कुछ मिनट पहले, नोड्स को उन चैनलों की घोषणा भेजनी चाहिए जिनमें वे रुचि रखते हैं।

इसे वर्तमान घंटे के बजाय अगले घंटे के रोलिंग कोड के साथ भेजा जाना चाहिए, ताकि कनेक्शन पहले से स्थापित किए जा सकें और समय सिंक से बाहर होने पर भी सब कुछ काम करे।

ब्लूटूथ

नोड ब्लूटूथ के माध्यम से मेश करते हैं, सेवा UUID d1a77e11-420f-9f11-1a00-10a6beef0001 के साथ एक विस्तारित विज्ञापन पैकेट का उपयोग करते हैं, और पेलोड केवल ऊपर दिया गया पैकेट प्रारूप है।

BLE पैकेट में कभी भी "पहली प्रति" ध्वज सेट नहीं होना चाहिए, और हम BLE पर रिपीटर्स की गणना नहीं करते हैं। पैकेट हानि किसी भी सरल और स्केलेबल योजना के लिए बहुत अधिक है जो मैं सोच सकता हूं।

इसलिए, हम इसे स्वाभाविक रूप से हानिकारक चैनल के रूप में मानते हैं, जिसे हम पैकेट को 4 बार तक दोहराकर कुछ हद तक कम करते हैं, या जब तक हमें कुछ अन्य पैकेट भेजने के लिए ऐसा करना बंद करने की आवश्यकता नहीं होती है।

जब तक नोड प्रति सेकंड एक या दो पैकेट से अधिक भेजने का प्रयास नहीं करता, तब तक शुद्ध दोहराव योजना कुछ विश्वसनीयता प्रदान करेगी, और यदि हम उससे आगे जाते हैं, तो यह सब कुछ जाम न करने के लिए पीछे हट जाएगी।

यदि हम उसी क्षेत्र में बहुत सारे अन्य नोड्स देखते हैं जो पैकेट की बहुत सारी प्रतियां भेज रहे हैं, तो हम भेजना भी बंद कर देते हैं।

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