
Telegram प्रोटोकॉल को विखंडित करने के लिए Wireshark प्लगइन
यह एक Wireshark डिसेक्टर है जो आपको अपने आस-पास के टेलीग्राम ट्रैफिक को समझने में मदद करता है।
यह MTProto 2.0 प्रोटोकॉल के अनुसार दिखने वाले टेलीग्राम पैकेटों को डिसेक्ट करता है।
इस डिसेक्टर को इंस्टॉल करने के लिए:
luarocks के साथ इसे कंपाइल करना संभव है (आपके Wireshark के Lua वर्जन के लिए)luagcrypt.dll देख सकते हैंluagcrypt.dll/luagcrypt.so को Wireshark इंस्टॉल डायरेक्टरी में कॉपी करें, उदाहरण के लिए C:\Program Files\Wiresharkmtproto डायरेक्टरी को Wireshark प्लगइन्स डायरेक्टरी में कॉपी करें, उदाहरण के लिए C:\Users\<username>\AppData\Roaming\Wireshark\pluginsइंस्टॉलेशन के बाद, आप बस कुछ टेलीग्राम ट्रैफिक के साथ Wireshark खोल सकते हैं।
महत्वपूर्ण: डी-ऑब्फस्केशन काम करने के लिए, पूरी TCP बातचीत शुरू से ही ज्ञात होनी चाहिए (MTProto विनिर्देशों के अनुसार), इसलिए पैकेट रिकॉर्डिंग शुरू होने के बाद टेलीग्राम ऐप खोलने की सिफारिश की जाती है।
ट्रैफिक को डिक्रिप्ट करने के लिए, आपके पास मैच करने वाला प्राधिकरण कुंजी (auth_key) होना आवश्यक है।
आधिकारिक टेलीग्राम क्लाइंट के हाल के संस्करण क्लाउड चैट के लिए Perfect Forward Secrecy का उपयोग करते हैं, जो स्टार्टअप पर और/या नियमित आधार पर auth.bindTempAuthKey को कॉल करके होता है। इसका मतलब है कि मुख्य सत्र स्थायी के बजाय अस्थायी auth keys (DH का उपयोग करके स्थापित) का उपयोग करेंगे।
उपयोग किए जा रहे auth keys को तुरंत निकालने के लिए, दो frida स्क्रिप्ट प्रदान की गई हैं जो टेलीग्राम प्रक्रियाओं को हुक करती हैं। इनका उपयोग करने के लिए, सुनिश्चित करें कि आपके पास Frida इंस्टॉल है, और चलाएँ:
hook_windows_auth_key.py आधिकारिक Windows ऐप के लिए (कुछ बदलावों के साथ संभवतः Linux\Mac पर भी काम करेगा)hook_android_auth_key.py आधिकारिक Android ऐप के लिएजैसे ही कुछ नेटवर्क संचार होता है, Auth keys और auth key IDs मुद्रित होने चाहिए।
एक बार आपके पास अपने auth keys हो जाएँ, तो डिसेक्टर को उनसे फीड करने के लिए Edit --> Prefrences --> Protocols --> MTProto पर जाएँ और auth keys भरें।
आप स्थायी auth key को tgnet.dat फ़ाइल (Android - उदाहरण के लिए यहाँ, यहाँ, यहाँ) या key_datas फ़ाइल (Desktop - यहाँ, यहाँ) से भी निकाल सकते हैं। अन्य क्लाइंट शायद auth_key को अलग तरीके से संग्रहीत करते हैं।
कभी-कभी, टेलीग्राम अपने क्लाइंट में API स्कीमा संस्करण को अपडेट करता है (या हो सकता है कि आप पुराने क्लाइंट से ट्रैफिक देख रहे हों)। जब ऐसा होता है, तो संभव है कि इस उपकरण का TL स्कीमा आपके पैकेटों में दिखने वाले कुछ RPC कॉलों के साथ सिंक से बाहर हो, जिससे Wireshark में Incomplete parsing संदेश उठते हैं। आप देख सकते हैं कि आपका ऐप invokeWithLayer अनुरोध में किस API स्तर का उपयोग कर रहा है।
डिसेक्टर को सही API स्कीमा के साथ सिंक करने के लिए, आपको टेलीग्राम से लेयर की TL फ़ाइल डाउनलोड करनी होगी, इसे JSON में बदलना होगा (नीचे देखें) और इसे mtproto/schema/api_tl_schema_layer_X.json में सहेजना होगा, जहाँ X आपकी लेयर संख्या है।
आप अपडेट किया गया API TL स्कीमा डेस्कटॉप ऐप के api.tl से प्राप्त कर सकते हैं, या अधिक संस्करणों के लिए टेलीग्राम वेबसाइट में देख सकते हैं।
tl फ़ाइल को JSON में बदलने के लिए, उदाहरण चलाएँ (सुनिश्चित करें कि आपके पास npm इंस्टॉल है)
C:\path\to\MTproto Dissector>
npx @psqq/tl-to-json api_layer_218.tl mtproto/schema/api_tl_schema_layer_218.json default --indent 4
फिर सुनिश्चित करें कि आप नई JSON फ़ाइल को Wireshark के प्लगइन्स डायरेक्टरी में mtproto/schema/ में कॉपी करें।
अंत में, Wireshark में Edit --> Prefrences --> Protocols --> MTPROTO पर जाएँ, और "API level" को उस स्तर पर बदलें जो आपके ट्रैफिक से मेल खाता हो।